PQ Crypta Logo

aioquic — Post-quantum certificate chain, compressed per RFC 8879

This client was not driven through this test.

PQ CRYPTA PLATFORM

🏠 Main

🧪 Interactive Apps

📰 News

🛡️ PQ Crypta Proxy

👤 Account

⟨ QUANTUM ERROR PORTAL ⟩

Navigate the Error Dimensions

Not run

Not attempted.

This client was not driven through this test.

On the TLS tier this usually means more than it says. Each of these ports will negotiate exactly one key exchange group, so a client that cannot negotiate that group never completes a handshake, never establishes a connection, and leaves the server nothing to judge. For a hybrid-only port that reads as no post-quantum key exchange offered — which is a finding about the client rather than a gap in the run.

What was measured

Client
aioquic — aioquic, 1.3.0
Test
Post-quantum certificate chain, compressed per RFC 8879t-cert-compression-pq
Clause
RFC 8879 §4, RFC 8446 §4.4.2 (MAY)
Class
discretionary — The RFC permits either behaviour; the report says which was chosen.
Required behaviour
Decompress and parse a 55 KB ML-DSA-87 chain, then judge it on its merits. Nothing here is graded: RFC 8879 is optional, no RFC requires support for ML-DSA certificates, and §4 expressly lets a receiver cap the decompressed size and abort. What the port reports is which of those a client does. The chain is deliberately issued by a private CA nobody trusts, and that is what makes the measurement work rather than spoiling it. A client that rejects it for its *trust anchor* — unknown_ca, or bad_certificate — has already decompressed a 55 KB certificate message, parsed ML-DSA-87 structures it may never have seen and got as far as chain building. That is the whole capability under test, and the rejection that follows is correct behaviour, not a failure. A client that cannot get that far answers differently: decode_error or a record-size abort says the compressed chain itself defeated it, which is the outcome the post-quantum migration needs to know about. Certificate sizes are the half of that migration nobody can configure their way out of — ML-DSA-87 signatures are 4,627 bytes each and every chain carries several.
Measured
2026-09-18

Reproduce it

The suite is the judge, so the reproduction is to point the same client at the same test and let the server report what it saw.

SESSION=$(curl -sX POST https://conformance.pqcrypta.com/session | jq -r .id)
# then drive aioquic at the test URL and read the verdict:
curl -s https://conformance.pqcrypta.com/report/$SESSION.json | jq '.results["t-cert-compression-pq"]'

What this suite is · The full grid · All clients · All tests · Findings