16 个版本
0.4.3 | 2024 年 7 月 25 日 |
---|---|
0.4.1 | 2024 年 4 月 11 日 |
0.4.0 | 2023 年 11 月 17 日 |
0.3.1 | 2023 年 7 月 21 日 |
0.0.2 |
|
#53 in 密码学
130,224 每月下载量
用于 126 个crate (24 直接)
51KB
977 行
NKeys
Rust 对 NATS nkeys Go 库的实现。
截至 v2.x+ 版本的 NATS 生态系统已迁移到 Ed25519 密钥,用于账户、用户、服务器和集群等实体的身份、认证和授权。
Ed25519 速度快且对旁路攻击具有抵抗力。生成种子密钥就是需要存储和保持安全的东西,因为种子可以生成公钥和私钥。
NATS 系统将使用 Ed25519 密钥,这意味着 NATS 系统永远不会存储或访问任何私钥。认证将使用随机挑战响应机制。
处理 32 字节和 64 字节原始密钥可能具有挑战性。NKEYS 设计成以更友好的方式制定密钥,并参考了加密货币中完成的工作,特别是 Stellar。比特币和其他使用 Base58(或 Base58Check)形式的编码来编码原始密钥。Stellar 使用更传统的 Base32,带有 CRC16 和版本或前缀字节。NKEYS 使用类似的格式,其中前缀将为公钥和私钥的 1 字节,并为种子 2 字节。这些前缀的 base32 编码将产生易于人类阅读的前缀。
以下是一个可用的前缀及其密钥对类型列表
- N - 服务器
- C - 集群
- O - 运营商
- A - 账户
- U - 用户
- M - 模块
- V - 服务/服务提供商
- P - 私钥
- X - 曲线密钥 (X25519)
对于种子,第一个编码前缀是 S,第二个字符将是公钥的类型,例如 SU
是用户密钥对的种子,SA
是账户密钥对的种子。
依赖项
~3–14MB
~137K SLoC