q-key-update
· RFC 9001 §6.2 · interoperability · layer quic · udp/4487 · MUST
Passing this means: Correctly decoded something valid but demanding.
Anomaly type: transport
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | ngtcp2/1.11.0 | Pass | Decoded it and completed the request. |
| quinn | noq fork | Pass | Decoded it and completed the request. |
| aioquic | 1.3.0 | Pass | Decoded it and completed the request. |
| chromium | build 1223 | Pass | Decoded it and completed the request. |
| quic-go | quic-go v0.61.0 | Pass | Decoded it and completed the request. |
| quiche | 0.30.0 | Pass | Decoded it and completed the request. |
| neqo | 0.31.1 | Pass | Decoded it and completed the request. |
What the clause requires
Update to the next key phase and carry on. Once a packet protected with the next phase is processed, §6.2 is a MUST — "The endpoint MUST update its send keys to the corresponding key phase in response" — so the response written after the update has to be read with the new keys and the request completed.
Judged against RFC 9001.
Run this one yourself
Every test is reachable from your own client. Nothing here needs an account.
curl -s https://conformance.pqcrypta.com/catalog.json \
| jq '.tests[] | select(.id == "q-key-update")'
What this suite is · The full grid · All clients · All tests · Findings