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 2019 年 3 月 29 日

#53 in 密码学

Download history 31293/week @ 2024-04-27 32290/week @ 2024-05-04 32692/week @ 2024-05-11 33215/week @ 2024-05-18 26658/week @ 2024-05-25 29496/week @ 2024-06-01 33170/week @ 2024-06-08 27196/week @ 2024-06-15 28713/week @ 2024-06-22 23216/week @ 2024-06-29 26290/week @ 2024-07-06 27079/week @ 2024-07-13 32573/week @ 2024-07-20 32168/week @ 2024-07-27 31472/week @ 2024-08-03 29004/week @ 2024-08-10

130,224 每月下载量
用于 126 个crate (24 直接)

Apache-2.0

51KB
977

Build Status

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