Extract reusable keychain sigchain model
This commit is contained in:
parent
5b2c30f817
commit
4013c868aa
11 changed files with 938 additions and 20 deletions
|
|
@ -347,11 +347,18 @@ owner statements by accident. `geth node list` shows the active reduced node
|
|||
view. `geth node rename` and `geth node revoke` record signed keychain
|
||||
operations and require `--signing-key`. Endpoint rotation is explicit:
|
||||
`geth node endpoint-add` and `geth node endpoint-revoke` record signed
|
||||
`NodeEndpointAdd` and `NodeEndpointRevoke` keychain operations. `geth keychain
|
||||
sync <node>` pulls keychain operations and signatures from an imported peer over
|
||||
Iroh and imports only operations with a valid OpenSSH signature from a currently
|
||||
trusted admin key over the canonical payload. This is currently a pull-based
|
||||
signed operation log, not a CRDT or Keyhive-style convergent authority.
|
||||
`NodeEndpointAdd` and `NodeEndpointRevoke` keychain operations. Admin SSH keys
|
||||
are updated with signed `geth keychain admin-add` and `geth keychain
|
||||
admin-revoke` operations; `AdminKeyAdd` carries the public key material needed
|
||||
to reconstruct an OpenSSH `allowed_signers` view. `geth keychain verify` replays
|
||||
the log against the previously accepted admin-key view, mirroring the `git-skm`
|
||||
pattern of verifying key-registry changes from a prior trusted state. `geth
|
||||
keychain sync <node>` pulls keychain operations and signatures from an imported
|
||||
peer over Iroh and imports only operations with a valid OpenSSH signature from a
|
||||
currently trusted admin key 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.
|
||||
|
||||
New devices can use the node enrollment flow instead of hand-editing keychain
|
||||
state. `geth node enroll request` creates a canonical, agent-key-signed request
|
||||
|
|
|
|||
Loading…
Reference in a new issue