pub struct Murk {
pub values: HashMap<String, Zeroizing<String>>,
pub recipients: HashMap<String, String>,
pub private: HashMap<String, HashMap<String, Zeroizing<String>>>,
pub grouped: HashMap<String, HashMap<String, Zeroizing<String>>>,
pub groups: BTreeMap<String, Vec<String>>,
pub grants: BTreeMap<String, GrantEntry>,
pub legacy_mac: bool,
pub github_pins: HashMap<String, Vec<String>>,
pub signers: BTreeMap<String, String>,
pub signature: SignatureState,
pub signature_downgraded: bool,
}Fields§
§values: HashMap<String, Zeroizing<String>>Decrypted shared values. Wrapped in Zeroizing so plaintext is cleared
from memory when the Murk is dropped.
recipients: HashMap<String, String>Pubkey → display name (from meta).
private: HashMap<String, HashMap<String, Zeroizing<String>>>Private per-recipient values (the me tier): key → { pubkey → decrypted
value }. Only contains entries decryptable by the current identity.
grouped: HashMap<String, HashMap<String, Zeroizing<String>>>Named-group values: key → { group name → decrypted value }. Only contains groups the current identity is a member of (and can decrypt).
groups: BTreeMap<String, Vec<String>>Group membership: group name → member pubkeys (carried from meta).
grants: BTreeMap<String, GrantEntry>Agent grants (carried from meta): grant name → metadata.
legacy_mac: boolTrue if the vault uses a legacy unkeyed MAC (sha256/sha256v2).
github_pins: HashMap<String, Vec<String>>Pinned GitHub key fingerprints (carried from meta).
signers: BTreeMap<String, String>Registered Ed25519 verifying keys (carried from meta): recipient pubkey →
base64 verifying key. save_vault carries these forward so every signer’s
key persists, then adds/refreshes the current signer’s entry.
signature: SignatureStateWhether the loaded vault carried a valid signature. Unsigned means
integrity rests on git; the binary surfaces a warning.
signature_downgraded: boolTrue when this vault loaded signed on this machine before but is now
unsigned — a stripped signature, or a merge result not yet re-signed. Set
from the signer-pin continuity check; the CLI warns distinctly, verify
fails, and MURK_STRICT refuses the load.