Fork of the Go standard TLS library, providing low-level access to the ClientHello for mimicry purposes.
Find a file
Roland Shoemaker 212bbb2c77 crypto/tls: add server-side ECH
Adds support for server-side ECH.

We make a couple of implementation decisions that are not completely
in-line with the spec. In particular, we don't enforce that the SNI
matches the ECHConfig public_name, and we implement a hybrid
shared/backend mode (rather than shared or split mode, as described in
Section 7). Both of these match the behavior of BoringSSL.

The hybrid server mode will either act as a shared mode server, where-in
the server accepts "outer" client hellos and unwraps them before
processing the "inner" hello, or accepts bare "inner" hellos initially.
This lets the server operate either transparently as a shared mode
server, or a backend server, in Section 7 terminology. This seems like
the best implementation choice for a TLS library.

Fixes #68500

Change-Id: Ife69db7c1886610742e95e76b0ca92587e6d7ed4
Reviewed-on: https://go-review.googlesource.com/c/go/+/623576
Reviewed-by: Filippo Valsorda <filippo@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net>
Auto-Submit: Roland Shoemaker <roland@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-11-21 22:50:04 +00:00
fipsonly crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
internal/fips140tls crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
testdata crypto/ecdsa: implement deterministic and hedged signatures 2024-11-19 23:02:26 +00:00
alert.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
auth.go crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
auth_test.go [dev.boringcrypto] all: merge master into dev.boringcrypto 2020-04-08 17:48:41 -04:00
bogo_config.json crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
bogo_shim_test.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
cache.go crypto/tls: use SessionState on the client side 2023-05-24 23:56:41 +00:00
cache_test.go crypto/tls: add a certificate cache implementation 2022-11-07 19:46:27 +00:00
cipher_suites.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
common.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
common_string.go crypto/tls: implement X25519Kyber768Draft00 2024-05-22 14:56:25 +00:00
conn.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
conn_test.go crypto/tls: enforce 1.3 record version semantics 2023-05-24 21:35:01 +00:00
defaults.go crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
ech.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
ech_test.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
example_test.go all: make use of builtin clear 2024-03-27 18:23:49 +00:00
fips_test.go crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
generate_cert.go crypto/tls: delete unnecessary line of return 2022-08-08 15:22:02 +00:00
handshake_client.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_client_test.go internal/byteorder: use canonical Go casing in names 2024-11-20 20:59:28 +00:00
handshake_client_tls13.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_messages.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_messages_test.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_server.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_server_test.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_server_tls13.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_test.go crypto/tls: fix testHandshake close flakes 2024-08-02 19:22:04 +00:00
handshake_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
key_agreement.go crypto/tls: implement X25519Kyber768Draft00 2024-05-22 14:56:25 +00:00
key_schedule.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
key_schedule_test.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
link_test.go all: use ":" for compiler generated symbols 2022-08-09 11:28:56 +00:00
prf.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
prf_test.go crypto/tls: remove SSLv3 support 2019-08-27 22:24:05 +00:00
quic.go crypto/tls: fix typo in quicError 2024-08-14 18:08:03 +00:00
quic_test.go crypto/tls: apply QUIC session event flag to QUICResumeSession events 2024-06-25 17:08:08 +00:00
ticket.go crypto/tls: improved 0-RTT QUIC API 2024-05-22 17:23:54 +00:00
ticket_test.go crypto/tls: avoid referencing potentially unused symbols in init 2023-05-26 15:24:38 +00:00
tls.go net/http: check GetConfigForClient in server.ServeTLS 2024-06-07 17:57:01 +00:00
tls_test.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00