[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
This commit is contained in:
Kazuki Yamaguchi 2024-06-14 14:50:21 +09:00
parent 72480389d1
commit 47fe59cd82
3 changed files with 60 additions and 0 deletions

View File

@ -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")

View File

@ -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

View File

@ -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