PQ Crypta Logo

Version Negotiation offering a reserved version alongside v1

Abandon the connection attempt, or retry with a version both ends support. §6.2 requires a client that supports only one version to abandon it rather than persist.

PQ CRYPTA PLATFORM

🏠 Main

📰 News

👤 Account

⟨ QUANTUM ERROR PORTAL ⟩

Navigate the Error Dimensions

Jump to an anomaly59

Every one of these is a page: what the server emits, the clause it is judged against, and how each client answered. The full list carries the verdict tallies too.

q-version-negotiation · RFC 9000 §6 · correctness · layer quic · udp/4460 · MUST

Passing this means: Rejected something invalid, with the code the RFC names.

Anomaly type: transport

How each client answered

ClientVersionVerdictWhat happened
curl libcurl/8.23.0 ngtcp2/1.25.0 Pass Responded correctly: sent Version Negotiation for 4 datagram(s); the client did not persist with an unsupported version.
quinn noq fork (189b0ed) Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
aioquic 1.3.0 (PyPI wheel) Pass Responded correctly: sent Version Negotiation for 1 datagram(s); the client did not persist with an unsupported version.
chromium build 1248 Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
quic-go quic-go v0.61.0 (h1:9So2anK4Tp22) Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
quiche 0.30.0 (1c8e976) Pass Responded correctly: sent Version Negotiation for 1 datagram(s); the client did not persist with an unsupported version.
neqo 0.31.1 (cac2b74) Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
picoquic 8162550 Pass Responded correctly: sent Version Negotiation for 1 datagram(s); the client did not persist with an unsupported version.
ngtcp2 3c23148 Pass Responded correctly: sent Version Negotiation for 1 datagram(s); the client did not persist with an unsupported version.
lsquic 4.9.4 (2b30189) Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
xquic 2060a44 Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.
msquic 2.7.0 (7e6525d) Pass Responded correctly: sent Version Negotiation for 1 datagram(s); the client did not persist with an unsupported version.
quico 0.7.0 (npm) Pass Responded correctly: sent Version Negotiation for 2 datagram(s); the client did not persist with an unsupported version.

What the clause requires

Abandon the connection attempt, or retry with a version both ends support. §6.2 requires a client that supports only one version to abandon it rather than persist.

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-version-negotiation")'