Add tests around compression methods.
Not that this matters in the slightest, but the recent IETF mailing reminded me we don't test this. Change-Id: I300c96d6a63733d538a7019a7cb74d4e65d0498f Reviewed-on: https://boringssl-review.googlesource.com/10961 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
This commit is contained in:
parent
abe94e3b0d
commit
c241d79261
@ -1063,6 +1063,10 @@ type ProtocolBugs struct {
|
||||
// SendSNIWarningAlert, if true, causes the server to send an
|
||||
// unrecognized_name alert before the ServerHello.
|
||||
SendSNIWarningAlert bool
|
||||
|
||||
// SendCompressionMethods, if not nil, is the compression method list to
|
||||
// send in the ClientHello.
|
||||
SendCompressionMethods []byte
|
||||
}
|
||||
|
||||
func (c *Config) serverInit() {
|
||||
|
@ -92,6 +92,10 @@ func (c *Conn) clientHandshake() error {
|
||||
hello.supportedCurves = nil
|
||||
}
|
||||
|
||||
if c.config.Bugs.SendCompressionMethods != nil {
|
||||
hello.compressionMethods = c.config.Bugs.SendCompressionMethods
|
||||
}
|
||||
|
||||
if len(c.clientVerify) > 0 && !c.config.Bugs.EmptyRenegotiationInfo {
|
||||
if c.config.Bugs.BadRenegotiationInfo {
|
||||
hello.secureRenegotiation = append(hello.secureRenegotiation, c.clientVerify...)
|
||||
|
@ -2256,6 +2256,55 @@ func addBasicTests() {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
testType: serverTest,
|
||||
name: "ExtraCompressionMethods-TLS12",
|
||||
config: Config{
|
||||
MaxVersion: VersionTLS12,
|
||||
Bugs: ProtocolBugs{
|
||||
SendCompressionMethods: []byte{1, 2, 3, compressionNone, 4, 5, 6},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
testType: serverTest,
|
||||
name: "ExtraCompressionMethods-TLS13",
|
||||
config: Config{
|
||||
MaxVersion: VersionTLS13,
|
||||
Bugs: ProtocolBugs{
|
||||
SendCompressionMethods: []byte{1, 2, 3, compressionNone, 4, 5, 6},
|
||||
},
|
||||
},
|
||||
shouldFail: true,
|
||||
expectedError: ":INVALID_COMPRESSION_LIST:",
|
||||
expectedLocalError: "remote error: illegal parameter",
|
||||
},
|
||||
{
|
||||
testType: serverTest,
|
||||
name: "NoNullCompression-TLS12",
|
||||
config: Config{
|
||||
MaxVersion: VersionTLS12,
|
||||
Bugs: ProtocolBugs{
|
||||
SendCompressionMethods: []byte{1, 2, 3, 4, 5, 6},
|
||||
},
|
||||
},
|
||||
shouldFail: true,
|
||||
expectedError: ":NO_COMPRESSION_SPECIFIED:",
|
||||
expectedLocalError: "remote error: illegal parameter",
|
||||
},
|
||||
{
|
||||
testType: serverTest,
|
||||
name: "NoNullCompression-TLS13",
|
||||
config: Config{
|
||||
MaxVersion: VersionTLS13,
|
||||
Bugs: ProtocolBugs{
|
||||
SendCompressionMethods: []byte{1, 2, 3, 4, 5, 6},
|
||||
},
|
||||
},
|
||||
shouldFail: true,
|
||||
expectedError: ":INVALID_COMPRESSION_LIST:",
|
||||
expectedLocalError: "remote error: illegal parameter",
|
||||
},
|
||||
}
|
||||
testCases = append(testCases, basicTests...)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user