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 在 密码学 中
130KB
2.5K SLoC
Snapper Box
关于
为 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