Skip to content

[SSL] Restructure PQC docs and add signatures + product matrix#30142

Merged
RebeccaTamachiro merged 3 commits intoproductionfrom
lvalenta/pqc-docs-signatures-scaffold
Apr 27, 2026
Merged

[SSL] Restructure PQC docs and add signatures + product matrix#30142
RebeccaTamachiro merged 3 commits intoproductionfrom
lvalenta/pqc-docs-signatures-scaffold

Conversation

@lukevalenta
Copy link
Copy Markdown
Contributor

@lukevalenta lukevalenta commented Apr 21, 2026

Summary

Prepares the post-quantum docs for the rollout of post-quantum signatures (ML-DSA) alongside the already-deployed hybrid key agreement (X25519MLKEM768).

What's in this PR

pqc-support.mdx — restructured third-party software listing

  • Flat bullet list → three category-scoped tables: Browsers, Libraries, Servers.
  • Each row now has separate columns for key agreement (X25519MLKEM768) and signatures (ML-DSA), replacing the previous per-hybrid prose sections.
  • X25519Kyber768Draft00 tracking is dropped — that draft has been superseded by the standardized X25519MLKEM768 hybrid and every listed library has migrated.

New ML-DSA software support captured (all verified against upstream release notes or source):

  • OpenSSL 3.5.0+ (native, all three parameter sets)
  • BoringSSL (native)
  • GnuTLS 3.8.10+ (usable in TLS handshakes; all private key encodings — seed, expandedKey, both)
  • Node.js 24.5.0+ (via bundled OpenSSL 3.5)
  • Go 1.26 (internal impl; public crypto/mldsa proposed for 1.27)
  • Java 24+ APIs via JEP 497 (not yet in javax.net.ssl TLS)
  • Cloudflare's CIRCL 1.5.0+ via sign/mldsa
  • Rust: rustls-post-quantum (unstable, behind aws-lc-rs-unstable) and the pure-Rust RustCrypto ml-dsa crate
  • Botan 3.6.0+
  • liboqs 0.14.0+, oqs-provider 0.9.0+

Corrections along the way:

  • Rustls: X25519MLKEM768 ships through the rustls-post-quantum crate (enabled by default in rustls 0.23.27+), not directly in the main rustls crate.
  • Botan key-agreement entry clarified: TLS default is since 3.7.0.

pqc-cloudflare-products.mdx (new) — product-level status matrix

Product-level matrix organized by the Cloudflare-operated connection or service that provides each product's secure communication channel. Many Cloudflare products share the same underlying connection or service — once that has been upgraded to post-quantum, every product on top of it inherits the same protection.

Each section has a brief description, a Protection table (key agreement + signatures), a References line, and a "Products covered" callout where multiple Cloudflare products share the same underlying connection or service.

Sections (all cross-checked against source docs and/or blog posts):

  • Visitor to Cloudflare (TLS 1.3 including QUIC) — ✅ X25519MLKEM768 · planned Merkle Tree Certificates
  • Cloudflare internal network — 🚧 X25519MLKEM768 · Not yet for signatures
  • Cloudflare to origin — ✅ X25519MLKEM768 · Not yet for signatures
  • Cloudflare One Client (MASQUE) — ✅ X25519MLKEM768 · Not yet for signatures
  • Cloudflare Tunnel (cloudflared) — ✅ X25519MLKEM768 · Not yet for signatures
  • Cloudflare One Appliance — ✅ X25519MLKEM768 · Not yet for signatures
  • Cloudflare IPsec (closed beta) — ✅ ML-KEM-768/1024 + DH Group 20 (P-384) in IKEv2 · Not yet for signatures

index.mdx — small updates

  • Introduction references the April 2026 roadmap post announcing Cloudflare's 2029 target for full post-quantum security.
  • Post-quantum signatures section now links to the PQC in Cloudflare products page for the current deployment list rather than enumerating features inline.
  • Browser-support check link updated from pq.cloudflareresearch.com to Cloudflare Radar's equivalent page.

Documentation checklist

@github-actions
Copy link
Copy Markdown
Contributor

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
/src/content/docs/ssl/ @RebeccaTamachiro, @cloudflare/pcx-technical-writing, @cloudflare/product-owners

Comment thread src/content/docs/ssl/post-quantum-cryptography/pqc-cloudflare-products.mdx Outdated
Comment thread src/content/docs/ssl/post-quantum-cryptography/pqc-support.mdx Outdated
@bwesterb
Copy link
Copy Markdown
Member

