Loading test/recipes/70-test_sslrecords.t +47 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,11 @@ my $content_type = TLSProxy::Record::RT_APPLICATION_DATA; my $inject_recs_num = 1; $proxy->serverflags("-tls1_2"); $proxy->start() or plan skip_all => "Unable to start up Proxy for tests"; plan tests => 9; my $num_tests = 10; if (!disabled("tls1_1")) { $num_tests++; } plan tests => $num_tests; ok(TLSProxy::Message->fail(), "Out of context empty records test"); #Test 2: Injecting in context empty records should succeed Loading Loading @@ -116,6 +120,23 @@ $proxy->clear(); $proxy->serverflags("-tls1_2"); $proxy->start(); ok(TLSProxy::Message->fail(), "Alert before SSLv2 ClientHello test"); #Unregcognised record type tests #Test 10: Sending an unrecognised record type in TLS1.2 should fail $proxy->clear(); $proxy->filter(\&add_unknown_record_type); $proxy->start(); ok(TLSProxy::Message->fail(), "Unrecognised record type in TLS1.2"); #Test 11: Sending an unrecognised record type in TLS1.1 should fail if (!disabled("tls1_1")) { $proxy->clear(); $proxy->clientflags("-tls1_1"); $proxy->start(); ok(TLSProxy::Message->fail(), "Unrecognised record type in TLS1.1"); } sub add_empty_recs_filter { my $proxy = shift; Loading Loading @@ -342,3 +363,28 @@ sub add_sslv2_filter } } sub add_unknown_record_type { my $proxy = shift; # We'll change a record after the initial version neg has taken place if ($proxy->flight != 2) { return; } my $lastrec = ${$proxy->record_list}[-1]; my $record = TLSProxy::Record->new( 2, TLSProxy::Record::RT_UNKNOWN, $lastrec->version(), 1, 0, 1, 1, "X", "X" ); unshift @{$proxy->record_list}, $record; } util/TLSProxy/Record.pm +4 −2 Original line number Diff line number Diff line Loading @@ -22,14 +22,16 @@ use constant { RT_APPLICATION_DATA => 23, RT_HANDSHAKE => 22, RT_ALERT => 21, RT_CCS => 20 RT_CCS => 20, RT_UNKNOWN => 100 }; my %record_type = ( RT_APPLICATION_DATA, "APPLICATION DATA", RT_HANDSHAKE, "HANDSHAKE", RT_ALERT, "ALERT", RT_CCS, "CCS" RT_CCS, "CCS", RT_UNKNOWN, "UNKNOWN" ); use constant { Loading Loading
test/recipes/70-test_sslrecords.t +47 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,11 @@ my $content_type = TLSProxy::Record::RT_APPLICATION_DATA; my $inject_recs_num = 1; $proxy->serverflags("-tls1_2"); $proxy->start() or plan skip_all => "Unable to start up Proxy for tests"; plan tests => 9; my $num_tests = 10; if (!disabled("tls1_1")) { $num_tests++; } plan tests => $num_tests; ok(TLSProxy::Message->fail(), "Out of context empty records test"); #Test 2: Injecting in context empty records should succeed Loading Loading @@ -116,6 +120,23 @@ $proxy->clear(); $proxy->serverflags("-tls1_2"); $proxy->start(); ok(TLSProxy::Message->fail(), "Alert before SSLv2 ClientHello test"); #Unregcognised record type tests #Test 10: Sending an unrecognised record type in TLS1.2 should fail $proxy->clear(); $proxy->filter(\&add_unknown_record_type); $proxy->start(); ok(TLSProxy::Message->fail(), "Unrecognised record type in TLS1.2"); #Test 11: Sending an unrecognised record type in TLS1.1 should fail if (!disabled("tls1_1")) { $proxy->clear(); $proxy->clientflags("-tls1_1"); $proxy->start(); ok(TLSProxy::Message->fail(), "Unrecognised record type in TLS1.1"); } sub add_empty_recs_filter { my $proxy = shift; Loading Loading @@ -342,3 +363,28 @@ sub add_sslv2_filter } } sub add_unknown_record_type { my $proxy = shift; # We'll change a record after the initial version neg has taken place if ($proxy->flight != 2) { return; } my $lastrec = ${$proxy->record_list}[-1]; my $record = TLSProxy::Record->new( 2, TLSProxy::Record::RT_UNKNOWN, $lastrec->version(), 1, 0, 1, 1, "X", "X" ); unshift @{$proxy->record_list}, $record; }
util/TLSProxy/Record.pm +4 −2 Original line number Diff line number Diff line Loading @@ -22,14 +22,16 @@ use constant { RT_APPLICATION_DATA => 23, RT_HANDSHAKE => 22, RT_ALERT => 21, RT_CCS => 20 RT_CCS => 20, RT_UNKNOWN => 100 }; my %record_type = ( RT_APPLICATION_DATA, "APPLICATION DATA", RT_HANDSHAKE, "HANDSHAKE", RT_ALERT, "ALERT", RT_CCS, "CCS" RT_CCS, "CCS", RT_UNKNOWN, "UNKNOWN" ); use constant { Loading