Skip to content

docs: document Post-Quantum Cryptography (PQC) support and add TLS verification tests - #811

Draft
panavenue wants to merge 1 commit into
mainfrom
pqc-proxy-operator
Draft

panavenue wants to merge 1 commit into
mainfrom
pqc-proxy-operator

Conversation

@panavenue

Copy link
Copy Markdown
Contributor

Summary

Documents Post-Quantum Cryptography (PQC) TLS 1.3 key exchange (X25519MLKEM768) support in README.md and adds unit tests verifying PQC behavior across the Operator TLS stack, DefaultProxyImage, and sidecar container overrides:

  • TLS 1.3 key exchange verification (TestOperatorTLSKeyExchange): Verifies that the operator's k8s.io/client-go/rest TLS 1.3 client transport negotiates tls.X25519MLKEM768 (0x11ec) by default, falls back to classical tls.X25519 against classical-only TLS 1.3 peers, and honors GODEBUG=tlsmlkem=0 client-side opt-out (and GODEBUG=tlsmlkem=1).

  • Default sidecar image check (TestDefaultProxyImageSupportsPQC): Verifies that workload.DefaultProxyImage (2.26.3) meets the minimum PQC-capable Cloud SQL Auth Proxy version (2.15.2+, built with go >= 1.24 in go.mod) and leaves GODEBUG unset by default.

  • Sidecar GODEBUG=tlsmlkem=0 override check (TestSidecarGODEBUGOptOutViaContainerOverride): Verifies webhook validation and container reconciliation when passing GODEBUG=tlsmlkem=0 via spec.authProxyContainer.container on both Kubernetes < 1.29 (containers) and >= 1.29 (initContainers with restartPolicy: Always).

  • Documentation (README.md): Adds a Post-Quantum Cryptography (PQC) section covering default hybrid key exchange behavior and automatic fallback, custom proxy image version requirements (2.15.2+), and GODEBUG=tlsmlkem=0 opt-out instructions (including an explicit warning that spec.authProxyContainer.container is a full-replacement debugging parameter).

  • Tests pass

  • Appropriate changes to README are included in PR

…rification tests

Verify that the operator's TLS 1.3 client transport negotiates X25519MLKEM768
by default, falls back to classical X25519 when connecting to classical-only
TLS 1.3 peers, and honors GODEBUG=tlsmlkem=0 opt-out. Also test that
DefaultProxyImage meets the minimum PQC-capable Cloud SQL Auth Proxy version
(2.15.2+) and that GODEBUG=tlsmlkem=0 is preserved on sidecar overrides across
both regular containers and native Kubernetes 1.29+ sidecar initContainers.

Document default PQC key exchange behavior, custom sidecar image version
requirements, and GODEBUG=tlsmlkem=0 opt-out configuration in README.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant