Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenSSL::X509::Certificate methods version and signature_algorithm incompatibility? #2608

Closed
wruppelx opened this issue Feb 18, 2015 · 1 comment

Comments

@wruppelx
Copy link

The following code runs under ruby 2.1.3p242, but fails under jruby 1.7.19 (1.9.3p551) with jruby-openssl-0.9.6 installed.
I am also wondering, why ruby OpenSSL::VERSION is 1.1.0 with jruby, though jruby-openssl ist installed.

Any hint would be appreciated!

Cheers,
Wolfgang

#!/usr/bin/env ruby
# filename: cert2.rb
require 'openssl'
puts "openssl version: "+OpenSSL::VERSION+"\n"
cert = OpenSSL::X509::Certificate.new (
'-----BEGIN CERTIFICATE-----
MIIFszCCBJugAwIBAgIQdRjsz/MgcDhfRrPq4nHyKzANBgkqhkiG9w0BAQsFADB3
MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAd
BgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVj
IENsYXNzIDMgRVYgU1NMIENBIC0gRzMwHhcNMTQwOTIyMDAwMDAwWhcNMTYwOTIy
MjM1OTU5WjCCASIxEzARBgsrBgEEAYI3PAIBAxMCREUxFTATBgsrBgEEAYI3PAIB
AQwEQm9ubjEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xEDAOBgNVBAUT
B0hSQjY3OTMxCzAJBgNVBAYTAkRFMQ4wDAYDVQQRDAU1MzExMzEcMBoGA1UECAwT
Tm9yZHJoZWluLVdlc3RmYWxlbjENMAsGA1UEBwwEQm9ubjEmMCQGA1UECQwdRnJp
ZWRyaWNoIEViZXJ0IEFsbGVlIDExNCAxMjYxHTAbBgNVBAoMFERldXRzY2hlIFBv
c3RiYW5rIEFHMRwwGgYDVQQLDBNQb3N0YmFuayBTeXN0ZW1zIEFHMRQwEgYDVQQD
DAtwb3N0YmFuay5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALyM
MCzg46AWq8eJjEskc3avcv+FDkikjEdlNRRpGWIkEM8688kwYHzeGR49vAqjqJ18
TlDUiAwd05pJOqMwBXTGQoPYxcEZqOUfIMPtqEriZyJqhgoGsT0qSsyGUz97l++J
JLXUegHe1Eouy8PPn2PcTG/VthPeOzrIIeoGq6YPfmAF7CXU1pR1AM9s3fiQFRR3
uVTRsSVCExflQdtTDn1/dSArSDadXibaFSD8/CJDkkon6kfrHejfzrLhYmZ9DNQv
6PlUdJGOVvjzZSarVsXdc3d5xp895p9JtkVNqk+2W5j+Lyfhps3A7Bn9f8dqHolr
6ovxaEeXMFo4s9gU+h0CAwEAAaOCAYwwggGIMD0GA1UdEQQ2MDSCD3d3dy5wb3N0
YmFuay5kZYIUcmVsYXVuY2gucG9zdGJhbmsuZGWCC3Bvc3RiYW5rLmRlMAkGA1Ud
EwQCMAAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjBmBgNVHSAEXzBdMFsGC2CGSAGG+EUBBxcGMEwwIwYIKwYBBQUHAgEWF2h0
dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBkaF2h0dHBzOi8vZC5z
eW1jYi5jb20vcnBhMB8GA1UdIwQYMBaAFAFZq+fdOgtZpmRj1s8gB1fVkedqMCsG
A1UdHwQkMCIwIKAeoByGGmh0dHA6Ly9zci5zeW1jYi5jb20vc3IuY3JsMFcGCCsG
AQUFBwEBBEswSTAfBggrBgEFBQcwAYYTaHR0cDovL3NyLnN5bWNkLmNvbTAmBggr
BgEFBQcwAoYaaHR0cDovL3NyLnN5bWNiLmNvbS9zci5jcnQwDQYJKoZIhvcNAQEL
BQADggEBAGANEhdphor5xK/i+uUzFiDZI4CZ+JEhJCVScBKV488coZQv8iW8JRb3
8GZDrxHuJoYm66lfLSdVodAdrfaWsdF2SsRiyzzSk5el/+EHsWSs3LfTmTn4zsB2
2pUE71HdV4BBqxIoYAoR3gSeZkGvWF+GdtoSTFuhWylMr4uKfWFkPy5npSYLT/yj
7Vpy4/oLTQYqqPlCErKC6sxQvB/URSaitQrwfgt1Vc3j3N/9d3uLUV8p7HtPr0Z1
0RE4JoV0o8Jz8wUVuq7VYENObZnc0XQ3Z2KIL1CA2GRsU23BjZXpZ2jenNFLx3np
if2aIctDNgU5g4xhDxPxShtQABLElDo=
-----END CERTIFICATE-----')
print << 'Not a X509 certificate' unless cert.is_a?( OpenSSL::X509::Certificate )

begin
  v = cert.version.to_s
  puts "Version: "+v+"\n"
rescue => e  
  puts e.message  
  puts e.backtrace.inspect  
end
begin
  puts cert.signature_algorithm+"\n"
rescue => e
  puts e.message
  puts e.backtrace.inspect
end

Output with jruby:

$ ruby -v && gem list openssl
jruby 1.7.19 (1.9.3p551) 2015-01-29 20786bd on Java HotSpot(TM) 64-Bit Server VM 1.8.0_25-b17 +jit [linux-amd64]

*** LOCAL GEMS ***

jruby-openssl (0.9.6 java, 0.9.5 java)
$ ./cert2.rb 
openssl version: 1.1.0

["org.jruby.runtime.callsite.CachingCallSite.pollAndGetClass(CachingCallSite.java:433)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:131)", "$_dot_.cert2.chained_0_rescue_1$RUBY$SYNTHETIC__file__(./cert2.rb:41)", "$_dot_.cert2.__file__(./cert2.rb:40)", "$_dot_.cert2.load(./cert2.rb)", "org.jruby.Ruby.runScript(Ruby.java:866)", "org.jruby.Ruby.runScript(Ruby.java:859)", "org.jruby.Ruby.runNormally(Ruby.java:728)", "org.jruby.Ruby.runFromMain(Ruby.java:577)", "org.jruby.Main.doRunFromMain(Main.java:395)", "org.jruby.Main.internalRun(Main.java:290)", "org.jruby.Main.run(Main.java:217)", "org.jruby.Main.main(Main.java:197)"]

["org.jruby.runtime.callsite.CachingCallSite.pollAndGetClass(CachingCallSite.java:433)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:165)", "org.jruby.runtime.callsite.PlusCallSite.call(PlusCallSite.java:37)", "$_dot_.cert2.chained_2_rescue_2$RUBY$SYNTHETIC__file__(./cert2.rb:48)", "$_dot_.cert2.__file__(./cert2.rb:47)", "$_dot_.cert2.load(./cert2.rb)", "org.jruby.Ruby.runScript(Ruby.java:866)", "org.jruby.Ruby.runScript(Ruby.java:859)", "org.jruby.Ruby.runNormally(Ruby.java:728)", "org.jruby.Ruby.runFromMain(Ruby.java:577)", "org.jruby.Main.doRunFromMain(Main.java:395)", "org.jruby.Main.internalRun(Main.java:290)", "org.jruby.Main.run(Main.java:217)", "org.jruby.Main.main(Main.java:197)"]

Output with MRI ruby:

$ ruby -v && gem list openssl
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]

*** LOCAL GEMS ***


$ ./cert2.rb
openssl version: 1.1.0
Version: 2
sha256WithRSAEncryption
@wruppelx
Copy link
Author

Sorry, this was ment to go to jruby/jruby-openssl.
I have now opened an issue there.

@enebo enebo added this to the Invalid or Duplicate milestone Apr 28, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants