@@ -2088,6 +2088,8 @@ def test_set_groups_tls12
20882088 server_connect ( port , ctx ) { |ssl |
20892089 cs = ssl . cipher [ 0 ]
20902090 assert_match ( /\A ECDH/ ) , cs
2091+ # SSL_get0_group_name() is supported on OpenSSL 3.2 or later.
2092+ assert_equal "secp384r1" , ssl . group if openssl? ( 3 , 2 , 0 )
20912093 assert_equal "secp384r1" , ssl . tmp_key . group . curve_name
20922094 ssl . puts "abc" ; assert_equal "abc\n " , ssl . gets
20932095 }
@@ -2127,6 +2129,8 @@ def test_set_groups_tls13
21272129
21282130 server_connect ( port , ctx ) { |ssl |
21292131 assert_equal "TLSv1.3" , ssl . ssl_version
2132+ # SSL_get0_group_name() is supported on OpenSSL 3.2 or later.
2133+ assert_equal "secp384r1" , ssl . group if openssl? ( 3 , 2 , 0 )
21302134 assert_equal "secp384r1" , ssl . tmp_key . group . curve_name
21312135 ssl . puts "abc" ; assert_equal "abc\n " , ssl . gets
21322136 }
@@ -2213,6 +2217,41 @@ def test_export_keying_material
22132217 end
22142218 end
22152219
2220+ def test_get_sigalg
2221+ # SSL_get0_signature_name() not supported
2222+ # SSL_get0_peer_signature_name() not supported
2223+ return unless openssl? ( 3 , 5 , 0 )
2224+
2225+ server_proc = -> ( ctx , ssl ) {
2226+ assert_equal ( 'rsa_pss_rsae_sha256' , ssl . sigalg )
2227+ assert_nil ( ssl . peer_sigalg )
2228+
2229+ readwrite_loop ( ctx , ssl )
2230+ }
2231+ start_server ( server_proc : server_proc ) do |port |
2232+ cli_ctx = OpenSSL ::SSL ::SSLContext . new
2233+ server_connect ( port , cli_ctx ) do |ssl |
2234+ assert_nil ( ssl . sigalg )
2235+ assert_equal ( 'rsa_pss_rsae_sha256' , ssl . peer_sigalg )
2236+ ssl . puts "abc" ; ssl . gets
2237+ end
2238+ end
2239+ end
2240+
2241+ def test_group
2242+ # SSL_get0_group_name() not supported
2243+ return unless openssl? ( 3 , 2 , 0 )
2244+
2245+ start_server do |port |
2246+ cli_ctx = OpenSSL ::SSL ::SSLContext . new
2247+ cli_ctx . groups = "X25519"
2248+ server_connect ( port , cli_ctx ) do |ssl |
2249+ assert_equal ( 'x25519' , ssl . group )
2250+ ssl . puts "abc" ; ssl . gets
2251+ end
2252+ end
2253+ end
2254+
22162255 private
22172256
22182257 def server_connect ( port , ctx = nil )
0 commit comments