feat(s15): ADR-0014 accepted — bundle provenance root, key lifecycle, offline revocation

Option C. A verifier bundle over a provenance stream carries provenance_root
(Merkle over one leaf per event: seq_no, capsule_root, installation, key,
assurance, occurred_at, under attesto.provenance.v1.bundle_tree), the event
count and vault_key_lifecycle, all conditional so legacy bundle hashes are
unchanged. Rust is normative (edge/src/bundle_tree.rs, nine golden vectors);
Python, Go and TypeScript verify an inclusion and apply the frozen revocation
rule against the receipt time offline. The inclusion endpoint in router.py
lands with the next commit, which carries the shared router edits.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Codex
2026-08-23 14:08:14 +02:00
co-authored by Claude Fable 5
parent 974095c5f9
commit 2894298317
4 changed files with 960 additions and 4 deletions
+1
View File
@@ -55,6 +55,7 @@ var ProvenanceDomains = map[string]struct{}{
"attesto.disclosure.v2": {},
"attesto.zk.range.v1.statement": {},
"attesto.zk.range.v1.transcript": {},
"attesto.provenance.v1.bundle_tree": {},
}
// TopLeafRoles is the canonical order of the six typed top-tree leaves. No