Skip to main content

encrypt_tree

Function encrypt_tree 

Source
pub fn encrypt_tree(
    root: &Path,
    out_parent: &Path,
    keks: &[Kek],
    vault_salt: &[u8; 16],
    opts: &EncryptOptions,
    progress: Option<ProgressFn<'_>>,
) -> Result<TreeReport>
Expand description

加密一棵目录树。

out_parent 是加密后根目录的父目录;根目录名本身会被加密。

§内存

与容器模式不同,这里逐个文件读取和加密,内存占用是单个最大文件的 大小,而不是整棵树。这是树形模式的一个实际优势:容器模式打包 50 GB 目录需要 50 GB 内存,树形模式不需要。

§Errors

  • 根路径不是目录
  • 目录名加密失败
  • 写盘失败(磁盘满、权限不足)

单个文件读不出来不算错误,记进 skipped 继续——与容器模式一致。