SHA-256 digest of a full, in-memory body. For streamed request bodies
(server-side, where holding the whole body in memory to re-hash it would
defeat the point of streaming), compute the digest incrementally instead
and pass its bytes to sign_with_body_hash/verify_with_body_hash.
Derives a 32-byte wrapping key from a user passphrase via Argon2id, for
encrypting the Vault Master Key at rest when no OS keychain is available.
Uses a conservative interactive profile (19 MiB memory, 2 iterations, 1
lane), per OWASP password-hashing guidance.
Shared shape for vault_id/namespace_id/object_id: opaque, random,
256-bit values, hex-encoded (64 lowercase hex characters). Used to
validate all three path segments identically before they ever touch a
filesystem path or SQL query.
Computes the hex-encoded HMAC-SHA256 signature for a request, given the
full body available in memory (the common case for the client, which
already reads whole files into memory before encrypting them).