From: Takahiro Kambe Date: 2010-01-14T13:54:19+09:00 Subject: [ruby-dev:40077] [Bug #2604] test_dsa_sign_verify() in test/openssl/test_ec.rb failes Bug #2604: test_dsa_sign_verify() in test/openssl/test_ec.rb failes http://redmine.ruby-lang.org/issues/show/2604 起票者: Takahiro Kambe ステータス: Open, 優先度: Low カテゴリ: ext ruby -v: ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-netbsdelf] NetBSD current (5.99.23)で make test-all を実行すると、test/openssl/test_ec.rbの test_dsa_sign_verify()に失敗します。 test_dsa_sign_verify(OpenSSL::TestEC) [./test/openssl/test_ec.rb:92:in `test_dsa_sign_verify' ./test/openssl/test_ec.rb:88:in `each' ./test/openssl/test_ec.rb:88:in `test_dsa_sign_verify']: exception expected but none was thrown. これは test_dsa_sign_verify()の以下の行で失敗しています。 assert_raises(OpenSSL::PKey::ECError) { key.dsa_sign_asn1(@data2) } このテストは dsa_sign_asn1に長すぎる値を渡してエラーとなることを期待して います。OpenSSLのソースを確認するとNetBSD 5.0_STABLEの 0.9.9-dev あたり までは、openssl/crypto/ecdsa/ecs_ossl.cのecdsa_do_sign()内で、 if (8 * dgst_len > BN_num_bits(order)) { /* XXX * * Should provide for optional hash truncation: * Keep the BN_num_bits(order) leftmost bits of dgst * (see March 2006 FIPS 186-3 draft, which has a few * confusing errors in this part though) */ ECDSAerr(ECDSA_F_ECDSA_DO_SIGN, ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); goto err; } とチェックされていますが、NetBSD currentのOpenSSL 1.1.0-dev では、この ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZEというエラーを起こすコードは削除され、 代わりに渡されたdigestを切り詰める処理が加えられています。 従って、このエラーとなることを検査するテストは廃止するか、OpenSSLのバー ジョンに応じて行う必要があると思います。 ---------------------------------------- http://redmine.ruby-lang.org