Loading test/sslextensiontest.pl→test/recipes/70-test_sslextension.t +16 −4 Original line number Diff line number Diff line Loading @@ -53,18 +53,30 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslextension"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&extension_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 1; #Test 1: Sending a zero length extension block should pass $proxy->start(); TLSProxy::Message->success or die "FAILED: Zero extension length test\n"; print "SUCCESS: Extension test\n"; ok(TLSProxy::Message->success, "Zero extension length test"); sub extension_filter { Loading test/sslskewith0ptest.pl→test/recipes/70-test_sslskewith0p.t +16 −4 Original line number Diff line number Diff line Loading @@ -53,21 +53,33 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslskewith0p"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&ske_0_p_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 1; #We must use an anon DHE cipher for this test $proxy->cipherc('ADH-AES128-SHA:@SECLEVEL=0'); $proxy->ciphers('ADH-AES128-SHA:@SECLEVEL=0'); $proxy->start(); TLSProxy::Message->fail or die "FAILED: ServerKeyExchange with 0 p\n"; print "SUCCESS: ServerKeyExchange with 0 p\n"; ok(TLSProxy::Message->fail, "ServerKeyExchange with 0 p"); sub ske_0_p_filter { Loading test/sslvertoltest.pl→test/recipes/70-test_sslvertol.t +17 −5 Original line number Diff line number Diff line Loading @@ -53,24 +53,36 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslextension"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&vers_tolerance_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 2; #Test 1: Asking for TLS1.3 should pass my $client_version = TLSProxy::Record::VERS_TLS_1_3; $proxy->start(); TLSProxy::Message->success or die "FAILED: Version tolerance test\n"; ok(TLSProxy::Message->success(), "Version tolerance test, TLS 1.3"); #Test 2: Testing something below SSLv3 should fail $client_version = TLSProxy::Record::VERS_SSL_3_0 - 1; $proxy->restart(); TLSProxy::Message->success and die "FAILED: Version tolerance test\n"; print "SUCCESS: Version tolerance test\n"; ok(TLSProxy::Message->fail(), "Version tolerance test, SSL < 3.0"); sub vers_tolerance_filter { Loading test/run_tests.pl +3 −1 Original line number Diff line number Diff line Loading @@ -10,15 +10,17 @@ use Test::Harness qw/runtests $switches/; my $top = $ENV{TOP}; my $recipesdir = catdir($top, "test", "recipes"); my $testlib = catdir($top, "test", "testlib"); my $utillib = catdir($top, "util"); # It seems that $switches is getting interpretted with 'eval' or something # like that, and that we need to take care of backslashes or they will # disappear along the way. $testlib =~ s|\\|\\\\|g if $^O eq "MSWin32"; $utillib =~ s|\\|\\\\|g if $^O eq "MSWin32"; # Test::Harness provides the variable $switches to give it # switches to be used when it calls our recipes. $switches = "-w \"-I$testlib\""; $switches = "-w \"-I$testlib\" \"-I$utillib\""; my @tests = ( "alltests" ); if (@ARGV) { Loading Loading
test/sslextensiontest.pl→test/recipes/70-test_sslextension.t +16 −4 Original line number Diff line number Diff line Loading @@ -53,18 +53,30 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslextension"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&extension_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 1; #Test 1: Sending a zero length extension block should pass $proxy->start(); TLSProxy::Message->success or die "FAILED: Zero extension length test\n"; print "SUCCESS: Extension test\n"; ok(TLSProxy::Message->success, "Zero extension length test"); sub extension_filter { Loading
test/sslskewith0ptest.pl→test/recipes/70-test_sslskewith0p.t +16 −4 Original line number Diff line number Diff line Loading @@ -53,21 +53,33 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslskewith0p"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&ske_0_p_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 1; #We must use an anon DHE cipher for this test $proxy->cipherc('ADH-AES128-SHA:@SECLEVEL=0'); $proxy->ciphers('ADH-AES128-SHA:@SECLEVEL=0'); $proxy->start(); TLSProxy::Message->fail or die "FAILED: ServerKeyExchange with 0 p\n"; print "SUCCESS: ServerKeyExchange with 0 p\n"; ok(TLSProxy::Message->fail, "ServerKeyExchange with 0 p"); sub ske_0_p_filter { Loading
test/sslvertoltest.pl→test/recipes/70-test_sslvertol.t +17 −5 Original line number Diff line number Diff line Loading @@ -53,24 +53,36 @@ # Hudson (tjh@cryptsoft.com). use strict; use OpenSSL::Test qw/:DEFAULT cmdstr top_file top_dir/; use TLSProxy::Proxy; my $test_name = "test_sslextension"; setup($test_name); plan skip_all => "$test_name can only be performed with OpenSSL configured shared" unless (map { chomp; s/^SHARED_LIBS=\s*//; $_ } grep { /^SHARED_LIBS=/ } do { local @ARGV = ( top_file("Makefile") ); <> })[0] ne ""; $ENV{OPENSSL_ENGINES} = top_dir("engines"); $ENV{OPENSSL_ia32cap} = '~0x200000200000000'; my $proxy = TLSProxy::Proxy->new( \&vers_tolerance_filter, @ARGV cmdstr(app(["openssl"])), top_file("apps", "server.pem") ); plan tests => 2; #Test 1: Asking for TLS1.3 should pass my $client_version = TLSProxy::Record::VERS_TLS_1_3; $proxy->start(); TLSProxy::Message->success or die "FAILED: Version tolerance test\n"; ok(TLSProxy::Message->success(), "Version tolerance test, TLS 1.3"); #Test 2: Testing something below SSLv3 should fail $client_version = TLSProxy::Record::VERS_SSL_3_0 - 1; $proxy->restart(); TLSProxy::Message->success and die "FAILED: Version tolerance test\n"; print "SUCCESS: Version tolerance test\n"; ok(TLSProxy::Message->fail(), "Version tolerance test, SSL < 3.0"); sub vers_tolerance_filter { Loading
test/run_tests.pl +3 −1 Original line number Diff line number Diff line Loading @@ -10,15 +10,17 @@ use Test::Harness qw/runtests $switches/; my $top = $ENV{TOP}; my $recipesdir = catdir($top, "test", "recipes"); my $testlib = catdir($top, "test", "testlib"); my $utillib = catdir($top, "util"); # It seems that $switches is getting interpretted with 'eval' or something # like that, and that we need to take care of backslashes or they will # disappear along the way. $testlib =~ s|\\|\\\\|g if $^O eq "MSWin32"; $utillib =~ s|\\|\\\\|g if $^O eq "MSWin32"; # Test::Harness provides the variable $switches to give it # switches to be used when it calls our recipes. $switches = "-w \"-I$testlib\""; $switches = "-w \"-I$testlib\" \"-I$utillib\""; my @tests = ( "alltests" ); if (@ARGV) { Loading