12 个重大版本发布
0.21.0 | 2024 年 8 月 1 日 |
---|---|
0.20.0 | 2024 年 6 月 27 日 |
0.19.0 | 2024 年 6 月 5 日 |
0.8.0 | 2024 年 3 月 4 日 |
0.1.0 | 2023 年 6 月 30 日 |
#148 in 加密学
4,949 个月下载量
在 19 个crate(5 个直接)中使用
1MB
16K SLoC
tor-keymgr
用于获取、存储和更新密钥的代码。
概述
此crate是Arti项目的一部分,该项目旨在使用Rust实现Tor。
可能变化
此crate公开的API(甚至没有keymgr
功能)是新的,可能会迅速变化。因此,我们经常会进行semver破坏性更改(并将相应更新crate版本)。
密钥存储库
KeyMgr
是一个到一个或多个密钥存储库的接口。密钥存储库是实现了Keystore
trait的类型。
提供的以下密钥存储库实现:
ArtiNativeKeystore
:一个磁盘存储库,使用OpenSSH格式存储密钥。它目前不支持带密码的密钥。密码支持将在未来添加(见#902)。- (尚未实现)C Tor密钥存储库:一个磁盘存储库,与C Tor向后兼容(新密钥以C Tor使用的格式存储,任何现有密钥也期望以该格式存储)。
未来我们还计划支持基于HSM的密钥存储库。
密钥指定符和密钥类型
Keystore
API使用KeySpecifier
和KeyType
来标识密钥的特定实例。这使得密钥存储库可以拥有具有相同角色(即相同的KeySpecifier::arti_path
)但不同密钥类型(即不同的KeyType::arti_extension
)的多个密钥。
KeySpecifier
用于标识一组等效密钥,每个密钥具有不同的类型(算法)。在ArtiNativeKeystore
中,它用于确定密钥在密钥库中的路径(不包括扩展名),密钥的扩展名是从其KeyType
派生的。KeySpecifier
实现者必须指定
KeyType
代表密钥的类型(“密钥对”、“公钥”)和算法(“ed25519”、“x25519”)。KeyType::arti_extension
指定在ArtiNativeKeystore
中存储该类型的密钥时预期的文件扩展名:ArtiNativeKeystore
将KeySpecifier::arti_path
和KeyType::arti_extension
组合在一起,形成密钥在磁盘上的路径(相对于密钥库的根目录)。
功能标志
附加功能
keymgr
-- 使用完整密钥管理器支持构建。禁用此功能将导致tor-keymgr
导出一个无操作、占位符实现。
实验性和不稳定的功能
请注意,由这些功能启用的API不受语义版本保证的覆盖:我们可能会在补丁版本之间破坏它们或删除它们。
- (目前无)
[^1]: 记住,语义版本化是使各种cargo
功能可靠工作的原因。明确地说:如果您希望cargo update
只进行安全更改,则不能启用这些功能。
依赖关系
~20–33MB
~506K SLoC