# Problem with decoding a compressed string

**URL:** <https://www.ruby-forum.com/t/problem-with-decoding-a-compressed-string/121887>\
**Category:** Ruby\
**Created:** [December 2, 2007, 12:10pm UTC](https://www.ruby-forum.com/t/problem-with-decoding-a-compressed-string/121887 "2007-12-02T12:10:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![keith\_g](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/b19c9b/32.png) [@keith\_g](https://www.ruby-forum.com/u/keith_g)\
**Post date:** [December 2, 2007, 12:10pm UTC](https://www.ruby-forum.com/t/problem-with-decoding-a-compressed-string/121887/1 "2007-12-02T12:10:54Z")

</div>

I am writing an app in Ruby on Rails that I want to use for  
authenticating Google Apps users.

I am having difficulty decoding the SAMLRequest. My code looks like  
this:

```
string = CGI::unescape(params[:SAMLRequest])
doc = Base64.decode64(string)
zstream = Zlib::Inflate.new
buf = zstream.inflate(string)

```

The data from the SAMLRequest looks like this:

fVLJTsMwEL0j8Q  
%2BW71kakEBWE1SoKiqxRG3gwM04Q2Li2MbjNPD3pGmrwgFu1vjNW2ZmevXZKrIBh9LolE7CmBLQwpRSVyl9KhbBJb3KTk  
%2BmyFtl2azztV7BRwfoydCpkY0fKe2cZoajRKZ5C8i8YOvZ  
%2FR1LwphZZ7wRRlGynKe0rQAaqKtXDlVTN6C0svbdciHqdzu8TakrsLqh5PlgK9naWiJ2sNToufZDKY4vgkkSxEkRn7MkZvHZCyX5Xula6l2C  
%2F2y97kDIbosiD%2FLHdTESbGQJ7mFAp7QyplIQCtNSMkME5wc7N0Zj14Jbg9tIAU  
%2Bru5TW3ltkUdT3fXhsingkfW9cg%2BdhhxEXuE2Rc0S5Gdi964Bm42TZGM79GOn  
%2F1vnBDM2OctPoB1W239g2yHKeGyXFF5kpZfobB9wf5MnCuJb7v9Um4WSsyDJ4G6Gs02hByDcJJSVRtlP9fRrDwXwD

I get this error: “Zlib::DataError: incorrect header check”

I have tried every combination of unescape, decode and inflate that I  
can think of, but no joy.

I will really appreciate any help.

Thanks in anticipation,

Keith

---

<div class="post-metadata">

**Author:** ![keith\_g](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/b19c9b/32.png) [@keith\_g](https://www.ruby-forum.com/u/keith_g)\
**Post date:** [December 3, 2007, 3:56am UTC](https://www.ruby-forum.com/t/problem-with-decoding-a-compressed-string/121887/2 "2007-12-03T03:56:50Z")

</div>

On Dec 2, 5:05 am, keith\_g [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I get this error: “Zlib::DataError: incorrect header check”
> 
> I have tried every combination of unescape, decode and inflate that I  
> can think of, but no joy.
> 
> I will really appreciate any help.
> 
> Thanks in anticipation,
> 
> Keith

I’ve no idea the format of SAMLRequest, but if you’re going to feed  
that data (which I assume is the contents of the “string” variable?)  
to #decode64, I think you need to remove the newlines and unescape  
it…

string = string.gsub(“\n”, “”)  
string = string.gsub(/%[0-9A-Fa-f]{2}/) { | h |  
h[1…-1].hex.chr  
}

Also, what is the point of “doc” since you’re just passing “string” to  
#inflate?

Sorry I can’t be of more help.  
Jordan
