Issue #4879 has been reported by Akio T…
Bug #4879: test_new(OpenSSL::TestPKeyRSA) fails on Win32
http://redmine.ruby-lang.org/issues/4879
Author: Akio T.
Status: Open
Priority: Normal
Assignee:
Category:
Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-06-13) [i386-mswin32_100]
こんばんは。
opensslのtest_pkey_rsa.rb:48 がfailします。Visual C++10 を利用しています。
- Failure:
test_new(OpenSSL::TestPKeyRSA)
[C:/Users/arton/Documents/ruby/trunk/test/openssl/test_pkey_rsa.rb:48]:
<[]> expected but was
<[“error:0906D06C:PEM routines:PEM_read_bio:no start line”]>.
このエラーは数回試しましたが常に発生します。
ところが、ここでテストしているRubyをインストールして同じ処理を実行すると期待している結果が得られます。
irb(main):001:0> require ‘openssl’
=> true
irb(main):002:0> key = OpenSSL::PKey::RSA.new 512
=> -----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBAMuc7mPnOVmPweq1XMZrOZaOMVoTCX88fsU4460qF0me4S+yGL90
(省略)
-----END RSA PRIVATE KEY-----
irb(main):003:0> pem = key.public_key.to_pem
=> “-----BEGIN PUBLIC
KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMuc7mPnOVmPweq1
XMZrOZaOMVoTCX88\nfsU4460qF0me4S+yGL902+yR5Gv2R6B4QvE5EnxGY5zD9t355+IKaQMCAwEAAQ
==\n-----END PUBLIC KEY-----\n”
irb(main):004:0> OpenSSL::PKey::RSA.new pem
=> -----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMuc7mPnOVmPweq1XMZrOZaOMVoTCX88
fsU4460qF0me4S+yGL902+yR5Gv2R6B4QvE5EnxGY5zD9t355+IKaQMCAwEAAQ==
-----END PUBLIC KEY-----
irb(main):005:0> OpenSSL.errors
=> []
もしかすると、test_newの前にエラーが設定されていてそれが読まれているのかと思って、次のようにtest_newを変えて実行したところ、
def test_new
$stderr.puts OpenSSL.errors.inspect
$stderr.flush
key = OpenSSL::PKey::RSA.new 512
pem = key.public_key.to_pem
OpenSSL::PKey::RSA.new pem
assert_equal([], OpenSSL.errors)
end
上のように修正するとfailしなくなりましたが、取得されるエラーは以下でした。これも数回試しましたが常に同じメッセージです。
…[“error:0D07803A:asn1
e
ncoding routines:ASN1_ITEM_EX_D2I:nested asn1 error”]…(省略)
OpenSSLは1.0.0aです。
irb(main):001:0> require ‘openssl’
=> true
irb(main):002:0> OpenSSL::OPENSSL_VERSION
=> “OpenSSL 1.0.0a 1 Jun 2010”
よろしくお願いします。