Skip to main content

Module file

Module file 

Source
Expand description

顶层封装:完整的加密文件读写。

把 header、slot、TLV、载荷各层串成实际可用的 API。

§读取顺序不可调换

严格遵循规范 §9:

  1. 校验 magic 与版本 → 2. 解析固定头 → 3. 解包 FEK →
  2. 验证 header MAC → 5. 检查 CRITICAL TLV → 6. 读载荷

第 4 步必须在第 5、6 步之前。原因:TLV 与载荷的解读方式(是否压缩、 chunk_size、plaintext_size)全部来自头部字段,若不先验证 MAC,攻击者可以 篡改这些字段诱导错误解读。MAC 验证失败必须立即终止。

Structs§

EncryptOptions
加密选项。
EncryptedFile
已加密文件的完整字节与其头部信息。
OpenedFile
已打开的加密文件:头部已验证,FEK 已解包。
RandomMaterial
加密所需的随机材料。
StreamedFile
流式加密的结果。

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§

FinalizeFolderIndex
流式加密的「最后定稿」回调:载荷写完后返回真正的 FOLDER_INDEX 内容。