Expand description
顶层封装:完整的加密文件读写。
把 header、slot、TLV、载荷各层串成实际可用的 API。
§读取顺序不可调换
严格遵循规范 §9:
- 校验 magic 与版本 → 2. 解析固定头 → 3. 解包 FEK →
- 验证 header MAC → 5. 检查 CRITICAL TLV → 6. 读载荷
第 4 步必须在第 5、6 步之前。原因:TLV 与载荷的解读方式(是否压缩、 chunk_size、plaintext_size)全部来自头部字段,若不先验证 MAC,攻击者可以 篡改这些字段诱导错误解读。MAC 验证失败必须立即终止。
Structs§
- Encrypt
Options - 加密选项。
- Encrypted
File - 已加密文件的完整字节与其头部信息。
- Opened
File - 已打开的加密文件:头部已验证,FEK 已解包。
- Random
Material - 加密所需的随机材料。
- Streamed
File - 流式加密的结果。
Constants§
- PEEK_
SIZE - 固定头长度,便于调用方按需分批读取。
Functions§
- encrypt
- 加密数据,产出完整的 omy 文件字节。
- encrypt_
stream - 流式加密:从
input读恰好plaintext_len字节明文,把完整的 omy 文件写进out。 - encrypt_
stream_ with_ fek - 与
encrypt_stream相同,但用指定 FEK(测试与复现用)。 - encrypt_
with_ fek - 用指定 FEK 加密。
- encrypt_
with_ fek_ and_ progress - 与
encrypt_with_fek相同,但分块过程中回报进度。 - encrypt_
with_ progress - 与
encrypt相同,但分块过程中回报进度。 - is_
omy_ file - 判断字节流是否以 omy 主文件 magic 开头。
- open
- 打开加密文件:解包 FEK 并验证头部完整性。
- open_
with_ password - 便捷函数:用单个密码打开文件。
- peek_
header - 仅解析头部而不尝试解密,用于快速识别文件。
Type Aliases§
- Finalize
Folder Index - 流式加密的「最后定稿」回调:载荷写完后返回真正的 FOLDER_INDEX 内容。