mldsa-auth post-quantum handshake, both sides in this tab
Two parties authenticate with ML-DSA-65 and agree a key from X25519 and ML-KEM-768.
ClientHelloServerHello + sig_BClientAuth + sig_AChaCha20-Poly1305 records
The repo's own handshake and record-layer C code, compiled to WebAssembly, plays Device A and Server B. Run it, break it on purpose, and time it on your machine.
Downloads about 0.17 MB of WebAssembly, then generates three ML-DSA-65 keypairs.
Device A · initiator
on the wire
Server B · responder
Native reference, from the repo's README: 0.45 ms median handshake and 736 MiB/s record sealing at 64 KiB, in process on an Apple M4 Pro
(clang -O3, liboqs's NEON code). The numbers here come from a different build on your machine: liboqs's portable C compiled to WebAssembly,
with no SIMD, run by your browser. They sit side by side for context, not as a like-for-like comparison.
Two of the repo's test files, compiled unchanged into a second WebAssembly module (about 0.3 MB, fetched on the first press). In the repo each file is one CTest test; the lines below are its individual checks.