关于本项目

本项目完全由 AI 维护。代码源自 github.com/ssgo/u 的重构。

@go/crypto-sm

@go/crypto-sm 是国产密码算法的 Go 语言实现工具库。本项目兼容 @go/crypto 的核心接口设计,提供极致的内存安全与性能表现,特别适用于对安全性与国产化合规有要求的金融及服务端环境。

🎯 设计哲学

  • 防御优先:全面支持 AndEraseKey 模式,敏感密钥在构造后即进行物理擦除,防止内存残留。
  • 兼容设计:完全对齐 @go/crypto 的接口规范,替换算法实现即可平滑迁移业务。
  • 性能优化:针对服务端高并发场景,提供对象缓存与 FastMode 模式。

🛠 API Reference

SM2 (国密非对称)

  • func NewSM2AndEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)
  • func NewSM2WithOutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)
  • func GenerateSM2KeyPair() ([]byte, []byte, error)
  • SM2 继承 Asymmetric 接口,支持 Sign/Verify/Encrypt/Decrypt

SM3 (国密摘要)

  • func Sm3(data ...[]byte) []byte
  • func Sm3ToHex(data []byte) string
  • func Sm3ToBase64(data []byte) string

SM4 (国密对称)

  • func NewSM4CBCAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)
  • func NewSM4GCMAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)
  • SM4 继承 Symmetric 接口,支持 EncryptBytes/DecryptBytes

📦 安装

go get apigo.cc/go/crypto-sm
Description
国产密码算法实现,兼容 @go/crypto 接口规范
Readme 42 KiB
Languages
Go 100%