v147 · Security · TLS · Post-Quantum

Compatibility Lab

Probes the adjacent WebCrypto and Resource Timing signals JavaScript can observe, then separates those signals from the TLS/QUIC hybrid KEM negotiation that Chrome performs below the web platform. Includes compatibility scenarios for servers, middleboxes, and enterprise opt-outs.

API probes

WebCrypto algorithm support

AlgorithmAvailableNotes

Live WebCrypto key test

X25519 ECDH key generation + key agreement
Click "Run key test" to probe WebCrypto key algorithms…

Transport failure scenarios

Hybrid TLS deployment model

Context notes

/* X25519Kyber768 is a TLS/QUIC network-stack behavior - not a JS API. */ /* The hybrid key exchange happens automatically in the handshake when Chrome and the server both support it. JavaScript cannot observe the selected TLS NamedGroup, KEM, ClientHello, or enterprise policy state. */ /* What you CAN probe from JS: */ // 1. WebCrypto X25519 support for application-layer key agreement async function hasX25519() { try { await crypto.subtle.generateKey({ name: 'X25519' }, false, ['deriveKey']); return true; } catch { return false; } } // 2. WebCrypto ECDH support for application-layer key agreement async function hasECDH() { try { await crypto.subtle.generateKey({ name: 'ECDH', namedCurve: 'P-256' }, false, ['deriveKey']); return true; } catch { return false; } } // 3. Read the Resource Timing protocol token // This reports values like "h2", "h3", or "http/1.1". It is not a TLS // version, NamedGroup, or KEM detector. function getApplicationProtocol() { const entries = performance.getEntriesByType('navigation'); if (entries.length && entries[0].nextHopProtocol) { return entries[0].nextHopProtocol; } return 'unknown'; } /* For TLS, Chrome handles the hybrid KEM below the web platform. For application-layer post-quantum security, use a web-exposed post-quantum primitive when the platform provides one. */

References

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