jruby / jruby-ossl

DEFUNCT, new repository at:
https://github.com/jruby/jruby-openssl
47 stars 19 forks source link

OpenSSL::ASN1::Integer#value returns Bignum and not OpenSSL::BN #12

Closed jasongilman closed 6 months ago

jasongilman commented 12 years ago

I encountered an error when running JRuby 1.6.5/1.6.4 with Capistrano: "(OpenSSL::PKey::DSAError: bad sig size)" I found this ticket filed with net-ssh http://net-ssh.lighthouseapp.com/projects/36253-net-ssh/tickets/18-bad-sig-size-opensslpkeydsaerror-with-jruby-151 that looked like a similar issue. I did some digging and saw the difference between JRuby and MRI was that the OpenSSL::ASN1::Integer#value method returns Bignum under JRuby versus the OpenSSL::BN in MRI. It looks like this is a problem in either jruby-openssl or possibly bouncycastle. I posted a workaround to the net-ssh ticket until this is fixed.

nahi commented 12 years ago

Thank you. Confirmed the problem as follows.

% ruby -ropenssl -e 'p OpenSSL::ASN1.decode(OpenSSL::ASN1::Integer.new(1).to_der).value.class'
OpenSSL::BN
% jruby -ropenssl -e 'p OpenSSL::ASN1.decode(OpenSSL::ASN1::Integer.new(1).to_der).value.class'
Fixnum

Filed the ticket at https://jira.codehaus.org/browse/JRUBY-6260

nahi commented 12 years ago

I posted a patch to the ticket.