ROADMAP.md names this under Next, and it is the largest honesty gap in the conformance suite:
the quote vectors verify chain, signature and nonce binding against a synthetic PKI, which does not establish that an implementation can parse a real AMD, Intel or NVIDIA quote
The SDK has real captures (snp_quote_azure.json, tdx_quote_azure.json, tdx_quote_gcp.json, gpu_h100_attestation.json) and its own tests verify against them. The conformance suite does not: an independent implementation can pass wcm conformance today and still fail on the first real quote it sees.
What a proposal needs to settle before any vectors are written:
- Vector shape. A conformance vector is language-neutral JSON with an expected outcome. A real capture drags in a certificate chain, a vendor root that must not come from the chain being verified, and a validity window. Does the vector carry the chain inline, or name a root the runner is expected to have staged?
- Nonce binding, honestly. The Azure SEV-SNP capture binds the vTPM attestation key in
REPORT_DATA, not a caller nonce, so "the report echoes the nonce" is not a property every real capture has. The vector needs to express which binding applies, per capture, rather than assuming one.
- Expiry. Real leaf certificates expire. A vector that starts failing in a year is worse than no vector. Injected clock, or a documented refresh duty?
- Refusals. The positive case proves little on its own. Wrong nonce, tampered body, stripped chain, and a root outside the chain are the cases that separate a parser from a verifier.
GPU-side is the same gap with one extra wrinkle: an H200 report has ranges that move between calls even under an identical nonce (see the note in nvidia.py), so a vector must not encourage pinning a report digest.
Design proposal welcome before implementation. Please open the discussion here rather than opening with a PR full of vectors.
ROADMAP.mdnames this under Next, and it is the largest honesty gap in the conformance suite:The SDK has real captures (
snp_quote_azure.json,tdx_quote_azure.json,tdx_quote_gcp.json,gpu_h100_attestation.json) and its own tests verify against them. The conformance suite does not: an independent implementation can passwcm conformancetoday and still fail on the first real quote it sees.What a proposal needs to settle before any vectors are written:
REPORT_DATA, not a caller nonce, so "the report echoes the nonce" is not a property every real capture has. The vector needs to express which binding applies, per capture, rather than assuming one.GPU-side is the same gap with one extra wrinkle: an H200 report has ranges that move between calls even under an identical nonce (see the note in
nvidia.py), so a vector must not encourage pinning a report digest.Design proposal welcome before implementation. Please open the discussion here rather than opening with a PR full of vectors.