Allow CECPQ1 cipher suites to do False Start.
Since they include an ECDHE exchange in them, they are equally-well
suited to False Start.
Change-Id: I75d31493a614a78ccbf337574c359271831d654d
Reviewed-on: https://boringssl-review.googlesource.com/8732
Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 19fdf1c..e0cba62 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -2528,7 +2528,8 @@
SSL_version(ssl) == TLS1_2_VERSION &&
(ssl->s3->alpn_selected || ssl->s3->next_proto_neg_seen) &&
cipher != NULL &&
- cipher->algorithm_mkey == SSL_kECDHE &&
+ (cipher->algorithm_mkey == SSL_kECDHE ||
+ cipher->algorithm_mkey == SSL_kCECPQ1) &&
cipher->algorithm_mac == SSL_AEAD;
}
diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go
index 01f8a46..60127da 100644
--- a/ssl/test/runner/runner.go
+++ b/ssl/test/runner/runner.go
@@ -3231,6 +3231,25 @@
shimWritesFirst: true,
})
+ tests = append(tests, testCase{
+ name: "FalseStart-CECPQ1",
+ config: Config{
+ MaxVersion: VersionTLS12,
+ CipherSuites: []uint16{TLS_CECPQ1_RSA_WITH_AES_256_GCM_SHA384},
+ NextProtos: []string{"foo"},
+ Bugs: ProtocolBugs{
+ ExpectFalseStart: true,
+ },
+ },
+ flags: []string{
+ "-false-start",
+ "-cipher", "DEFAULT:kCECPQ1",
+ "-select-next-proto", "foo",
+ },
+ shimWritesFirst: true,
+ resumeSession: true,
+ })
+
// Server parses a V2ClientHello.
tests = append(tests, testCase{
testType: serverTest,