]> Cypherpunks repositories - gostls13.git/commit
crypto/tls: implement X25519MLKEM768
authorFilippo Valsorda <filippo@golang.org>
Thu, 21 Nov 2024 20:21:58 +0000 (21:21 +0100)
committerGopher Robot <gobot@golang.org>
Fri, 22 Nov 2024 04:03:12 +0000 (04:03 +0000)
commit4b7f7cd87dfcbc17861c908b20a6101e5915ef59
tree7161f7f03ea767e911d2a87000b9b5ddb6cfc6fd
parentdbfd0036f7c25eef6c194bd37936398ce58f910d
crypto/tls: implement X25519MLKEM768

This makes three related changes that work particularly well together
and would require significant extra work to do separately: it replaces
X25519Kyber768Draft00 with X25519MLKEM768, it makes CurvePreferences
ordering crypto/tls-selected, and applies a preference to PQ key
exchange methods over key shares (to mitigate downgrades).

TestHandshakeServerUnsupportedKeyShare was removed because we are not
rejecting unsupported key shares anymore (nor do we select them, and
rejecting them actively is a MAY). It would have been nice to keep the
test to check we still continue successfully, but testClientHelloFailure
is broken in the face of any server-side behavior which requires writing
any other messages back to the client, or reading them.

Updates #69985
Fixes #69393

Change-Id: I58de76f5b8742a9bd4543fd7907c48e038507b19
Reviewed-on: https://go-review.googlesource.com/c/go/+/630775
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Filippo Valsorda <filippo@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
18 files changed:
api/next/69985.txt [new file with mode: 0644]
doc/godebug.md
doc/next/6-stdlib/99-minor/crypto/tls/69985.md [new file with mode: 0644]
src/crypto/tls/bogo_config.json
src/crypto/tls/bogo_shim_test.go
src/crypto/tls/common.go
src/crypto/tls/common_string.go
src/crypto/tls/defaults.go
src/crypto/tls/fips_test.go
src/crypto/tls/handshake_client.go
src/crypto/tls/handshake_client_tls13.go
src/crypto/tls/handshake_server.go
src/crypto/tls/handshake_server_test.go
src/crypto/tls/handshake_server_tls13.go
src/crypto/tls/key_schedule.go
src/crypto/tls/key_schedule_test.go
src/crypto/tls/tls_test.go
src/internal/godebugs/table.go