go/src
Filippo Valsorda c21ba09bcd crypto/tls: implement TLS 1.3 server handshake (base)
Implement a basic TLS 1.3 server handshake, only enabled if explicitly
requested with MaxVersion.

This CL intentionally leaves for future CLs:
  - PSK modes and resumption
  - client authentication
  - compatibility mode ChangeCipherSpecs
  - early data skipping
  - post-handshake messages
  - downgrade protection
  - KeyLogWriter support
  - TLS_FALLBACK_SCSV processing

It also leaves a few areas up for a wider refactor (maybe in Go 1.13):
  - the certificate selection logic can be significantly improved,
    including supporting and surfacing signature_algorithms_cert, but
    this isn't new in TLS 1.3 (see comment in processClientHello)
  - handshake_server_tls13.go can be dried up and broken into more
    meaningful, smaller functions, but it felt premature to do before
    PSK and client auth support
  - the monstrous ClientHello equality check in doHelloRetryRequest can
    get both cleaner and more complete with collaboration from the
    parsing layer, which can come at the same time as extension
    duplicates detection

Updates #9671

Change-Id: Id9db2b6ecc2eea21bf9b59b6d1d9c84a7435151c
Reviewed-on: https://go-review.googlesource.com/c/147017
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Adam Langley <agl@golang.org>
2018-11-02 22:07:43 +00:00
..
archive all: fix a bunch of misspellings 2018-10-08 03:12:03 +00:00
bufio bufio: suggest io.ReadFull at (*Reader).Read 2018-10-30 13:03:46 +00:00
builtin builtin: document when len and cap are constant 2018-09-18 21:52:11 +00:00
bytes bytes, strings: fix Reader.UnreadRune returning without error on a zero Reader 2018-10-29 20:07:25 +00:00
cmd cmd/compile: disallow converting string to notinheap slice 2018-11-02 19:53:59 +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 server handshake (base) 2018-11-02 22:07:43 +00:00
database/sql database/sql: add description to String method of IsolationLevel struct. 2018-11-02 17:28:53 +00:00
debug all: skip unsupported tests on AIX 2018-11-02 16:12:08 +00:00
encoding encoding/json: add example to Valid 2018-10-28 19:49:25 +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 crypto/tls: implement TLS 1.3 cryptographic computations 2018-11-02 21:54:52 +00:00
hash hash/crc64: use t.Fatalf in TestGolden 2018-10-25 06:32:12 +00:00
html all: use strings.ReplaceAll and bytes.ReplaceAll where applicable 2018-09-26 22:14:25 +00:00
image jpeg: simplify 'x = x op ...' to 'x op= ...' 2018-10-13 11:18:56 +00:00
index/suffixarray
internal internal/syscall/windows: add LockFileEx and UnlockFileEx for use in cmd/go 2018-11-02 15:56:35 +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 math/big: shallow copies of Int/Rat/Float are not supported (documentation) 2018-10-29 18:23:31 +00:00
mime mime: add AIX operating system 2018-10-10 15:19:38 +00:00
net crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
os internal/poll, os/exec, runtime: replace PollDescriptor by IsPollDescriptor 2018-11-02 13:43:23 +00:00
path path/filepath: change IsAbs("NUL") to return true 2018-11-02 07:24:50 +00:00
plugin
reflect reflect: add an example for Kind 2018-10-03 22:38:53 +00:00
regexp regexp: add partial Deprecation comment to Copy 2018-10-12 17:48:44 +00:00
runtime syscall: add Syscall18 on Windows 2018-11-02 17:53:18 +00:00
sort
strconv strconv: add comment explaining bounded shift in formatBits 2018-10-15 21:45:52 +00:00
strings strings: declare IndexByte as noescape 2018-10-30 20:03:54 +00:00
sync sync: fix typo in doc 2018-10-06 12:04:57 +00:00
syscall syscall: add Syscall18 on Windows 2018-11-02 17:53: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 all: fix tests for older versions of AIX 7.2 2018-11-02 13:44:27 +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 src/make.bat: add missing go.exe extension 2018-08-25 22:42:46 +00:00
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat cmd/dist: fix compilation on windows 2018-08-25 22:39:17 +00:00
run.bash
run.bat
run.rc