Go version
go1.25.3
Output of go env in your module/workspace:
go env
AR='ar'
CC='gcc'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='1'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='g++'
GCCGO='gccgo'
GO111MODULE=''
GOAMD64='v1'
GOARCH='amd64'
GOAUTH='netrc'
GOBIN=''
GOCACHE='/home/meissner/.cache/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/home/meissner/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2704894481=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMOD='/home/meissner/projects/goserver/golang-pqc-examples/go.mod'
GOMODCACHE='/home/meissner/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/meissner/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/lib64/go/1.25'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/meissner/.config/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/usr/lib64/go/1.25/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.25.3'
GOWORK=''
PKG_CONFIG='pkg-config'
What did you do?
The current TLS mlkem draft support needs to have set
GODEBUG=tlsmlkem=1
to be enabled.
This is contrary to the documented behaviour:
Go 1.24 enabled the post-quantum key exchange mechanism
X25519MLKEM768 by default. The default can be reverted using the
tlsmlkem setting.
This can be useful when dealing with buggy TLS servers that do not handle large records correctly,
causing a timeout during the handshake (see TLS post-quantum TL;DR fail).
Go 1.24 also removed X25519Kyber768Draft00 and the Go 1.23 tlskyber setting.
What did you see happen?
tls mmlkem draft support did not activate by default.
What did you expect to see?
tls mlkem draft support activated by default.
Go version
go1.25.3
Output of
go envin your module/workspace:What did you do?
The current TLS mlkem draft support needs to have set
GODEBUG=tlsmlkem=1
to be enabled.
This is contrary to the documented behaviour:
Go 1.24 enabled the post-quantum key exchange mechanism
X25519MLKEM768 by default. The default can be reverted using the
tlsmlkemsetting.This can be useful when dealing with buggy TLS servers that do not handle large records correctly,
causing a timeout during the handshake (see TLS post-quantum TL;DR fail).
Go 1.24 also removed X25519Kyber768Draft00 and the Go 1.23
tlskybersetting.What did you see happen?
tls mmlkem draft support did not activate by default.
What did you expect to see?
tls mlkem draft support activated by default.