aboutsummaryrefslogtreecommitdiffstats
path: root/test/utils.rb
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-08-18 22:51:29 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-08-18 22:51:29 +0900
commitc6536e05a8642cc22cf1bed648a1f2da5b2ca998 (patch)
tree40b382e9ee29263db465ae3de8f0f1dc0fa4c74e /test/utils.rb
parentb8ae1f937c0145f157a978584e68d71941926d7a (diff)
parent20a88ace0778282d5ee564842023c78e4a2e9399 (diff)
downloadruby-openssl-c6536e05a8642cc22cf1bed648a1f2da5b2ca998.tar.gz
Merge branch 'topic/fixup-tests'
* topic/fixup-tests: test: refactor PKey::PKey#{sign,verify} tests test: rework PEM/DER encoding and decoding tests test/test_pkey_ec: stop iterating all curves test/test_pkey_dh: refine OpenSSL::PKey::DH::DEFAULT_* tests
Diffstat (limited to 'test/utils.rb')
-rw-r--r--test/utils.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/utils.rb b/test/utils.rb
index 6b1487d3..f30504a5 100644
--- a/test/utils.rb
+++ b/test/utils.rb
@@ -372,5 +372,39 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC
end
end
+ class OpenSSL::PKeyTestCase < OpenSSL::TestCase
+ def check_component(base, test, keys)
+ keys.each { |comp|
+ assert_equal base.send(comp), test.send(comp)
+ }
+ end
+
+ def dup_public(key)
+ case key
+ when OpenSSL::PKey::RSA
+ rsa = OpenSSL::PKey::RSA.new
+ rsa.set_key(key.n, key.e, nil)
+ rsa
+ when OpenSSL::PKey::DSA
+ dsa = OpenSSL::PKey::DSA.new
+ dsa.set_pqg(key.p, key.q, key.g)
+ dsa.set_key(key.pub_key, nil)
+ dsa
+ when OpenSSL::PKey::DH
+ dh = OpenSSL::PKey::DH.new
+ dh.set_pqg(key.p, nil, key.g)
+ dh
+ else
+ if defined?(OpenSSL::PKey::EC) && OpenSSL::PKey::EC === key
+ ec = OpenSSL::PKey::EC.new(key.group)
+ ec.public_key = key.public_key
+ ec
+ else
+ raise "unknown key type"
+ end
+ end
+ end
+ end
+
end if defined?(OpenSSL::OPENSSL_LIBRARY_VERSION) and
/\AOpenSSL +0\./ !~ OpenSSL::OPENSSL_LIBRARY_VERSION