5 个版本

0.0.4 2021 年 11 月 8 日
0.0.3 2021 年 11 月 5 日
0.0.2 2021 年 11 月 4 日
0.0.1 2021 年 11 月 3 日
0.0.0 2021 年 10 月 30 日

#1021密码学

BSD-2-Clause-Patent

130KB
2.5K SLoC

Gitlab pipeline status Crates.io Matrix Crates.io

Snapper Box

Actually  a box turtle

关于

snapper 生态系统提供加密文档存储。

这个包实现了一个多文件、命名空间、日志结构合并树,具有加密条目,其中每个命名空间都有自己的文件。

这个包使用 XChaCha20 对 LSM 条目进行加密,然后使用 Blake3 作为 HMAC(加密然后 MAC 结构),在加密或哈希中没有公开配置,并为每个命名空间使用不同派生的(通过 Blake3)密钥。

根密钥随机生成,然后使用提供的密码的 argon2 派生加密。此包不支持明文操作,如果需要无密码操作,应通过使用空或已知常量密码来实现。

此包提供对 zstd 压缩条目的可选支持。

序列化条目存储为 CBOR

根命名空间可供应用程序使用以存储元数据或配置,但是请注意,CryptoBox 保留了空字符串密钥("")和 "namespaces" 密钥供其自身使用,修改空字符串密钥或 "namespaces" 密钥的值可能会导致无法打开 CryptoBox 备份。

常见问题解答

为什么这个没有使用 poly1305?

此包的作者对多项式 MAC(尤其是但不限于基于多项式 MAC 的 AEAD 的非提交性)有深刻的怀疑。

实现的加密方案(XChaCha20 + Blake3 加密然后 MAC)是提交的,与不提交的 XChaCha20 + Poly1305 不同。

HAZMAT 是什么意思?

此标签表示带有此标签的模块包含危险物质,即此模块的低级加密基础。这些很容易误用,您可能不想直接与之交互。

使用方法

待办事项

诊断二进制文件

此软件包提供了一个诊断二进制文件,名为 box-explorer,运行 box-explorer --help 以查看用法。

贡献

请查看 CONTRIBUTING.md

文档

请查看 CHANEGLOG.md 和 rustdoc。

依赖项

~6.5–10MB
~189K SLoC