Project

General

Profile

Actions

Bug #2604

closed

test_dsa_sign_verify() in test/openssl/test_ec.rb failes

Added by taca (Takahiro Kambe) over 14 years ago. Updated about 13 years ago.

Status:
Rejected
ruby -v:
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-netbsdelf]
[ruby-dev:40077]

Description

=begin
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']:
OpenSSL::PKey::ECError 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のバー
ジョンに応じて行う必要があると思います。
=end


Related issues 1 (0 open1 closed)

Related to Ruby master - Feature #2022: Patch for openssl-1.0Closedephoenix (Evan Phoenix)08/31/2009Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0