Expand description
Version-erased reading of shadow files across all format versions. Version-erased reading of shadow files.
[ParsedFile] is the single entry point for reading a shadow file of any
format version: it sniffs the version byte, parses with the matching
version module, and dispatches every subsequent operation (key derivation,
content decryption, filename decryption) to that version’s own
self-contained implementation. Callers never see which version they are
handling unless they ask.
This module is the one place that knows about all format versions. It keeps the versions independent of each other: v1 and v2 still share no code — this module sits above both.
Key derivation is split out on purpose: [ParsedFile::kdf_request]
surfaces the header’s (untrusted) KDF parameters so the caller can
validate and budget them before running [ParsedFile::derive_key].
Structs§
- Content
Decryptor - Incremental decryption of one file’s content, fed by the caller.
- KdfRequest
- The (untrusted) key derivation inputs a file’s header asks for, independent of format version.
- Parsed
File - A parsed shadow file of any format version.
Constants§
- MAX_
HEADER_ LEN - Upper bound on the serialized header size of any format version.