TLS: reject duplicate extensions
Adapted from BoringSSL. Added a test. The extension parsing code is already attempting to already handle this for some individual extensions, but it is doing so inconsistently. Duplicate efforts in individual extension parsing will be cleaned up in a follow-up. Reviewed-by: Stephen Henson <steve@openssl.org>
This commit is contained in:
@@ -80,7 +80,7 @@ sub new
|
||||
$self->{session} = "";
|
||||
$self->{ciphersuite} = 0;
|
||||
$self->{comp_meth} = 0;
|
||||
$self->{extensions_data} = "";
|
||||
$self->{extension_data} = "";
|
||||
|
||||
return $self;
|
||||
}
|
||||
@@ -161,6 +161,11 @@ sub set_message_contents
|
||||
$extensions .= pack("n", $key);
|
||||
$extensions .= pack("n", length($extdata));
|
||||
$extensions .= $extdata;
|
||||
if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) {
|
||||
$extensions .= pack("n", $key);
|
||||
$extensions .= pack("n", length($extdata));
|
||||
$extensions .= $extdata;
|
||||
}
|
||||
}
|
||||
|
||||
$data .= pack('n', length($extensions));
|
||||
|
Reference in New Issue
Block a user