summaryrefslogtreecommitdiff
path: root/test/openssl
diff options
context:
space:
mode:
authormadblobfish <->2022-08-03 23:24:28 +0200
committerKazuki Yamaguchi <k@rhe.jp>2022-10-17 16:35:35 +0900
commit79543b9a530d85f0487583d96ad412f5e7683ffa (patch)
tree20f7affdaf697d96596dd8c7441d4a10f6dc9f6a /test/openssl
parenta98096349ec7280edabf3822d2c6932ac6e63634 (diff)
downloadruby-79543b9a530d85f0487583d96ad412f5e7683ffa.tar.gz
[ruby/openssl] ssl: enable generating keying material from SSL sessions
Add OpenSSL::SSL::SSLSocket#export_keying_material to support RFC 5705 https://github.com/ruby/openssl/commit/65530b887e
Diffstat (limited to 'test/openssl')
-rw-r--r--test/openssl/test_ssl.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb
index 5679ae77d7..9f5a27ea9f 100644
--- a/test/openssl/test_ssl.rb
+++ b/test/openssl/test_ssl.rb
@@ -1817,6 +1817,19 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase
sock2.close
end
+ def test_export_keying_material
+ start_server do |port|
+ cli_ctx = OpenSSL::SSL::SSLContext.new
+ server_connect(port, cli_ctx) do |ssl|
+ assert_instance_of(String, ssl.export_keying_material('ttls keying material', 64))
+ assert_operator(64, :==, ssl.export_keying_material('ttls keying material', 64).b.length)
+ assert_operator(8, :==, ssl.export_keying_material('ttls keying material', 8).b.length)
+ assert_operator(5, :==, ssl.export_keying_material('test', 5, 'context').b.length)
+ ssl.puts "abc"; ssl.gets # workaround to make tests work on windows
+ end
+ end
+ end
+
private
def start_server_version(version, ctx_proc = nil,