Bug #4961
closed[ext/openssl] SSLSession#initialize fails with OpenSSL 0.9.7
Description
With Ruby at r32366 and OpenSSL 0.97m on Fedora 15, running
make test-all TESTS="openssl/test_ssl_session.rb"
yields this:
-
Error:
test_session_time(OpenSSL::TestSSLSession):
ArgumentError: unknown type: expecting an asn1 sequence
/home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:63:ininitialize' /home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:63:in
new'
/home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:63:in `test_session_time' -
Error:
test_session_timeout(OpenSSL::TestSSLSession):
ArgumentError: unknown type: expecting an asn1 sequence
/home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:76:ininitialize' /home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:76:in
new'
/home/martin/Projekte/Ruby/ruby/test/openssl/test_ssl_session.rb:76:in `test_session_timeout'
The error occurs in ossl_ssl_session_initialize:
ctx = PEM_read_bio_SSL_SESSION(in, NULL, NULL, NULL);
if (!ctx) {
OSSL_BIO_reset(in);
ctx = d2i_SSL_SESSION_bio(in, NULL);
}
BIO_free(in);
if (!ctx)
ossl_raise(rb_eArgError, "unknown type");
Since the test tries to create a session from a valid PEM encoding,
the first call should already have succeeded but does not. It does
succeed with all 0.9.8 versions I tried with and also with 1.0.0d.
The error has first been reported by Koichi Sasada in [ruby-core:37724],
running on MacOS X and OpenSSL 0.9.7m.