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
- msquic — .NET HttpClient + msquic, 2.7.0
- Test
- GREASE named group a client must tolerate —
t-grease-group - Clause
- RFC 8701 §4, RFC 8446 §4.2.7 (MUST)
- Class
- extensibility — Ignored something unknown and carried on.
- Required behaviour
- Ignore the unrecognised group and complete the handshake. RFC 8701 reserves these values precisely so that an endpoint meeting one learns to tolerate a future real group sharing the same shape. The value goes in the server's supported_groups in EncryptedExtensions, second in a list of real groups. RFC 8446 §4.2.7 permits a server to send that list — "regardless of whether they are currently supported by the client" — and requires that a client "MUST NOT act upon any information found in supported_groups prior to successful completion of the handshake". So the handshake must complete, and a client that aborts over a codepoint it was told not to act on has ossified against groups that do not exist yet. WHERE the value goes is the whole test, and getting it wrong the first time is on the record deliberately. It was built by naming a GREASE value in the ServerHello key_share, which is not an extensibility test at all: §4.1.3 makes a key_share naming any group the client did not offer illegal whatever the value is, so every conformant client correctly answered illegal_parameter — and an Extensibility test demanding tolerance scored all of them as failures. neqo caught it on first contact. It also duplicated t-group-not-offered, which measures that rejection properly. The honest version needed an extension rustls had no reason to send, so the fork's ServerExtensions gained a named_groups field. The port and the id never moved while it was unimplemented.
- 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 msquic at the test URL and read the verdict:
curl -s https://conformance.pqcrypta.com/report/$SESSION.json | jq '.results["t-grease-group"]'
What this suite is · The full grid · All clients · All tests · Findings