\&certtype_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
sub { return; },
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
SKIP: {
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#We assume that test_ssl_new and friends will test the happy path for this,
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
$proxy->start() or plan skip_all => "Unable to start up Proxy for tests";
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
sub success_or_closenotify
\&add_maximal_padding_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
# TODO: We could test all 256 values, but then the log file gets too large for
\&certstatus_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Test 1: Sending a status_request extension in both ClientHello and
\&inject_duplicate_extension_clienthello,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
@handmessages = (
\&add_empty_recs_filter,
cmdstr(app([ "openssl" ]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
} else {
$proxy = TLSProxy::Proxy->new(
\&add_empty_recs_filter,
cmdstr(app([ "openssl" ]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
}
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Test 1: By default with no existing session we should get a session ticket
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
\&ske_0_p_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#We must use an anon DHE cipher for this test
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#We're just testing various negative and unusual scenarios here. ssltest with
\&vers_tolerance_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
my @available_tls_versions = ();
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Test 1: We test that a server can handle an unencrypted alert when normally the
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
my $cookieseen = 0;
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Test 1: First get a session
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Test 1: Check we get all the right messages for a default handshake
undef,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
use constant {
\&extms_filter,
cmdstr(app(["openssl"]), display => 1),
srctop_file("apps", "server.pem"),
- (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE})
+ (!$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}),
+ have_IPv6()
);
#Note that EXTMS is only relevant for <TLS1.3
my ($filter,
$execute,
$cert,
- $debug) = @_;
- return init($class, $filter, $execute, $cert, $debug, 0);
+ $debug,
+ $use_IPv6) = @_;
+ return init($class, $filter, $execute, $cert, $debug, 0, $use_IPv6);
}
sub new_dtls {
my ($filter,
$execute,
$cert,
- $debug) = @_;
- return init($class, $filter, $execute, $cert, $debug, 1);
+ $debug,
+ $use_IPv6) = @_;
+ return init($class, $filter, $execute, $cert, $debug, 1, $use_IPv6);
}
sub init
$execute,
$cert,
$debug,
- $isdtls) = @_;
+ $isdtls,
+ $use_IPv6) = @_;
+ $use_IPv6 //= $have_IPv6;
my $test_client_port;
# this test to fail, so lets harden ourselves against that by doing
# a test bind to the randomly selected port, and only continue once we
# find a port that's available.
- my $test_client_addr = $have_IPv6 ? "[::1]" : "127.0.0.1";
+ my $test_client_addr = $use_IPv6 ? "[::1]" : "127.0.0.1";
my $found_port = 0;
for (my $i = 0; $i <= 10; $i++) {
$test_client_port = 49152 + int(rand(65535 - 49152));
my $test_sock;
- if ($useINET6 == 0) {
+ if ($use_IPv6 == 0 || $useINET6 == 0) {
if ($useSockInet == 0) {
$test_sock = IO::Socket::IP->new(LocalPort => $test_client_port,
LocalAddr => $test_client_addr);