I've been handed someone else's code to debug, but am getting no
further than he did... perhaps someone can help.

We're using the OpenPGP gem (http://openpgp.rubyforge.org/) to PGP-
encrypt an XML file for submission to a third-party for processing.

The prob is that when encrypting, we get errors like the following:

RangeError: 1502 out of char range
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:138:in `chr'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:138:in `write_byte'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:129
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:126:in `each'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:126
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:18:in `call'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:18:in `initialize'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:9:in `new'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/buffer.rb:9:in `write'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:125:in `to_s'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:78:in `write'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:28
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/packet.rb:105:in `call'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/packet.rb:105:in `initialize'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/packet.rb:346:in `initialize'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:27:in `new'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:27
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:86:in `call'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:86:in `initialize'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:25:in `new'
        from /Users/szagerman/.rvm/gems/ruby-1.8.7-p...@eveo-vapps/gems/
openpgp-0.0.3/lib/openpgp/message.rb:25:in `encrypt'

If the XML being encrypted grows larger (more elements included), that
RangeError number value becomes a larger number.

Looking at that trace and digging into the src for OpenPGP to where
the error is occurring finds this line at from /Users/szagerman/.rvm/
gems/ruby-1.8.7-p...@eveo-vapps/gems/openpgp-0.0.3/lib/openpgp/
message.rb:129:

buffer.write_byte(body.size)

So, I'm wondering if the body.size is greater than 255 if this causes
a prob writing it as a byte (the call being write_byte)...?

And if so, whether one is supposed to break up the payload into small
chunks somehow? That doesnt seem right and I think from more reading
of the OpenPGP code that it is packetizing the original data in some
way.

Any thoughts?



-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to