Completes the v0.1 conformance suite — no more placeholders. gen-vectors now computes every derived field via the reference crates, and the verify harness checks them all for real (the 7 prior SKIPs are gone). - gen-vectors computes and prints real op_ids (BLAKE3 over canonical CBOR) and real Ed25519 signatures (op-binding op_id‖prior; receipt estimated_uj‖sequence‖nonce[‖measured_uj]). - coding_op / signature / receipt vectors filled with the computed values; the negatives keep their hand-authored tamper (reused signature, different prior, mismatched op_id) and expected false/error. - verify harness upgraded: C2 op-binding signature verification (positive + replay/tamper negatives) and C3 receipt signature verification (reconstruct the Receipt, verify against the endpoint key) now run for real. - conformance/v1/README + regeneration.md updated; vanity scanner clean. Result: cargo run -p joule-code-conformance -- verify ../conformance/v1 passes the whole pack with no skipped vectors; cargo test --workspace green. Co-Authored-By: Claude Opus 4.8 <[email protected]>
1.2 KiB
1.2 KiB
Joule Code v1 Conformance Vectors
The v0.1 conformance suite (../../SPEC.md §8). Four suites:
| File | Suite | Checks |
|---|---|---|
coding_op_vectors.json |
C1 — content addressing | reproduce op_id from the canonical CBOR of each CodingOp |
signature_vectors.json |
C2 — signing | verify/reproduce each Ed25519 signature; reject every negative |
receipt_vectors.json |
C3 — receipt | reproduce/verify each receipt signature; honor the provenance↔measured coupling |
cascade_vectors.json |
C4 — cascade | given scripted stage outcomes, select the same closing tier (stop-at-first-close) |
Run against the reference library:
cargo run -p joule-code-conformance -- verify .
All derived fields are real, cryptographically computed values — the content addresses (op_id) are BLAKE3 over canonical CBOR, and every signature is a genuine Ed25519 signature, regenerated against joule-code-rs (see regeneration.md). The signature_vectors.json known-answer cases use RFC 8032 keys. The harness passes this pack with no skipped vectors.