add linked sshsigchain v2 core

This commit is contained in:
Eric Wendland 2026-07-18 20:22:58 +02:00
commit 8780350d41
8 changed files with 1305 additions and 0 deletions

View file

@ -474,6 +474,17 @@ over the canonical payload. See `docs/sigchain-keychain.md` for the detailed
sigchain design. This is currently a pull-based signed operation log, not a
CRDT or Keyhive-style convergent authority.
The replacement static-publication design is specified in
[`sshsigchain-v2.md`](sshsigchain-v2.md). Its reusable core has an explicit
out-of-band `(chain ID, profile, SSHSIG namespace, root public key)` trust
tuple, a strict sequence plus hash link, bounded fields, and a profile reducer
that authorizes each record from only the causally preceding state. Geth's
`geth.keychain.v2` profile rejects timestamp validity windows as authorization
policy and treats key revocation as a causal record. The legacy static JSONL
commands have not yet been migrated to this core and are not a safe bootstrap
for new trust; Iroh keychain sync remains the supported replicated path while
the explicit v2 command workflow is completed.
New devices can use the node enrollment flow instead of hand-editing keychain
state. `geth node enroll join` explicitly imports an owner admin public key as
the new node's trust anchor, imports the signed peer card only as untrusted