← Knowledge base

Chrome / Chromium

Is PQC enabled? — quick check

Chrome / Edge / Brave (DevTools — fully local)

# 1) Open a TLS 1.3 site you trust (your own, or any HTTPS host).
# 2) Press F12 → Security tab → click the origin under "Main origin".
# 3) Read "Connection" — it lists the negotiated key exchange group by name.
#
# Capability flag (offline):  chrome://flags#enable-tls13-kyber
# (renamed enable-tls13-mlkem in Chrome 131+)

Expected when PQC is ON

Connection - protocol: TLS 1.3,
  key exchange group: X25519MLKEM768,
  cipher: AES_256_GCM

What you'll see when PQC is OFF

Connection - protocol: TLS 1.3,
  key exchange group: X25519,
  cipher: AES_256_GCM

DevTools reads the negotiated group from the live connection state in the renderer — no network call leaves the page. Firefox: about:config → security.tls.enable_kyber = true; Safari has no PQ in WebKit yet.

Chrome shipped X25519Kyber768Draft00 enabled by default in version 124 (April 2024) and migrated to the standardized X25519MLKEM768 in version 131 (Nov 2024). Edge, Brave, Opera, Vivaldi, and any current Chromium-based browser inherit this behavior.

How to verify in Chrome

  1. Open the page over HTTPS.
  2. Open DevTools → Security tab → look at the connection details.
  3. Or visit pq.cloudflareresearch.com — it shows the negotiated key-agreement algorithm.

Enterprise policy

Hybrid PQC is controlled by the PostQuantumKeyAgreementEnabled policy. Default is true. If legacy middleboxes break hybrid handshakes you can disable it temporarily, but the right fix is to update those middleboxes — they're misclassifying the larger ClientHello.

Flags (advanced)

References

Run the check on your browser →