go/src
Filippo Valsorda db27e78278 crypto/tls: implement TLS 1.3 KeyUpdate messages
Since TLS 1.3 delivers handshake messages (including KeyUpdate) after
the handshake, the want argument to readRecord had became almost
pointless: it only meant something when set to recordTypeChangeCipherSpec.
Replaced it with a bool to reflect that, and added two shorthands to
avoid anonymous bools in calls.

Took the occasion to simplify and formalize the invariants of readRecord.

The maxConsecutiveEmptyRecords loop became useless when readRecord
started retrying on any non-advancing record in CL 145297.

Replaced panics with errors, because failure is better than undefined
behavior, but contained failure is better than a DoS vulnerability. For
example, I suspect the panic at the top of readRecord was reachable from
handleRenegotiation, which calls readHandshake with handshakeComplete
false. Thankfully it was not a panic in 1.11, and it's allowed now.

Removed Client-TLSv13-RenegotiationRejected because OpenSSL isn't
actually willing to ask for renegotiation over TLS 1.3, the expected
error was due to NewSessionTicket messages, which didn't break the rest
of the tests because they stop too soon.

Updates #9671

Change-Id: I297a81bde5c8020a962a92891b70d6d70b90f5e3
Reviewed-on: https://go-review.googlesource.com/c/147418
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Adam Langley <agl@golang.org>
2018-11-12 20:42:36 +00:00
..
archive all: fix a bunch of misspellings 2018-10-08 03:12:03 +00:00
bufio bufio: fix indexes in TestWriter 2018-11-09 19:15:11 +00:00
builtin builtin: document when len and cap are constant 2018-09-18 21:52:11 +00:00
bytes strings,bytes: use inlineable function trampolines instead of linkname 2018-11-08 20:52:47 +00:00
cmd cmd/link: start file-local symbols at version 10 2018-11-12 20:27:22 +00:00
compress all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
container container/list: combining insert and remove operations while moving elements within a list. 2018-10-26 20:47:01 +00:00
context context: avoid duplicate removeChild 2018-10-03 15:26:10 +00:00
crypto crypto/tls: implement TLS 1.3 KeyUpdate messages 2018-11-12 20:42:36 +00:00
database/sql database/sql: add support for returning cursors to client 2018-11-08 21:19:17 +00:00
debug debug/gosym: use "go build" instead of hand-running asm and link 2018-11-12 20:27:20 +00:00
encoding all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
errors
expvar expvar: add Map.Delete 2018-10-04 01:16:52 +00:00
flag flag: return a consistent parse error if the flag value is invalid 2018-10-19 03:48:38 +00:00
fmt fmt: print maps in key-sorted order 2018-10-18 21:12:24 +00:00
go go/build: remove superfluous continues 2018-11-11 18:49:40 +00:00
hash hash/crc64: use t.Fatalf in TestGolden 2018-10-25 06:32:12 +00:00
html all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
image jpeg: simplify 'x = x op ...' to 'x op= ...' 2018-10-13 11:18:56 +00:00
index/suffixarray
internal internal/bytealg, runtime: provide linknames for pushed symbols 2018-11-12 20:27:16 +00:00
io io: export StringWriter 2018-10-03 20:13:35 +00:00
log log: add Logger.Writer method 2018-10-25 23:23:57 +00:00
math all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
mime mime/multipart: check for quoted-printable case insensitively 2018-11-09 05:37:10 +00:00
net all: add support for synchronous callbacks to js/wasm 2018-11-10 11:57:17 +00:00
os Revert "os: remove sleep in windows Process.Wait" 2018-11-09 23:24:35 +00:00
path all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
plugin
reflect runtime, reflect: access runtime.reflectcall directly 2018-11-12 20:27:14 +00:00
regexp all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
runtime runtime: correct ABI information for all functions 2018-11-12 20:27:18 +00:00
sort
strconv strconv: add comment explaining bounded shift in formatBits 2018-10-15 21:45:52 +00:00
strings strings,bytes: use inlineable function trampolines instead of linkname 2018-11-08 20:52:47 +00:00
sync all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
syscall runtime: correct ABI information for all functions 2018-11-12 20:27:18 +00:00
testdata Revert "compress: move benchmark text from src/testdata to src/compress/testdata" 2018-10-01 16:16:21 +00:00
testing testing: implement -benchtime=100x 2018-10-12 17:48:31 +00:00
text text/template/parse: simplify Tree.pipeline 2018-10-29 12:20:11 +00:00
time time: add a missing comma in the documentation of Time 2018-11-08 18:02:11 +00:00
unicode
unsafe unsafe: document that Alignof, Offsetof, and Sizeof return a constant 2018-10-11 02:32:20 +00:00
vendor/golang_org/x crypto/tls: implement TLS 1.3 cryptographic computations 2018-11-02 21:54:52 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash
make.bat
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc