# Test vectors of core v2 Documents of major version 3 (`@context` = `urn:keysingate:core:v3`). Generated by `cargo run -p ksg-vectors-v2`. **Not edited by hand.** A re-run yields byte-identical files: `ksg-vectors-v2/tests/determinism.rs` checks it, and `tests/replay.rs` reads the files back and verifies the documents they carry to the verdicts they state — the way another implementation uses them. Every value is computed by calls into `ksg-core-v2`. A refusal carries the core's reason as text; another implementation must match the **verdict**, the wording is ours. | File | Spec v2 | What | |---|---|---| | `01_jcs.json` | §3 | canonical form; integers 0 … 2^53 − 1 | | `02_time.json` | §5 | the one form `YYYY-MM-DDTHH:MM:SS.mmmZ`, milliseconds | | `03_signature.json` | §4 | Ed25519; ML-DSA-65 in deterministic mode (FIPS 204, `rnd` = 0^32) | | `04_channel.json` | §8 | release → delegations → packet → binding → initiation → container ID | | `05_key_chain.json` | §8.6 | keys laid on top; breaks, foreign signer, duplicate | | `06_closure.json` | §8.4 | partition of the packet | | `07_promotion.json` | §8.7 | class raised upward by two parties | | `08_status_table.json` | §11 | every status × event outcome, and the blocked row | | `09_status_section.json` | §11 | records, their anchors and times | | `10_upper_bound.json` | §7.2 | the one rule of the upper time bound | | `11_journal.json` | §10 | light and Pro journals, tampering, a missing anchor | | `12_merkle.json` | §10.3 | RFC 6962 root and inclusion paths | | `13_limits.json` | §14 | ceilings checked before the work | **The vector reader** (sets 09–11): anchors of kind `urn:ksg:anchor:vector` are read; the proof is the UTF-8 of the moment the network proves; the proof `forged` is refused; every other kind is not read. It stands in for a network reader so the time rule can be checked without a network. External Certificate Transparency values for the tree are checked separately, in `crates/ksg-core-v2/tests/ct_vectors.rs`.