Product should have a look at the presentation of the product table, but looks good to me otherwise.

Comment thread src/content/docs/ssl/post-quantum-cryptography/pqc-cloudflare-products.mdx Outdated
@lukevalenta lukevalenta force-pushed the lvalenta/pqc-docs-signatures-scaffold branch from e1e9219 to 4346840 Compare April 22, 2026 16:09
@lukevalenta lukevalenta marked this pull request as ready for review April 22, 2026 16:15
@lukevalenta lukevalenta requested review from a team and RebeccaTamachiro as code owners April 22, 2026 16:15
Prepares the post-quantum docs for the rollout of post-quantum
signatures (ML-DSA) alongside the already-deployed hybrid key
agreement (X25519MLKEM768).

Changes to src/content/docs/ssl/post-quantum-cryptography/:

- pqc-support.mdx: restructured from a flat bullet list into three
  category-scoped tables (Browsers, Libraries, Servers). Each row
  now has separate columns for key agreement (X25519MLKEM768) and
  signatures (ML-DSA), replacing the previous per-hybrid prose
  sections. X25519Kyber768Draft00 tracking is dropped: that draft
  has been superseded by the standardized X25519MLKEM768 hybrid and
  every listed library has migrated.

  New ML-DSA software support captured (all verified against upstream
  release notes or source):
    - OpenSSL 3.5.0+ (native, all three parameter sets)
    - BoringSSL (native)
    - GnuTLS 3.8.10+ (usable in TLS handshakes; all private key
      encodings — seed, expandedKey, both)
    - Node.js 24.5.0+ (via bundled OpenSSL 3.5)
    - Go 1.26 (internal impl; public crypto/mldsa proposed for 1.27,
      tracked at golang/go#77626)
    - Java 24+ APIs via JEP 497 (not yet in javax.net.ssl TLS)
    - Cloudflare's CIRCL 1.5.0+ via sign/mldsa
    - Rust: rustls-post-quantum (unstable, behind aws-lc-rs-unstable)
      and pure-Rust RustCrypto ml-dsa crate
    - Botan 3.6.0+
    - liboqs 0.14.0+, oqs-provider 0.9.0+

  Intro updated to call out that ML-DSA-44 is the variant Cloudflare
  is currently evaluating for deployment and to point readers to the
  PQC in Cloudflare products page for the per-product status.

  Rustls entry corrected: X25519MLKEM768 ships through the
  rustls-post-quantum crate (enabled by default in rustls 0.23.27+),
  not directly in the main rustls crate.

  Botan key-agreement entry clarified: TLS default is since 3.7.0.

- pqc-cloudflare-products.mdx (new): product-level matrix organized
  by the Cloudflare-operated connection or service that provides the
  secure communication channel. Each section has a brief
  description, a Protection table (key agreement + signatures), a
  References line, and a 'Products covered' callout where multiple
  Cloudflare products share the same underlying connection or
  service.

  Sections, all cross-checked against source docs:
    - Visitor to Cloudflare (TLS 1.3 including QUIC)
    - Cloudflare internal network
    - Cloudflare to origin
    - Cloudflare One Client (MASQUE)
    - Cloudflare Tunnel (cloudflared)
    - Cloudflare One Appliance
    - Cloudflare IPsec (closed beta)

  Signatures are 'Not yet' across all Cloudflare-operated surfaces
  today, except for the 'planned via Merkle Tree Certificates' entry
  for visitor-facing TLS.

- index.mdx: introduction updated to reference the April 2026
  roadmap post (blog.cloudflare.com/post-quantum-roadmap/) announcing
  Cloudflare's 2029 target for full post-quantum security. The
  post-quantum signatures section now links to the PQC in Cloudflare
  products page for the current deployment list. Replaces the
  pq.cloudflareresearch.com browser check with Cloudflare Radar's
  equivalent page (radar.cloudflare.com/post-quantum#browser-support).
@lukevalenta lukevalenta force-pushed the lvalenta/pqc-docs-signatures-scaffold branch from 4346840 to 7d27a66 Compare April 23, 2026 02:41
RebeccaTamachiro and others added 2 commits April 23, 2026 13:14
Pin Brave (1.73.86+) and Opera (116+) stable releases that first
shipped Chromium 131 with X25519MLKEM768 default. Add hybrid key
agreement names to OpenSSL and GnuTLS entries. Switch Chrome PQ
signatures reference to the IETF Merkle Tree Certificates draft
and mark it as planned.
@RebeccaTamachiro RebeccaTamachiro merged commit 145aa77 into production Apr 27, 2026
13 checks passed
@RebeccaTamachiro RebeccaTamachiro deleted the lvalenta/pqc-docs-signatures-scaffold branch April 27, 2026 13:41
nojvek pushed a commit to nojvek/cloudflare-docs that referenced this pull request Apr 29, 2026
…flare#30142)

* [SSL] Restructure PQC docs and add signatures + product matrix

Prepares the post-quantum docs for the rollout of post-quantum
signatures (ML-DSA) alongside the already-deployed hybrid key
agreement (X25519MLKEM768).

Changes to src/content/docs/ssl/post-quantum-cryptography/:

- pqc-support.mdx: restructured from a flat bullet list into three
  category-scoped tables (Browsers, Libraries, Servers). Each row
  now has separate columns for key agreement (X25519MLKEM768) and
  signatures (ML-DSA), replacing the previous per-hybrid prose
  sections. X25519Kyber768Draft00 tracking is dropped: that draft
  has been superseded by the standardized X25519MLKEM768 hybrid and
  every listed library has migrated.

  New ML-DSA software support captured (all verified against upstream
  release notes or source):
    - OpenSSL 3.5.0+ (native, all three parameter sets)
    - BoringSSL (native)
    - GnuTLS 3.8.10+ (usable in TLS handshakes; all private key
      encodings — seed, expandedKey, both)
    - Node.js 24.5.0+ (via bundled OpenSSL 3.5)
    - Go 1.26 (internal impl; public crypto/mldsa proposed for 1.27,
      tracked at golang/go#77626)
    - Java 24+ APIs via JEP 497 (not yet in javax.net.ssl TLS)
    - Cloudflare's CIRCL 1.5.0+ via sign/mldsa
    - Rust: rustls-post-quantum (unstable, behind aws-lc-rs-unstable)
      and pure-Rust RustCrypto ml-dsa crate
    - Botan 3.6.0+
    - liboqs 0.14.0+, oqs-provider 0.9.0+

  Intro updated to call out that ML-DSA-44 is the variant Cloudflare
  is currently evaluating for deployment and to point readers to the
  PQC in Cloudflare products page for the per-product status.

  Rustls entry corrected: X25519MLKEM768 ships through the
  rustls-post-quantum crate (enabled by default in rustls 0.23.27+),
  not directly in the main rustls crate.

  Botan key-agreement entry clarified: TLS default is since 3.7.0.

- pqc-cloudflare-products.mdx (new): product-level matrix organized
  by the Cloudflare-operated connection or service that provides the
  secure communication channel. Each section has a brief
  description, a Protection table (key agreement + signatures), a
  References line, and a 'Products covered' callout where multiple
  Cloudflare products share the same underlying connection or
  service.

  Sections, all cross-checked against source docs:
    - Visitor to Cloudflare (TLS 1.3 including QUIC)
    - Cloudflare internal network
    - Cloudflare to origin
    - Cloudflare One Client (MASQUE)
    - Cloudflare Tunnel (cloudflared)
    - Cloudflare One Appliance
    - Cloudflare IPsec (closed beta)

  Signatures are 'Not yet' across all Cloudflare-operated surfaces
  today, except for the 'planned via Merkle Tree Certificates' entry
  for visitor-facing TLS.

- index.mdx: introduction updated to reference the April 2026
  roadmap post (blog.cloudflare.com/post-quantum-roadmap/) announcing
  Cloudflare's 2029 target for full post-quantum security. The
  post-quantum signatures section now links to the PQC in Cloudflare
  products page for the current deployment list. Replaces the
  pq.cloudflareresearch.com browser check with Cloudflare Radar's
  equivalent page (radar.cloudflare.com/post-quantum#browser-support).

* Replace table by list for readability on mobile devices

* [SSL] Refine PQC library and browser version details

Pin Brave (1.73.86+) and Opera (116+) stable releases that first
shipped Chromium 131 with X25519MLKEM768 default. Add hybrid key
agreement names to OpenSSL and GnuTLS entries. Switch Chrome PQ
signatures reference to the IETF Merkle Tree Certificates draft
and mark it as planned.

---------

Co-authored-by: Rebecca Tamachiro <rtamachiro@cloudflare.com>
Comment thread src/content/docs/ssl/post-quantum-cryptography/pqc-support.mdx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

product:ssl Related to SSL size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants