Free, never paid
virp-verify
A paid verifier would contradict the whole point. This one is free, open, and dependency-free. It will check a bundle's signatures under the key the bundle itself carries, and report exactly that — CRYPTOGRAPHICALLY-CONSISTENT, the cryptography held with no examiner-selected trust anchor. What it refuses is to treat that key as the anchor. Only a public key you supply out of band, with --pin, earns CRYPTOGRAPHICALLY-VERIFIED.

$ virp-verify bundle-313/ --pin examiner-key.json session autopilot-chainwalk 2 entries entry_hashes VERIFIED entry_signatures VERIFIED session_key_binding VERIFIED session burnin-reenabled 3 entries entry_hashes FAILED seq 2: body hash mismatch entry_signatures FAILED seq 2: signature does not cover body session_key_binding VERIFIED overall FAILED
1exit code
Change one byte. An observation body edited after signing.
- Static binary, published SHA-256, reproducible build
- Five verdicts, seven exit codes, every failure names the entry
- Independent checks: a damaged signature does not move the hash result
Verdicts and exit codes
Deliberately not collapsed into pass and fail. Five of these are verdicts; two are not.
| Exit | Verdict | Meaning |
|---|---|---|
| 0 | CRYPTOGRAPHICALLY-VERIFIED | Every session signed and verified under an examiner-pinned public key: cryptography held under an examiner-selected trust anchor. |
| 1 | FAILED | At least one checked property is wrong: the evidence is cryptographically inconsistent, and this verifier does not determine why. |
| 2 | UNREADABLEnot a verdict | Bundle unreadable or usage error. Nothing was verified. |
| 3 | OPERATOR-ATTESTED | Consistent, but authenticity rests on material this verifier cannot check: an operator HMAC, an unknown key, or both. |
| 4 | CONSISTENT-UNAUTHENTICATED | Consistent, and nothing at all attests authenticity. |
| 5 | CRYPTOGRAPHICALLY-CONSISTENT | Every signature verifies, but under no examiner-pinned key, whether bundle-provided or outside the examiner's pins: the cryptography held without an examiner-selected trust anchor. |
| 6 | Coverage failurenot a verdict | --fail-on-coverage only: capture completeness graded INTERRUPTED, UNEXPLAINED or FAILED while the cryptographic verdict did not fail. Without the flag the bundle keeps its verdict exit code. |
Transcribed from virp-verify: crates/virp-verify/src/main.rs:309-316 and :86-107, crates/docket-bundle/src/verify.rs:372-378.