The 14 vectors
Each vector is a complete trust-card (or key) artifact with a known expected verdict. Canonicalization is JCS (RFC 8785); the canonical bytes are published as hex, base64 and UTF-8 alongside the SHA-256, so an external verifier reproduces signature verification without guessing the preimage.
| Vector | Kind | Expected | Why |
|---|---|---|---|
| valid-atc | valid | verify ✓ | — |
| valid-atc-2 | valid | verify ✓ | — |
| valid-unknown-field | valid | verify ✓ | — |
| invalid-signature | invalid | reject ✗ | tampered signature |
| expired-atc | invalid | reject ✗ | expired |
| premature-atc | invalid | reject ✗ | premature — issued_at is in the future (2030-01-01); the lower bound of the validity window fails |
| revoked-atc | invalid | reject ✗ | revoked |
| valid-zta | valid | verify ✓ | — |
| valid-a2a | valid | verify ✓ | — |
| valid-mcp | valid | verify ✓ | — |
| atc-to-uts | translation | verify ✓ | — |
| uts-to-zta | translation | verify ✓ | — |
| wrong-ca | invalid | reject ✗ | signed-by-wrong-ca-key |
| self-signed-atc | invalid | reject ✗ | self-signed-untrusted-key |
What ships with each vector
For a vector X:
X.json— the card as issued (what a verifier receives)X.canonical.txt— the JCS-canonicalized bytes: the exact preimage that was signedX.bytes.hex/X.bytes.base64— the same canonical bytes, rawX.sha256— digest of the canonical bytes
CA material: _test-ca-keys.json, ca-test-1/2 (SPKI + raw32), wrong CA ca-wrong-1, self-signing key ca-self-1. generate-accept-vectors.mjs regenerates the set deterministically.
- README.md — design notes and the scoring rule
- _index.json — machine index (v1.3.3): verdicts and digests
- ← conformance suite root