mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
Add a test for unrecognised record types
We should fail if we receive an unrecognised record type Reviewed-by: Tim Hudson <tjh@openssl.org>
This commit is contained in:
parent
436a2a0179
commit
1f3e70a450
@ -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
|
||||
@ -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;
|
||||
@ -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;
|
||||
}
|
||||
|
@ -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…
x
Reference in New Issue
Block a user