Ledger evidence packs
Verify the pack without trusting the operator.
redact-gateway emits content-free audit records — entity types and
counts, never values. A compliance ledger stores those events in a tamper-evident
hash chain and produces evidence packs. redact-verify checks a pack
independently: no redact-core dependency, and the default path does
not dial the network.
$ cargo install redact-verify
$ redact-verify --pack evidence.json --pubkey ledger.pub
→ chain consistency pass
→ transit signatures pass
→ pack_anchored (R2) pass
→ exit 0 What it checks
Pass only when the pack holds together.
| Check | Result |
|---|---|
| Chain internal consistency | pass / fail |
| Transit signature over tips | pass / fail |
body_hash recomputation | pass / fail |
body_signature | pass / fail (builder_signed only) |
R1 — events_anchored | pass / fail |
R2 — pack_anchored | pass / fail / unproven |
complete_within_range | true / false |
range_covers_tip | true / false |
Exit 0 only if every check passes
and R2 is pass.
1 on any fail or R2 unproven.
2 if the pack is malformed.
Network
Offline by default.
The default path does not call
GET /v1/evidence/{id}/attestation and does not dial the network.
Optional --online may re-query Rekor; it is off by default and never
required for a pass.
Honesty
Evidence inputs, not a certificate.
Packs and verification reports are auditor inputs. They are not a SOC 2 Type 2 report, a HIPAA attestation, or a GDPR certification — and we will not claim otherwise.
