Closed
Description
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
Metadata
Metadata
Assignees
Labels
No labels