Proposal: Implement "Modern Algorithms in the Web Cryptography API" (WICG specification)
Author: panvaCreated Aug 24, 2026Updated Aug 25, 2026
The WICG is incubating a specification that adds post-quantum secure and modern cryptographic algorithms to the Web Cryptography API, much like X25519 was incubated before being merged into Web Cryptography: https://wicg.github.io/webcrypto-modern-algos/
Adoption is well underway, see Implementation status.
The specification's Adoption Guidance section recommends the following implementation priorities:
- ML-KEM (FIPS 203) — post-quantum key encapsulation mechanism. Combined with traditional key agreement it enables hybrid PQ/T key establishment as used in protocols like HPKE and its PQ and PQ/T algorithms. ML-KEM requires new
SubtleCryptomethods:encapsulateKey,encapsulateBits,decapsulateKey, anddecapsulateBits. - ML-DSA (FIPS 204) — post-quantum digital signature algorithm.
- ChaCha20-Poly1305 (RFC 8439) — widely deployed AEAD cipher used across TLS, SSH, WireGuard, HPKE.
- SHA-3 (FIPS 202) —
SHA3-256,SHA3-384,SHA3-512hash functions. - cSHAKE (NIST SP 800-185) —
cSHAKE128,cSHAKE256extendable-output functions used in post-quantum constructions including ML-KEM key derivation and hybrid KEM combiners. When invoked without customization parameters, cSHAKE produces output identical to SHAKE. - TurboSHAKE (RFC 9861) —
TurboSHAKE128,TurboSHAKE256XOFs based on round-reduced Keccak, roughly twice as fast as SHAKE.
The specification also introduces two important new SubtleCrypto methods that benefit all algorithms (including those already in Web Crypto):
SubtleCrypto.supports(operation, algorithm)— synchronous feature detection for algorithm/operation support. This is critical for enabling progressive enhancement and graceful fallback as runtimes adopt these algorithms incrementally.SubtleCrypto.prototype.getPublicKey(key, keyUsages)— derives a public key from an asymmetric private key, simplifying key management and enabling protocols that commit the public key value to their outputs while accepting non-extractable private keys as input.
Web Platform Tests (WPTs) for the specified algorithms and operations are available.
Source: awslabs/llrt