Test that record-splitting splits records.
We probably should not have been able to land
https://boringssl-review.googlesource.com/17944 without a test
suppression.
Change-Id: Ie47ca324f94d2f03b7d31218b0379656c070b21b
Reviewed-on: https://boringssl-review.googlesource.com/17905
Commit-Queue: Steven Valdez <svaldez@google.com>
Reviewed-by: Steven Valdez <svaldez@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go
index c974bd4..047c3c5 100644
--- a/ssl/test/runner/conn.go
+++ b/ssl/test/runner/conn.go
@@ -98,6 +98,7 @@
pendingFragments [][]byte // pending outgoing handshake fragments.
keyUpdateRequested bool
+ seenOneByteRecord bool
tmp [16]byte
}
@@ -844,6 +845,13 @@
}
typ = encTyp
}
+
+ length := len(b.data[b.off:])
+ if c.config.Bugs.ExpectRecordSplitting && typ == recordTypeApplicationData && length != 1 && !c.seenOneByteRecord {
+ return 0, nil, c.in.setErrorLocked(fmt.Errorf("tls: application data records were not split"))
+ }
+
+ c.seenOneByteRecord = typ == recordTypeApplicationData && length == 1
return typ, b, nil
}