utls/testdata
Filippo Valsorda 376ff45dc1 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
..
Client-TLSv10-ClientCert-ECDSA-ECDSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ClientCert-ECDSA-RSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ClientCert-RSA-ECDSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ClientCert-RSA-RSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ECDHE-ECDSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ECDHE-RSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv10-ExportKeyingMaterial crypto/tls: make ConnectionState.ExportKeyingMaterial a method 2018-08-22 03:48:56 +00:00
Client-TLSv10-RSA-RC4 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv11-ECDHE-ECDSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv11-ECDHE-RSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv11-RSA-RC4 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-AES128-GCM-SHA256 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-AES128-SHA256 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-AES256-GCM-SHA384 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ALPN crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ALPN-NoMatch crypto/tls: support AES-128-CBC cipher suites with SHA-256. 2016-08-18 21:46:46 +00:00
Client-TLSv12-ClientCert-ECDSA-ECDSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ClientCert-ECDSA-RSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ClientCert-RSA-AES256-GCM-SHA384 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ClientCert-RSA-ECDSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ClientCert-RSA-RSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ClientCert-RSA-RSAPKCS1v15 crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Client-TLSv12-ClientCert-RSA-RSAPSS crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Client-TLSv12-ECDHE-ECDSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-ECDSA-AES-GCM crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-ECDSA-AES128-SHA256 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-ECDSA-AES256-GCM-SHA384 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-ECDSA-CHACHA20-POLY1305 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-RSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-RSA-AES128-SHA256 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ECDHE-RSA-CHACHA20-POLY1305 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-ExportKeyingMaterial crypto/tls: make ConnectionState.ExportKeyingMaterial a method 2018-08-22 03:48:56 +00:00
Client-TLSv12-P256-ECDHE crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv12-RenegotiateOnce crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-RenegotiateTwice crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-RenegotiateTwiceRejected crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-RenegotiationRejected crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-RSA-RC4 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-SCT crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Client-TLSv12-X25519-ECDHE crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-AES128-SHA256 crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-AES256-SHA384 crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-ALPN crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-CHACHA20-SHA256 crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-ECDSA crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-ExportKeyingMaterial crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-HelloRetryRequest crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-P256-ECDHE crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-RenegotiationRejected crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
Client-TLSv13-X25519-ECDHE crypto/tls: implement TLS 1.3 client handshake (base) 2018-11-02 22:07:02 +00:00
example-cert.pem crypto/tls: add examples for [Load]X509KeyPair 2018-04-30 17:25:27 +00:00
example-key.pem crypto/tls: add examples for [Load]X509KeyPair 2018-04-30 17:25:27 +00:00
Server-SSLv3-RSA-3DES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-SSLv3-RSA-AES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-SSLv3-RSA-RC4 crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv10-ECDHE-ECDSA-AES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv10-ExportKeyingMaterial crypto/tls: make ConnectionState.ExportKeyingMaterial a method 2018-08-22 03:48:56 +00:00
Server-TLSv10-RSA-3DES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv10-RSA-AES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv10-RSA-RC4 crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv11-FallbackSCSV crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv11-RSA-RC4 crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-ALPN crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-ALPN-NoMatch crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-CipherSuiteCertPreferenceECDSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-CipherSuiteCertPreferenceRSA crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-ClientAuthRequestedAndECDSAGiven crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-ClientAuthRequestedAndGiven crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-ClientAuthRequestedAndPKCS1v15Given crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-ClientAuthRequestedNotGiven crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-ECDHE-ECDSA-AES crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-ExportKeyingMaterial crypto/tls: make ConnectionState.ExportKeyingMaterial a method 2018-08-22 03:48:56 +00:00
Server-TLSv12-IssueTicket crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-IssueTicketPreDisable crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-P256 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv12-Resume crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-ResumeDisabled crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-RSA-3DES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-RSA-AES crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-RSA-AES-GCM crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-RSA-AES256-GCM-SHA384 crypto/tls: advertise support for SHA-512 signatures in 1.2 2017-11-08 22:39:36 +00:00
Server-TLSv12-RSA-RC4 crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-RSA-RSAPKCS1v15 crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-RSA-RSAPSS crypto/tls: advertise and accept rsa_pss_rsae signature algorithms 2018-11-02 22:05:52 +00:00
Server-TLSv12-SNI crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-SNI-GetCertificate crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-SNI-GetCertificateNotFound crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. 2016-10-18 06:54:30 +00:00
Server-TLSv12-X25519 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-AES128-SHA256 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-AES256-SHA384 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-ALPN crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-ALPN-NoMatch crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-CHACHA20-SHA256 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-ECDHE-ECDSA-AES crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-ExportKeyingMaterial crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-HelloRetryRequest crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-P256 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-RSA-RSAPSS crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00
Server-TLSv13-X25519 crypto/tls: implement TLS 1.3 server handshake (base) 2018-11-02 22:07:43 +00:00