# HG changeset patch
# User Maxim Dounin <mdou...@mdounin.ru>
# Date 1679148620 -10800
#      Sat Mar 18 17:10:20 2023 +0300
# Node ID 25c625a731909efe2978b1fd497e9bdda9217a35
# Parent  7dec25ecd3db606258647bd2ce2bca15e793accb
Tests: fixed ssl_session_ticket_key.t with LibreSSL and TLSv1.3.

LibreSSL does not support session reuse with TLSv1.3.

diff --git a/ssl_session_ticket_key.t b/ssl_session_ticket_key.t
--- a/ssl_session_ticket_key.t
+++ b/ssl_session_ticket_key.t
@@ -96,6 +96,10 @@ select undef, undef, undef, 0.5;
 is(get_ticket_key_name(), $key, 'ticket key match');
 
 select undef, undef, undef, 2.5;
+
+local $TODO = 'no TLSv1.3 sessions in LibreSSL'
+       if $t->has_module('LibreSSL') && test_tls13();
+
 cmp_ok(get_ticket_key_name(), 'ne', $key, 'ticket key next');
 
 ###############################################################################
@@ -107,7 +111,7 @@ sub get_ticket_key_name {
 next:
        # tag(10) | len{2} | OCTETSTRING(4) | len{2} | ticket(key_name|..)
        $asn =~ /\xaa\x81($any)\x04\x81($any)($any{16})/g;
-       return if !defined $3;
+       return '' if !defined $3;
        goto next if unpack("C", $1) - unpack("C", $2) != 3;
        my $key = unpack "H*", $3;
        Test::Nginx::log_core('||', "ticket key: $key");
@@ -126,6 +130,11 @@ EOF
        Net::SSLeay::get_session($ssl);
 }
 
+sub test_tls13 {
+       my ($s, $ssl) = get_ssl_socket();
+       return (Net::SSLeay::version($ssl) > 0x303);
+}
+
 sub get_ssl_socket {
        my $s = IO::Socket::INET->new('127.0.0.1:' . port(8080));
        my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel

Reply via email to