Client-side key material that is not a secret value: the
project and environment key tree, owner signing and box keys, token keys,
writer keys, owner-signed bundles, and the name key that indexes and
encrypts record names.
The wire protocol: types, framing and the route table. Every build has it.
The shared vocabulary of the galata-vault protocol: string formats
(gvk1_, gvt1_, paths), the framing convention, API types,
descriptors, record contexts, proof-of-work and audit-chain hashing.
The only crate that can read a secret value: age v1 encryption to a
descriptor’s public keys, decryption with a generation’s private keys,
signed records, and the rotation batch that re-encrypts a whole vault.
For adversarial test harnesses only (feature test-util, never enabled
by a shipped crate): the per-vault protocol without local state, so a
test can set up a vault, forge what a malicious server would serve, and
aim an attack at the owner’s side of the protocol directly.
What a client remembers to detect rollback: the descriptor it last
verified, and the latest
version it saw of each record. A caller that persists these across runs
gets regression detection across runs.
One environment’s vault. Opened with a token it is a token client; an
crate::owner::Environment derefs to one for its record operations.
Send + Sync: one handle serves every thread.
The review-status statement, word for word as the README, the Python
package’s description and the gv --help footer carry it. It is replaced by a link to the report only
once an external review is published in the repository’s audit/.
Refuse a body holding a credential literal: a checksum-valid gvt1_
token or gvk1_ key, a PEM private key, or 0x and exactly 64 hex
digits (an EVM private key’s shape).