Skip to content

Commit c732387

Browse files
committed
test/openssl/test_pkey: use EC keys for PKey.generate_parameters tests
OpenSSL 3.0 refuses to generate DSA parameters shorter than 2048 bits, but generating 2048 bits parameters takes very long time. Let's use EC in these test cases instead.
1 parent 558cfbe commit c732387

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

test/openssl/test_pkey.rb

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,16 @@ def test_generic_oid_inspect
2727
end
2828

2929
def test_s_generate_parameters
30-
# 512 is non-default; 1024 is used if 'dsa_paramgen_bits' is not specified
31-
# with OpenSSL 1.1.0.
32-
pkey = OpenSSL::PKey.generate_parameters("DSA", {
33-
"dsa_paramgen_bits" => 512,
34-
"dsa_paramgen_q_bits" => 256,
30+
pkey = OpenSSL::PKey.generate_parameters("EC", {
31+
"ec_paramgen_curve" => "secp384r1",
3532
})
36-
assert_instance_of OpenSSL::PKey::DSA, pkey
37-
assert_equal 512, pkey.p.num_bits
38-
assert_equal 256, pkey.q.num_bits
39-
assert_equal nil, pkey.priv_key
33+
assert_instance_of OpenSSL::PKey::EC, pkey
34+
assert_equal "secp384r1", pkey.group.curve_name
35+
assert_equal nil, pkey.private_key
4036

4137
# Invalid options are checked
4238
assert_raise(OpenSSL::PKey::PKeyError) {
43-
OpenSSL::PKey.generate_parameters("DSA", "invalid" => "option")
39+
OpenSSL::PKey.generate_parameters("EC", "invalid" => "option")
4440
}
4541

4642
# Parameter generation callback is called
@@ -59,14 +55,13 @@ def test_s_generate_key
5955
# DSA key pair cannot be generated without parameters
6056
OpenSSL::PKey.generate_key("DSA")
6157
}
62-
pkey_params = OpenSSL::PKey.generate_parameters("DSA", {
63-
"dsa_paramgen_bits" => 512,
64-
"dsa_paramgen_q_bits" => 256,
58+
pkey_params = OpenSSL::PKey.generate_parameters("EC", {
59+
"ec_paramgen_curve" => "secp384r1",
6560
})
6661
pkey = OpenSSL::PKey.generate_key(pkey_params)
67-
assert_instance_of OpenSSL::PKey::DSA, pkey
68-
assert_equal 512, pkey.p.num_bits
69-
assert_not_equal nil, pkey.priv_key
62+
assert_instance_of OpenSSL::PKey::EC, pkey
63+
assert_equal "secp384r1", pkey.group.curve_name
64+
assert_not_equal nil, pkey.private_key
7065
end
7166

7267
def test_hmac_sign_verify

0 commit comments

Comments
 (0)