From 0c83666c6ceb9dae06055150da02d16ed20f4781 Mon Sep 17 00:00:00 2001 From: rhe Date: Sat, 10 Dec 2016 08:12:02 +0000 Subject: openssl: import v2.0.1 Import Ruby/OpenSSL 2.0.1. The full commit history since 2.0.0 (imported at r56946) can be found at: https://github.com/ruby/openssl/compare/v2.0.0...v2.0.1 This release contains only bug fixes. Note, the first two commits since v2.0.0 are already imported at r56953 to make Travis and RubyCI green. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/openssl/test_asn1.rb | 8 +++++++ test/openssl/test_buffering.rb | 1 + test/openssl/test_config.rb | 1 + test/openssl/test_digest.rb | 1 + test/openssl/test_ns_spki.rb | 1 + test/openssl/test_ocsp.rb | 1 + test/openssl/test_pair.rb | 2 +- test/openssl/test_pkcs12.rb | 1 + test/openssl/test_pkcs7.rb | 1 + test/openssl/test_pkey.rb | 49 ------------------------------------------ test/openssl/test_x509cert.rb | 1 + test/openssl/test_x509crl.rb | 1 + test/openssl/test_x509ext.rb | 1 + test/openssl/test_x509name.rb | 1 + test/openssl/test_x509req.rb | 1 + test/openssl/test_x509store.rb | 1 + test/openssl/utils.rb | 10 +++++++++ 17 files changed, 32 insertions(+), 50 deletions(-) delete mode 100644 test/openssl/test_pkey.rb (limited to 'test/openssl') diff --git a/test/openssl/test_asn1.rb b/test/openssl/test_asn1.rb index 3a43541447..a0ac1ddbf5 100644 --- a/test/openssl/test_asn1.rb +++ b/test/openssl/test_asn1.rb @@ -275,6 +275,14 @@ rEzBQ0F9dUyqQ9gyRg8KHhDfv9HzT1d/rnUZMkoombwYBRIUChGCYV0GnJcan2Zm assert_equal 2 ** 31, OpenSSL::ASN1.decode(encoded).value.to_i end + def test_decode_generalisedtime + expected = Time.at 1481225640 + assert_equal expected, OpenSSL::ASN1.decode("\x18\x0D201612081934Z").value + + expected += 29 + assert_equal expected, OpenSSL::ASN1.decode("\x18\x0F20161208193429Z").value + end + def test_decode_enumerated encoded = OpenSSL::ASN1.Enumerated(0).to_der assert_equal "\x0a\x01\x00".b, encoded diff --git a/test/openssl/test_buffering.rb b/test/openssl/test_buffering.rb index 1f42cd3c31..f85353fc67 100644 --- a/test/openssl/test_buffering.rb +++ b/test/openssl/test_buffering.rb @@ -37,6 +37,7 @@ class OpenSSL::TestBuffering < OpenSSL::TestCase end def setup + super @io = IO.new end diff --git a/test/openssl/test_config.rb b/test/openssl/test_config.rb index 3e2e1273fb..786bce9d2f 100644 --- a/test/openssl/test_config.rb +++ b/test/openssl/test_config.rb @@ -3,6 +3,7 @@ require_relative 'utils' class OpenSSL::TestConfig < OpenSSL::TestCase def setup + super file = Tempfile.open("openssl.cnf") file << <<__EOD__ HOME = . diff --git a/test/openssl/test_digest.rb b/test/openssl/test_digest.rb index 028889c173..9891d99ae3 100644 --- a/test/openssl/test_digest.rb +++ b/test/openssl/test_digest.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestDigest < OpenSSL::TestCase def setup + super @d1 = OpenSSL::Digest.new("MD5") @d2 = OpenSSL::Digest::MD5.new end diff --git a/test/openssl/test_ns_spki.rb b/test/openssl/test_ns_spki.rb index 4740c0b29e..ac34613fc2 100644 --- a/test/openssl/test_ns_spki.rb +++ b/test/openssl/test_ns_spki.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestNSSPI < OpenSSL::TestCase def setup + super # This request data is adopt from the specification of # "Netscape Extensions for User Key Generation". # -- http://wp.netscape.com/eng/security/comm4-keygen.html diff --git a/test/openssl/test_ocsp.rb b/test/openssl/test_ocsp.rb index 82d83d56f4..8881f25dd9 100644 --- a/test/openssl/test_ocsp.rb +++ b/test/openssl/test_ocsp.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestOCSP < OpenSSL::TestCase def setup + super # @ca_cert # | # @cert diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb index ad65327da0..9a5205f81c 100644 --- a/test/openssl/test_pair.rb +++ b/test/openssl/test_pair.rb @@ -295,7 +295,7 @@ module OpenSSL::TestPairM # fill up a socket so we hit EAGAIN written = String.new n = 0 - buf = 'a' * 11 + buf = 'a' * 4099 case ret = s1.write_nonblock(buf, exception: false) when :wait_readable then break when :wait_writable then break diff --git a/test/openssl/test_pkcs12.rb b/test/openssl/test_pkcs12.rb index 8c9147a91e..403718b94f 100644 --- a/test/openssl/test_pkcs12.rb +++ b/test/openssl/test_pkcs12.rb @@ -8,6 +8,7 @@ module OpenSSL include OpenSSL::TestUtils def setup + super ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA") ca_exts = [ ["basicConstraints","CA:TRUE",true], diff --git a/test/openssl/test_pkcs7.rb b/test/openssl/test_pkcs7.rb index b7b7520220..48d5999752 100644 --- a/test/openssl/test_pkcs7.rb +++ b/test/openssl/test_pkcs7.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestPKCS7 < OpenSSL::TestCase def setup + super @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024 @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048 ca = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA") diff --git a/test/openssl/test_pkey.rb b/test/openssl/test_pkey.rb deleted file mode 100644 index 79647c8f1d..0000000000 --- a/test/openssl/test_pkey.rb +++ /dev/null @@ -1,49 +0,0 @@ -# frozen_string_literal: false -require_relative "utils" - -if defined?(OpenSSL::TestUtils) - -class OpenSSL::TestPKey < OpenSSL::PKeyTestCase - PKEYS = { - OpenSSL::PKey::RSA => { - key: OpenSSL::TestUtils::TEST_KEY_RSA1024, - digest: OpenSSL::Digest::SHA1, - }, - OpenSSL::PKey::DSA => { - key: OpenSSL::TestUtils::TEST_KEY_DSA512, - digest: OpenSSL::TestUtils::DSA_SIGNATURE_DIGEST, - }, - } - if defined?(OpenSSL::PKey::EC) - PKEYS[OpenSSL::PKey::EC] = { - key: OpenSSL::TestUtils::TEST_KEY_EC_P256V1, - digest: OpenSSL::Digest::SHA1, - } - end - - def test_sign_verify - data = "Sign me!" - invalid_data = "Sign me?" - PKEYS.each do |klass, prop| - key = prop[:key] - pub_key = dup_public(prop[:key]) - digest = prop[:digest].new - signature = key.sign(digest, data) - assert_equal(true, pub_key.verify(digest, signature, data)) - assert_equal(false, pub_key.verify(digest, signature, invalid_data)) - # digest state is irrelevant - digest << "unya" - assert_equal(true, pub_key.verify(digest, signature, data)) - assert_equal(false, pub_key.verify(digest, signature, invalid_data)) - - if OpenSSL::OPENSSL_VERSION_NUMBER > 0x10000000 - digest = OpenSSL::Digest::SHA256.new - signature = key.sign(digest, data) - assert_equal(true, pub_key.verify(digest, signature, data)) - assert_equal(false, pub_key.verify(digest, signature, invalid_data)) - end - end - end -end - -end diff --git a/test/openssl/test_x509cert.rb b/test/openssl/test_x509cert.rb index fb757c44ec..0cfe4402ec 100644 --- a/test/openssl/test_x509cert.rb +++ b/test/openssl/test_x509cert.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509Certificate < OpenSSL::TestCase def setup + super @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024 @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048 @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256 diff --git a/test/openssl/test_x509crl.rb b/test/openssl/test_x509crl.rb index f61de97163..44dfffc952 100644 --- a/test/openssl/test_x509crl.rb +++ b/test/openssl/test_x509crl.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509CRL < OpenSSL::TestCase def setup + super @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024 @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048 @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256 diff --git a/test/openssl/test_x509ext.rb b/test/openssl/test_x509ext.rb index 79713c0fad..58f03168bc 100644 --- a/test/openssl/test_x509ext.rb +++ b/test/openssl/test_x509ext.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509Extension < OpenSSL::TestCase def setup + super @basic_constraints_value = OpenSSL::ASN1::Sequence([ OpenSSL::ASN1::Boolean(true), # CA OpenSSL::ASN1::Integer(2) # pathlen diff --git a/test/openssl/test_x509name.rb b/test/openssl/test_x509name.rb index 78da4df140..b30a02e64a 100644 --- a/test/openssl/test_x509name.rb +++ b/test/openssl/test_x509name.rb @@ -6,6 +6,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509Name < OpenSSL::TestCase def setup + super @obj_type_tmpl = Hash.new(OpenSSL::ASN1::PRINTABLESTRING) @obj_type_tmpl.update(OpenSSL::X509::Name::OBJECT_TYPE_TEMPLATE) end diff --git a/test/openssl/test_x509req.rb b/test/openssl/test_x509req.rb index 086ccfbdb1..585dda1bc6 100644 --- a/test/openssl/test_x509req.rb +++ b/test/openssl/test_x509req.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509Request < OpenSSL::TestCase def setup + super @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024 @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048 @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256 diff --git a/test/openssl/test_x509store.rb b/test/openssl/test_x509store.rb index 6ca80c86bb..af0d8b2836 100644 --- a/test/openssl/test_x509store.rb +++ b/test/openssl/test_x509store.rb @@ -5,6 +5,7 @@ if defined?(OpenSSL::TestUtils) class OpenSSL::TestX509Store < OpenSSL::TestCase def setup + super @rsa1024 = OpenSSL::TestUtils::TEST_KEY_RSA1024 @rsa2048 = OpenSSL::TestUtils::TEST_KEY_RSA2048 @dsa256 = OpenSSL::TestUtils::TEST_KEY_DSA256 diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb index 43ecd79eca..bbc9c7efc2 100644 --- a/test/openssl/utils.rb +++ b/test/openssl/utils.rb @@ -201,7 +201,16 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC end class OpenSSL::TestCase < Test::Unit::TestCase + def setup + if ENV["OSSL_GC_STRESS"] == "1" + GC.stress = true + end + end + def teardown + if ENV["OSSL_GC_STRESS"] == "1" + GC.stress = false + end # OpenSSL error stack must be empty assert_equal([], OpenSSL.errors) end @@ -212,6 +221,7 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC ITERATIONS = ($0 == __FILE__) ? 100 : 10 def setup + super @ca_key = OpenSSL::TestUtils::TEST_KEY_RSA2048 @svr_key = OpenSSL::TestUtils::TEST_KEY_RSA1024 @cli_key = OpenSSL::TestUtils::TEST_KEY_DSA1024 -- cgit v1.2.3