diff options
author | Kazuki Yamaguchi <[email protected]> | 2024-06-14 14:45:56 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <[email protected]> | 2025-01-23 01:45:52 +0900 |
commit | 87316d58faa2d57e9f1c1df2f76584a129a60bcc (patch) | |
tree | 8dfdaf48092519691d7d70e7c04dca1f2cad3c1c | |
parent | ec4592280fe1efcf65982c2a5c0d39b311d56575 (diff) |
[ruby/openssl] pkey: change PKey::{RSA,DSA,DH}#params to use nil for missing parameters
The returned Hash from these methods contain 0 in place of a missing
parameter in the key, for example:
pkey = OpenSSL::PKey.read(OpenSSL::PKey::RSA.new(2048).public_to_pem)
pp pkey.params
#=>
# {"n"=>#<OpenSSL::BN https://github.com/ruby/openssl/commit/286934673421[...snip]>,
# "e"=>#<OpenSSL::BN 65537>,
# "d"=>#<OpenSSL::BN 0>,
# "p"=>#<OpenSSL::BN 0>,
# "q"=>#<OpenSSL::BN 0>,
# "dmp1"=>#<OpenSSL::BN 0>,
# "dmq1"=>#<OpenSSL::BN 0>,
# "iqmp"=>#<OpenSSL::BN 0>}
Let's use nil instead, which is more appropriate for indicating a
missing value.
https://github.com/ruby/openssl/commit/f247ec3dec
-rw-r--r-- | ext/openssl/lib/openssl/pkey.rb | 6 | ||||
-rw-r--r-- | test/openssl/test_pkey_dh.rb | 4 | ||||
-rw-r--r-- | test/openssl/test_pkey_dsa.rb | 2 | ||||
-rw-r--r-- | test/openssl/test_pkey_rsa.rb | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/ext/openssl/lib/openssl/pkey.rb b/ext/openssl/lib/openssl/pkey.rb index 1aa22bfee6..3d1e8885ca 100644 --- a/ext/openssl/lib/openssl/pkey.rb +++ b/ext/openssl/lib/openssl/pkey.rb @@ -42,7 +42,7 @@ module OpenSSL::PKey # The hash has keys 'p', 'q', 'g', 'pub_key', and 'priv_key'. def params %w{p q g pub_key priv_key}.map { |name| - [name, send(name) || 0.to_bn] + [name, send(name)] }.to_h end @@ -174,7 +174,7 @@ module OpenSSL::PKey # The hash has keys 'p', 'q', 'g', 'pub_key', and 'priv_key'. def params %w{p q g pub_key priv_key}.map { |name| - [name, send(name) || 0.to_bn] + [name, send(name)] }.to_h end @@ -360,7 +360,7 @@ module OpenSSL::PKey # The hash has keys 'n', 'e', 'd', 'p', 'q', 'dmp1', 'dmq1', and 'iqmp'. def params %w{n e d p q dmp1 dmq1 iqmp}.map { |name| - [name, send(name) || 0.to_bn] + [name, send(name)] }.to_h end diff --git a/test/openssl/test_pkey_dh.rb b/test/openssl/test_pkey_dh.rb index f7f0522bc1..686c9b97d0 100644 --- a/test/openssl/test_pkey_dh.rb +++ b/test/openssl/test_pkey_dh.rb @@ -137,9 +137,9 @@ class OpenSSL::TestPKeyDH < OpenSSL::PKeyTestCase 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.params["pub_key"]) assert_nil(dh.priv_key) - assert_equal(0, dh.params["priv_key"]) + assert_nil(dh.params["priv_key"]) dhkey = OpenSSL::PKey.generate_key(dh) assert_equal(dh.params["p"], dhkey.params["p"]) diff --git a/test/openssl/test_pkey_dsa.rb b/test/openssl/test_pkey_dsa.rb index a95cce2cf9..e45c3da3e2 100644 --- a/test/openssl/test_pkey_dsa.rb +++ b/test/openssl/test_pkey_dsa.rb @@ -248,7 +248,7 @@ fWLOqqkzFeRrYMDzUpl36XktY6Yq8EJYlW9pCMmBVNy/dQ== 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"]) + assert_nil(pubkey.params["priv_key"]) end def test_dup diff --git a/test/openssl/test_pkey_rsa.rb b/test/openssl/test_pkey_rsa.rb index 55606654c5..360309b475 100644 --- a/test/openssl/test_pkey_rsa.rb +++ b/test/openssl/test_pkey_rsa.rb @@ -595,7 +595,7 @@ class OpenSSL::TestPKeyRSA < OpenSSL::PKeyTestCase 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]) + assert_nil(pubkey.params[name.to_s]) end end |