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]>
18 lines
1.2 KiB
Markdown
18 lines
1.2 KiB
Markdown
# Joule Code v1 Conformance Vectors
|
|
|
|
The v0.1 conformance suite ([`../../SPEC.md`](../../SPEC.md) §8). Four suites:
|
|
|
|
| File | Suite | Checks |
|
|
|---|---|---|
|
|
| [`coding_op_vectors.json`](coding_op_vectors.json) | **C1 — content addressing** | reproduce `op_id` from the canonical CBOR of each `CodingOp` |
|
|
| [`signature_vectors.json`](signature_vectors.json) | **C2 — signing** | verify/reproduce each Ed25519 signature; reject every negative |
|
|
| [`receipt_vectors.json`](receipt_vectors.json) | **C3 — receipt** | reproduce/verify each receipt signature; honor the provenance↔measured coupling |
|
|
| [`cascade_vectors.json`](cascade_vectors.json) | **C4 — cascade** | given scripted stage outcomes, select the same closing tier (stop-at-first-close) |
|
|
|
|
Run against the reference library:
|
|
|
|
```bash
|
|
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`](regeneration.md)). The `signature_vectors.json` known-answer cases use RFC 8032 keys. The harness passes this pack with no skipped vectors.
|