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