smallstep/crypto
GitHub: smallstep/crypto
为 Smallstep 产品线提供统一的 Go 密码学工具集,覆盖证书生成、密钥管理、KMS 抽象与 JWT 处理等场景。
Stars: 103 | Forks: 32
# crypto
[](https://opensource.org/licenses/Apache-2.0)
[](https://goreportcard.com/report/github.com/smallstep/crypto)
[](https://github.com/smallstep/crypto/actions/workflows/ci.yml)
[](https://codecov.io/gh/smallstep/crypto)
[](https://pkg.go.dev/mod/go.step.sm/crypto)
crypto 是一个用于 [smallstep](https://smallstep.com) 产品的包集合。请参阅:
* [step](https://github.com/smallstep/cli):一把零信任的瑞士军刀,用于
处理 X509、OAuth、JWT、OATH OTP 等。
* [step-ca](https://github.com/smallstep/certificates):一个私有证书
授权 (X.509 & SSH) & ACME 服务器,用于安全的自动化证书
管理,以便您可以在任何地方使用 TLS 并为 SSH 使用 SSO。
## 用法
要将其添加到项目中,只需运行:
```
go get go.step.sm/crypto
```
## 包
### x509util
`x509util` 包实现了基于 JSON
模板构建 X.509 证书的工具。
### sshutil
`sshutil` 包实现了基于 JSON
模板构建 SSH 证书的工具。
### keyutil
`keyutil` 包实现了生成加密密钥的工具。
### pemutil
`pemutil` 包实现了解析密钥和证书的工具。它还
包含一个方法,用于将密钥、X.509 证书和证书请求
序列化为 PEM。
### randutil
`randutil` 包提供了生成随机字符串和盐值的方法。
### tlsutil
`tlsutil` 包提供了用于配置 tls 客户端和服务器的工具。
### jose
`jose` 包是 `github.com/go-jose/go-jose/v3` 的封装,并实现了
用于解析和生成 JWT、JWK 和 JWKSets 的工具。
### x25519
### minica
`minica` 包实现了一个简单的证书授权机构。
### kms
`kms` 包实现了用于执行加密操作的接口,例如
使用基于云的密钥管理系统、PKCS #11 模块,
或者仅仅是 YubiKey 或 ssh-agent 来签署证书。在云端它支持:
* [Amazon AWS KMS](https://aws.amazon.com/kms/)
* [Google Cloud Key Management](https://cloud.google.com/security-key-management)
* [Microsoft Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/)
### fingerprint
`fingerprint` 包提供了创建和编码 X.509
证书、SSH 证书和 SSH 密钥指纹的方法。
### tpm
`tpm` 包提供了与
TPM 交互的抽象层和实用工具。它可用于检索 TPM 信息、检索其背书密钥
(EK) 和关联的证书、创建和操作证明密钥 (AK),
以及创建和操作(经过证明的)应用程序密钥。`storage` 子包
提供了一个接口和具体的实现,为证明密钥和应用程序密钥提供透明的
持久化机制。
### fipsutil
`fipsutil` 包用于报告加密库是否正在
FIPS 140-3 模式下运行。
标签:EVTX分析, Go, JWT, Ruby工具, SOC Prime, X.509证书, 加密库, 密码学, 开发工具, 手动系统调用, 日志审计