summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-19 16:22:34 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-19 16:22:34 +0000
commit3e00a2d7b5ba7d2117e375761f1428e57a8838e6 (patch)
tree3a208ac2c9be6b10cdf1d0d532eb6c8c95080e6f /test
parentb503ff8b4336af550f48f3dc63c0c07c9d5fd0d1 (diff)
Update openssl to 2.0.7. [Bug #13935]
The patch is provided by Kazuki Yamaguchi. From: Kazuki Yamaguchi <k@rhe.jp> Date: Mon, 25 Sep 2017 01:32:02 +0900 Subject: [PATCH] openssl: import v2.0.7 Import Ruby/OpenSSL 2.0.7. This contains only bug fixes and test improvements. The full commit log since v2.0.5 (imported at r59567, to trunk) can be found at: https://github.com/ruby/openssl/compare/v2.0.5...v2.0.7 All the changes included in this changeset are already imported to trunk by r61235 or earlier revisions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@62845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/openssl/test_cipher.rb7
-rw-r--r--test/openssl/test_ssl_session.rb58
2 files changed, 47 insertions, 18 deletions
diff --git a/test/openssl/test_cipher.rb b/test/openssl/test_cipher.rb
index ad0e87b441..48149d4178 100644
--- a/test/openssl/test_cipher.rb
+++ b/test/openssl/test_cipher.rb
@@ -297,6 +297,13 @@ class OpenSSL::TestCipher < OpenSSL::TestCase
assert_equal tag1, tag2
end if has_cipher?("aes-128-gcm")
+ def test_non_aead_cipher_set_auth_data
+ assert_raise(OpenSSL::Cipher::CipherError) {
+ cipher = OpenSSL::Cipher.new("aes-128-cfb").encrypt
+ cipher.auth_data = "123"
+ }
+ end if has_cipher?("aes-128-gcm")
+
private
def new_encryptor(algo, **kwargs)
diff --git a/test/openssl/test_ssl_session.rb b/test/openssl/test_ssl_session.rb
index 9d0e5a2db1..af8c65b17f 100644
--- a/test/openssl/test_ssl_session.rb
+++ b/test/openssl/test_ssl_session.rb
@@ -215,6 +215,10 @@ __EOS__
end
end
+ # Skipping tests that use session_remove_cb by default because it may cause
+ # deadlock.
+ TEST_SESSION_REMOVE_CB = ENV["OSSL_TEST_ALL"] == "1"
+
def test_ctx_client_session_cb
pend "TLS 1.2 is not supported" unless tls12_supported?
@@ -227,11 +231,13 @@ __EOS__
sock, sess = ary
called[:new] = [sock, sess]
}
- ctx.session_remove_cb = lambda { |ary|
- ctx, sess = ary
- called[:remove] = [ctx, sess]
- # any resulting value is OK (ignored)
- }
+ if TEST_SESSION_REMOVE_CB
+ ctx.session_remove_cb = lambda { |ary|
+ ctx, sess = ary
+ called[:remove] = [ctx, sess]
+ # any resulting value is OK (ignored)
+ }
+ end
server_connect_with_session(port, ctx, nil) { |ssl|
assert_equal(1, ctx.session_cache_stats[:cache_num])
@@ -239,7 +245,9 @@ __EOS__
assert_equal([ssl, ssl.session], called[:new])
assert(ctx.session_remove(ssl.session))
assert(!ctx.session_remove(ssl.session))
- assert_equal([ctx, ssl.session], called[:remove])
+ if TEST_SESSION_REMOVE_CB
+ assert_equal([ctx, ssl.session], called[:remove])
+ end
}
end
end
@@ -275,10 +283,12 @@ __EOS__
last_server_session = sess
}
- ctx.session_remove_cb = lambda { |ary|
- _ctx, sess = ary
- called[:remove] = sess
- }
+ if TEST_SESSION_REMOVE_CB
+ ctx.session_remove_cb = lambda { |ary|
+ _ctx, sess = ary
+ called[:remove] = sess
+ }
+ end
}
start_server(ctx_proc: ctx_proc) do |port|
connections = 0
@@ -290,7 +300,9 @@ __EOS__
assert_nil called[:get]
assert_not_nil called[:new]
assert_equal sess0.id, called[:new].id
- assert_nil called[:remove]
+ if TEST_SESSION_REMOVE_CB
+ assert_nil called[:remove]
+ end
called.clear
# Internal cache hit
@@ -302,12 +314,16 @@ __EOS__
}
assert_nil called[:get]
assert_nil called[:new]
- assert_nil called[:remove]
+ if TEST_SESSION_REMOVE_CB
+ assert_nil called[:remove]
+ end
called.clear
sctx.flush_sessions(Time.now + 10000)
- assert_not_nil called[:remove]
- assert_equal sess0.id, called[:remove].id
+ if TEST_SESSION_REMOVE_CB
+ assert_not_nil called[:remove]
+ assert_equal sess0.id, called[:remove].id
+ end
called.clear
# External cache hit
@@ -325,12 +341,16 @@ __EOS__
assert_equal sess0.id, sess2.id
assert_equal sess0.id, called[:get]
assert_nil called[:new]
- assert_nil called[:remove]
+ if TEST_SESSION_REMOVE_CB
+ assert_nil called[:remove]
+ end
called.clear
sctx.flush_sessions(Time.now + 10000)
- assert_not_nil called[:remove]
- assert_equal sess0.id, called[:remove].id
+ if TEST_SESSION_REMOVE_CB
+ assert_not_nil called[:remove]
+ assert_equal sess0.id, called[:remove].id
+ end
called.clear
# Cache miss
@@ -344,7 +364,9 @@ __EOS__
assert_equal sess0.id, called[:get]
assert_not_nil called[:new]
assert_equal sess3.id, called[:new].id
- assert_nil called[:remove]
+ if TEST_SESSION_REMOVE_CB
+ assert_nil called[:remove]
+ end
end
end