30个版本

0.13.2 2024年5月9日
0.12.1 2023年11月10日
0.12.0 2023年5月19日
0.11.1 2022年5月8日
0.3.14 2021年3月18日

#112认证

Download history 857/week @ 2024-04-28 1143/week @ 2024-05-05 799/week @ 2024-05-12 992/week @ 2024-05-19 422/week @ 2024-05-26 650/week @ 2024-06-02 647/week @ 2024-06-09 966/week @ 2024-06-16 962/week @ 2024-06-23 631/week @ 2024-06-30 585/week @ 2024-07-07 750/week @ 2024-07-14 700/week @ 2024-07-21 714/week @ 2024-07-28 684/week @ 2024-08-04 683/week @ 2024-08-11

2,822 每月下载次数

自定义许可

205KB
4K SLoC

sshcerts

sshcerts(原名rustica-keys)是一个用于解析、创建和签名OpenSSH证书的库。它最初基于@dnaeon的rust-sshkeys,但已大幅扩展,提供更丰富的写入API、证书签名验证、颁发新证书、解析加密私钥等功能。

此库还包含用于Yubikey密钥管理的其他可选功能。Yubikey管理模块可用于分配密钥槽,这些密钥永远不会离开设备,并提供由Yubikey支持的SSH签名模块。要启用此功能,请使用功能yubikey-support

此库尽量减少依赖项,因此许多功能都受功能控制。例如,可以使用rsa-signing功能读取和验证RSA证书,但不能创建除非使用该功能。

加密私钥的支持可通过encrypted-keys功能获得。

最后是x509模块,用于执行一些奇怪的操作,例如从x509证书中获取SSH公钥。当使用Yubikey功能时,它会自动包含,但也可以通过x509-support单独启用。

构建

macOS and Ubuntu Builds

API稳定性

此crate的API不应被视为稳定,并期望在版本之间出现破坏性更改。

安全警告

尚未进行审查。我构建它是因为我认为人们可能觉得它有用。在使用此库进行生产之前,请务必进行全面代码审查。

Yubikey基准测试

Yubikey不是快速HSM,因此每秒生成许多证书的基础设施将面临挑战。我针对256位和384位ECDSA密钥进行了多种类型的基准测试。结果如下

ECDSA256 ECDSA384 备注
4C FIPS <4.4.5> - - 签名时需要PIN码
Nano 4C <4.3.7> 9.14 6.35
Nano 5C <5.2.4> 10.58 7.10
5 NFC <5.2.7> 10.93 7.20
5Ci <5.2.4> 10.94 7.22

这表明5系列比4系列快约15%,但5系列之间主要相当。在多个Yubikey上加载相同的密钥将提供乘法加速(等于密钥数量),但如果您需要每秒那么多的签名,Yubikey可能不是最佳选择。

许可

本软件遵循MIT许可证提供,您可以基本按照自己的意愿使用它,只要所有分发和衍生品(源代码和二进制文件)都包含来自LICENSE的版权信息。

依赖关系

~7-19MB
~351K SLoC