q-stateless-reset
· RFC 9000 §10.3 · correctness · layer quic · udp/4465 · MUST
Passing this means: Rejected something invalid, with the code the RFC names.
Anomaly type: transport
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | ngtcp2/1.11.0 | Pass | Responded correctly: was sent a Stateless Reset and went quiet — nothing further arrived in the 3 seconds that followed, which is the draining period §10.3.1 requires. |
| quinn | noq fork | Pass | Responded correctly: was sent a Stateless Reset and went quiet — nothing further arrived in the 3 seconds that followed, which is the draining period §10.3.1 requires. |
| aioquic | 1.3.0 | Fail | kept sending after the Stateless Reset: 85 more datagram(s) arrived in the following 3 seconds. RFC 9000 §10.3.1 requires a client that recognises the token to enter the draining period and send nothing further, so this connection is wedged against an endpoint that has forgotten it. |
| chromium | build 1223 | Pass | Responded correctly: was sent a Stateless Reset and went quiet — nothing further arrived in the 3 seconds that followed, which is the draining period §10.3.1 requires. |
| quic-go | quic-go v0.61.0 | Pass | Responded correctly: was sent a Stateless Reset and went quiet — nothing further arrived in the 3 seconds that followed, which is the draining period §10.3.1 requires. |
| quiche | 0.30.0 | Inconclusive | The run did not exercise this test: no Stateless Reset was triggered in the 8s after the endpoint forgot the connection, so there was nothing for the client to recognise: 3 datagram(s) arrived in that time. |
| neqo | 0.31.1 | Pass | Responded correctly: was sent a Stateless Reset and went quiet — nothing further arrived in the 3 seconds that followed, which is the draining period §10.3.1 requires. |
What the clause requires
Recognise the token in the last 16 bytes of the datagram, enter the draining period, and send no further packets on the connection. The packet cannot be authenticated, so there is nothing to reply with and nothing to report to the peer — continuing to send is the failure §10.3.1 names.
Judged against RFC 9000.
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-stateless-reset")'
What this suite is · The full grid · All clients · All tests · Findings