diff options
author | Kazuki Yamaguchi <[email protected]> | 2024-06-14 14:50:21 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <[email protected]> | 2025-01-23 01:45:51 +0900 |
commit | 47fe59cd8299a04dfa7af41131d0563c0e6f5b98 (patch) | |
tree | fe084bba995b7560185906bc961d652ffc819216 | |
parent | 72480389d149063f2c990227e9b490889f0fc407 (diff) |
[ruby/openssl] pkey: add tests for PKey::{RSA,DSA,DH}#params
Add missing test cases to verify the current behavior. The next patch
will rewrite those methods.
https://github.com/ruby/openssl/commit/c0e0669f9b
-rw-r--r-- | test/openssl/test_pkey_dh.rb | 19 | ||||
-rw-r--r-- | test/openssl/test_pkey_dsa.rb | 21 | ||||
-rw-r--r-- | test/openssl/test_pkey_rsa.rb | 20 |
3 files changed, 60 insertions, 0 deletions
diff --git a/test/openssl/test_pkey_dh.rb b/test/openssl/test_pkey_dh.rb index 45911968e2..f7f0522bc1 100644 --- a/test/openssl/test_pkey_dh.rb +++ b/test/openssl/test_pkey_dh.rb @@ -130,6 +130,25 @@ class OpenSSL::TestPKeyDH < OpenSSL::PKeyTestCase assert_equal(false, dh2.params_ok?) end + def test_params + dh = Fixtures.pkey("dh2048_ffdhe2048") + assert_kind_of(OpenSSL::BN, dh.p) + assert_equal(dh.p, dh.params["p"]) + assert_kind_of(OpenSSL::BN, dh.g) + assert_equal(dh.g, dh.params["g"]) + assert_nil(dh.pub_key) + assert_equal(0, dh.params["pub_key"]) + assert_nil(dh.priv_key) + assert_equal(0, dh.params["priv_key"]) + + dhkey = OpenSSL::PKey.generate_key(dh) + assert_equal(dh.params["p"], dhkey.params["p"]) + assert_kind_of(OpenSSL::BN, dhkey.pub_key) + assert_equal(dhkey.pub_key, dhkey.params["pub_key"]) + assert_kind_of(OpenSSL::BN, dhkey.priv_key) + assert_equal(dhkey.priv_key, dhkey.params["priv_key"]) + end + def test_dup # Parameters only dh1 = Fixtures.pkey("dh2048_ffdhe2048") diff --git a/test/openssl/test_pkey_dsa.rb b/test/openssl/test_pkey_dsa.rb index 3e8a83b2d0..a95cce2cf9 100644 --- a/test/openssl/test_pkey_dsa.rb +++ b/test/openssl/test_pkey_dsa.rb @@ -230,6 +230,27 @@ fWLOqqkzFeRrYMDzUpl36XktY6Yq8EJYlW9pCMmBVNy/dQ== assert_equal(nil, key.priv_key) end + def test_params + key = Fixtures.pkey("dsa2048") + assert_kind_of(OpenSSL::BN, key.p) + assert_equal(key.p, key.params["p"]) + assert_kind_of(OpenSSL::BN, key.q) + assert_equal(key.q, key.params["q"]) + assert_kind_of(OpenSSL::BN, key.g) + assert_equal(key.g, key.params["g"]) + assert_kind_of(OpenSSL::BN, key.pub_key) + assert_equal(key.pub_key, key.params["pub_key"]) + assert_kind_of(OpenSSL::BN, key.priv_key) + assert_equal(key.priv_key, key.params["priv_key"]) + + pubkey = OpenSSL::PKey.read(key.public_to_der) + assert_equal(key.params["p"], pubkey.params["p"]) + assert_equal(key.pub_key, pubkey.pub_key) + assert_equal(key.pub_key, pubkey.params["pub_key"]) + assert_nil(pubkey.priv_key) + assert_equal(0, pubkey.params["priv_key"]) + end + def test_dup key = Fixtures.pkey("dsa1024") key2 = key.dup diff --git a/test/openssl/test_pkey_rsa.rb b/test/openssl/test_pkey_rsa.rb index e1a0df13f7..55606654c5 100644 --- a/test/openssl/test_pkey_rsa.rb +++ b/test/openssl/test_pkey_rsa.rb @@ -579,6 +579,26 @@ class OpenSSL::TestPKeyRSA < OpenSSL::PKeyTestCase assert_same_rsa rsa, OpenSSL::PKey.read(pem, "abcdef") end + def test_params + key = Fixtures.pkey("rsa2048") + assert_equal(2048, key.n.num_bits) + assert_equal(key.n, key.params["n"]) + assert_equal(65537, key.e) + assert_equal(key.e, key.params["e"]) + [:d, :p, :q, :dmp1, :dmq1, :iqmp].each do |name| + assert_kind_of(OpenSSL::BN, key.send(name)) + assert_equal(key.send(name), key.params[name.to_s]) + end + + pubkey = OpenSSL::PKey.read(key.public_to_der) + assert_equal(key.n, pubkey.n) + assert_equal(key.e, pubkey.e) + [:d, :p, :q, :dmp1, :dmq1, :iqmp].each do |name| + assert_nil(pubkey.send(name)) + assert_equal(0, pubkey.params[name.to_s]) + end + end + def test_dup key = Fixtures.pkey("rsa1024") key2 = key.dup |