Add machinery for testing TLS 1.3 cipher change synchronization.
This will be used for writing the equivalent test in TLS 1.3 to the
recent DTLS change and similar.
Change-Id: I280c3ca8f1d8e0981b6e7a499acb7eceebe43a0c
Reviewed-on: https://boringssl-review.googlesource.com/8792
Reviewed-by: Steven Valdez <svaldez@google.com>
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>
diff --git a/ssl/test/runner/handshake_server.go b/ssl/test/runner/handshake_server.go
index 50f9b7c..554eae2 100644
--- a/ssl/test/runner/handshake_server.go
+++ b/ssl/test/runner/handshake_server.go
@@ -390,7 +390,15 @@
// Send unencrypted ServerHello.
hs.writeServerHash(hs.hello.marshal())
- c.writeRecord(recordTypeHandshake, hs.hello.marshal())
+ if config.Bugs.PartialEncryptedExtensionsWithServerHello {
+ helloBytes := hs.hello.marshal()
+ toWrite := make([]byte, 0, len(helloBytes)+1)
+ toWrite = append(toWrite, helloBytes...)
+ toWrite = append(toWrite, typeEncryptedExtensions)
+ c.writeRecord(recordTypeHandshake, toWrite)
+ } else {
+ c.writeRecord(recordTypeHandshake, hs.hello.marshal())
+ }
c.flushHandshake()
// Compute the handshake secret.
@@ -414,7 +422,12 @@
// Send EncryptedExtensions.
hs.writeServerHash(encryptedExtensions.marshal())
- c.writeRecord(recordTypeHandshake, encryptedExtensions.marshal())
+ if config.Bugs.PartialEncryptedExtensionsWithServerHello {
+ // The first byte has already been sent.
+ c.writeRecord(recordTypeHandshake, encryptedExtensions.marshal()[1:])
+ } else {
+ c.writeRecord(recordTypeHandshake, encryptedExtensions.marshal())
+ }
if hs.suite.flags&suitePSK == 0 {
if config.ClientAuth >= RequestClientCert {