From e63d9d76250fb4ea4985c56536d8c14029f146b0 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 19 Sep 2016 18:27:34 -0400 Subject: [PATCH] Test interaction of RSA key exchange and ClientHello.version. If we see garbage in ClientHello.version and then select static RSA, that garbage is what goes in the premaster. Change-Id: I65190a44439745e6b5ffaf7669f063da725c8097 Reviewed-on: https://boringssl-review.googlesource.com/11092 Reviewed-by: Adam Langley Commit-Queue: Adam Langley CQ-Verified: CQ bot account: commit-bot@chromium.org --- ssl/test/runner/runner.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index feef62cf..854bcea1 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go @@ -6930,6 +6930,20 @@ func addRSAClientKeyExchangeTests() { expectedError: ":DECRYPTION_FAILED_OR_BAD_RECORD_MAC:", }) } + + // The server must compare whatever was in ClientHello.version for the + // RSA premaster. + testCases = append(testCases, testCase{ + testType: serverTest, + name: "SendClientVersion-RSA", + config: Config{ + CipherSuites: []uint16{TLS_RSA_WITH_AES_128_GCM_SHA256}, + Bugs: ProtocolBugs{ + SendClientVersion: 0x1234, + }, + }, + flags: []string{"-max-version", strconv.Itoa(VersionTLS12)}, + }) } var testCurves = []struct {