add canonical sigchain bundle format

This commit is contained in:
Eric Wendland 2026-07-19 03:16:14 +02:00
commit decff4b995
14 changed files with 1515 additions and 42 deletions

View file

@ -576,10 +576,28 @@ resource-scoped capability decisions.
backend receipt policies, required backend classes, old-policy witnessing
of policy-change heads, cached-head rollback checks, and
incomparable-history fork failure.
- `[x]` Define and implement the canonical `.sscb` on-disk/full-snapshot
bundle with deterministic record, disclosure, claim, and receipt objects.
- `[x]` Decoding rejects trailing bytes, noncanonical order, duplicates,
unknown references, mixed chains, and over-limit inputs.
- `[x]` `bundle-create` and `bundle-extract` convert record JSONL while
clearly preserving claims/receipts only in the canonical bundle.
- `[x]` `verify-sigchain` auto-detects JSONL or canonical bundles and binds
a bundle's namespace and chain ID to local trust.
- `[x]` Specify the backend-neutral distribution-source contract and a static
HTTP full-snapshot profile at
`/.well-known/sshsigchain/v1/<chain-id>/chain.sscb`.
- `[ ]` Implement automatic distribution fetchers.
- Acceptance criteria: an HTTP fetcher enforces streaming limits,
conditional caching, redirect policy, trust-tuple matching, accepted-head
ancestry, anchor policy, and fork failure.
- Acceptance criteria: the Iroh fetcher returns the identical canonical
bundle/object model and remains the only geth node-to-node transport.
- `[~]` Add explicit CLI storage, signing, verification, publication, and
import workflows for a pinned SSHSIGCHAIN trust tuple.
- `[x]` `geth keychain verify-sigchain` verifies a JSONL transport file
against an operator-pinned chain ID and OpenSSH root public key.
- `[x]` `geth keychain verify-sigchain` verifies JSONL interchange or a
canonical bundle against an operator-pinned chain ID, namespace, and
OpenSSH root public key.
- `[ ]` Local record storage, signing, publication, import, and
head-advance workflows are complete.
- `[ ]` Persist accepted heads and require proof of extension before a source
@ -602,8 +620,9 @@ resource-scoped capability decisions.
- `[x]` An OpenSSH `ssh-keygen -Y` integration test signs and verifies an
Authority v1 genesis link.
- `[~]` The specification and reference implementation share base signing,
key-proof, commitment, and head-claim vectors.
- `[ ]` Publish the complete vector set in the specification.
canonical-bundle, key-proof, commitment, and head-claim vectors.
- `[x]` Publish outer-link and canonical-bundle framing vectors.
- `[ ]` Publish key-proof, commitment, head-claim, and receipt vectors.
- `[ ]` Add independently generated cross-implementation vectors.
- `[x]` SSH-admin-rooted keychain initialization.