openssl/test/ssl-tests/06-sni-ticket.conf.in
Emilia Kasper d2b23cd2b0 SSL test framework: port SNI tests
Observe that the old tests were partly ill-defined:
setting sn_server1 but not sn_server2 in ssltest_old.c does not enable
the SNI callback.

Fix this, and also explicitly test both flavours of SNI mismatch (ignore
/ fatal alert). Tests still pass.

Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-06-28 17:26:24 +02:00

87 lines
2.4 KiB
Perl

# -*- mode: perl; -*-
# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
# in the file LICENSE in the source distribution or at
# https://www.openssl.org/source/license.html
## Test version negotiation
use strict;
use warnings;
package ssltests;
our @tests = ();
sub generate_tests() {
foreach my $c ("SessionTicket", "-SessionTicket") {
foreach my $s1 ("SessionTicket", "-SessionTicket") {
foreach my $s2 ("SessionTicket", "-SessionTicket") {
foreach my $n ("server1", "server2") {
my $result = expected_result($c, $s1, $s2, $n);
push @tests, {
"name" => "sni-session-ticket",
"client" => {
"Options" => $c,
},
"server" => {
"Options" => $s1,
},
"server2" => {
"Options" => $s2,
},
"test" => {
"ServerName" => $n,
"ExpectedServerName" => $n,
# We don't test mismatch here.
"ServerNameCallback" => "IgnoreMismatch",
"ExpectedResult" => "Success",
"SessionTicketExpected" => $result,
}
};
}
}
}
}
}
# If the client has session tickets disabled, then No support
# If the server initial_ctx has session tickets disabled, then No support
# If SNI is in use, then if the "switched-to" context has session tickets disabled,
# then No support
sub expected_result {
my ($c, $s1, $s2, $n) = @_;
return "No" if $c eq "-SessionTicket";
return "No" if $s1 eq "-SessionTicket";
return "No" if ($s2 eq "-SessionTicket" && $n eq "server2");
return "Yes";
}
# Add a "Broken" case.
push @tests, {
"name" => "sni-session-ticket",
"client" => {
"Options" => "SessionTicket",
},
"server" => {
"Options" => "SessionTicket",
},
"server2" => {
"Options" => "SessionTicket",
},
"test" => {
"ServerName" => "server1",
"ExpectedResult" => "Success",
"SessionTicketExpected" => "Broken",
}
};
generate_tests();