Expand description
Hatchery keystore: the hq-core authority of the key tree (spec
specs/keystore-placement-2026-10-16.md).
- The crypto (derivation, sealing, non-exportable signing, capabilities) is
tesserax_keytree. This crate holds hatchery’s policy only: accounts, nodes, sessions, grants per transport, human approval, and delegation of attenuated capabilities to consumers (m4a, g4a) that run inside hatchery. - Account root = the human’s passkey PRF. Another human’s passkey opens only their branch.
- Session keys are generated here and never leave: no getter, no export.
- Child sessions: a NEW identity with grants ⊆ the parent’s, only with
spawn_child.
Compatibility with 0.2.15 (hatchery-m4a-signer): the salts, labels, sealed layout and the
signed message domain are byte-identical (legacy_v1); the old right names are accepted
as aliases of the namespaced grants.
Re-exports§
pub use legacy_v1::PRF_SALT;
Modules§
- grants
- Grants, namespaced by the transport they unlock.
Names come from the consumers (
m4a-keys,gate4agent-keys); hatchery is the authority. - keyring
- Many humans, one keystore host: one sealed branch per account, each unlocked only by that
account’s passkey-derived secret (
tesserax_keytree::MultiRoot). - legacy_
v1 - Byte-identical constants of the 0.2.15 store. Changing any of them makes every sealed store and every browser PRF evaluation unreadable. A v2 needs an explicit re-seal.
Structs§
- Human
Key - The human’s account root (from the passkey PRF). Zeroized on drop.
- Provisioned
- What the node receives at provision.
tokenis held by the node proxy, never put in PTY. - Signature
- Signer
- One account’s branch of the keystore (kept as
Signerfor 0.2.15 callers).
Enums§
Constants§
- RIGHT_
RECV - RIGHT_
RUN_ CLOSE - RIGHT_
SEND - Deprecated 0.2.15 names; use
grants. - RIGHT_
SPAWN_ CHILD
Functions§
- default_
rights - Grants a fresh session gets without any human approval.
- domain_
message - What a signature covers: domain, nick, operation (wire name), payload.
- verify_
signature