refactor(crypto-sm): align with crypto naming conventions and fix typos (by AI)

This commit is contained in:
AI Engineer 2026-05-01 18:11:19 +08:00
parent c7f13b5de6
commit 5b1929d0f3
7 changed files with 12 additions and 25 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
go.sum

6
AI.md
View File

@ -14,7 +14,7 @@
### SM2 (国密非对称)
- `func NewSM2(priv, pub *safe.SafeBuf) (*crypto.Asymmetric, error)`
- `func NewSM2AndEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func NewSM2WithOutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func NewSM2WithoutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func GenerateSM2KeyPair() ([]byte, []byte, error)`
- `func (a *SM2Algorithm) ParsePrivateKey(der []byte) (any, error)`
- `func (a *SM2Algorithm) ParsePublicKey(der []byte) (any, error)`
@ -32,10 +32,10 @@
### SM4 (国密对称)
- `func NewSM4CBC(key, iv *safe.SafeBuf) (*crypto.Symmetric, error)`
- `func NewSM4CBCAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func NewSM4CBCWithOutEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func NewSM4CBCWithoutEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func NewSM4GCM(key, iv *safe.SafeBuf) (*crypto.Symmetric, error)`
- `func NewSM4GCMAndEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func NewSM4GCMWithOutEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func NewSM4GCMWithoutEraseKey(key, iv []byte) (*crypto.Symmetric, error)`
- `func (s *SM4Cipher) Encrypt(data, key, iv []byte) ([]byte, error)`
- `func (s *SM4Cipher) Decrypt(data, key, iv []byte) ([]byte, error)`

View File

@ -15,7 +15,7 @@
### SM2 (国密非对称)
- `func NewSM2AndEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func NewSM2WithOutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func NewSM2WithoutEraseKey(priv, pub []byte) (*crypto.Asymmetric, error)`
- `func GenerateSM2KeyPair() ([]byte, []byte, error)`
- *注SM2 继承 `Asymmetric` 接口,支持所有 `crypto.Asymmetric` 方法 (含 `Must``Try` 系列)。*

14
go.sum
View File

@ -1,14 +0,0 @@
apigo.cc/go/crypto v1.0.0 h1:EoswEWKH6AW/0Swv5GfXkEcwzilr4g0PpYt742DEk/g=
apigo.cc/go/crypto v1.0.0/go.mod h1:prKV3L5Rx0OXvogb+gSZhpnDhwcLXa0U4e7n9OPkJ2c=
apigo.cc/go/encoding v1.0.0 h1:NFb658uGqyh8hKKK9EYqQ6ybmcIOslV57Tdqvd0+z6Y=
apigo.cc/go/encoding v1.0.0/go.mod h1:V5CgT7rBbCxy+uCU20q0ptcNNRSgMtpA8cNOs6r8IeI=
apigo.cc/go/rand v1.0.2 h1:dJsm607EynJOAoukTvarrUyvLtBF7pi27A99vw2+i78=
apigo.cc/go/rand v1.0.2/go.mod h1:mZ/4Soa3bk+XvDaqPWJuUe1bfEi4eThBj1XmEAuYxsk=
apigo.cc/go/safe v1.0.0 h1:zgZ83EFwJM5tpMbOxnZG9NpWmtYAZROgbDW80k+vt2U=
apigo.cc/go/safe v1.0.0/go.mod h1:7hXqV2irGeggfnZWO5E1+WvFeCLznJbDQMGjEjUpJAA=
github.com/emmansun/gmsm v0.28.0 h1:0WyTHmQgaAfM8IwMnNMJCfEiK999cZ2J8csfcZ2Ooco=
github.com/emmansun/gmsm v0.28.0/go.mod h1:9lKtK8f3c7wh2z0g6fsqRbay69V1jWYDcBaytyuR95M=
golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=

2
sm2.go
View File

@ -24,7 +24,7 @@ func NewSM2(safePrivateKeyBuf, safePublicKeyBuf *safe.SafeBuf) (*crypto.Asymmetr
func NewSM2AndEraseKey(privateKey, publicKey []byte) (*crypto.Asymmetric, error) {
return crypto.NewAsymmetricAndEraseKey(SM2, privateKey, publicKey)
}
func NewSM2WithOutEraseKey(privateKey, publicKey []byte) (*crypto.Asymmetric, error) {
func NewSM2WithoutEraseKey(privateKey, publicKey []byte) (*crypto.Asymmetric, error) {
return crypto.NewAsymmetricWithoutEraseKey(SM2, privateKey, publicKey, false)
}

8
sm4.go
View File

@ -22,8 +22,8 @@ func NewSM4CBC(safeKeyBuf, safeIvBuf *safe.SafeBuf) (*crypto.Symmetric, error) {
func NewSM4CBCAndEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricAndEraseKey(SM4CBC, key, iv)
}
func NewSM4CBCWithOutEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricWithOutEraseKey(SM4CBC, key, iv)
func NewSM4CBCWithoutEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricWithoutEraseKey(SM4CBC, key, iv)
}
func NewSM4GCM(safeKeyBuf, safeIvBuf *safe.SafeBuf) (*crypto.Symmetric, error) {
@ -32,8 +32,8 @@ func NewSM4GCM(safeKeyBuf, safeIvBuf *safe.SafeBuf) (*crypto.Symmetric, error) {
func NewSM4GCMAndEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricAndEraseKey(SM4GCM, key, iv)
}
func NewSM4GCMWithOutEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricWithOutEraseKey(SM4GCM, key, iv)
func NewSM4GCMWithoutEraseKey(key, iv []byte) (*crypto.Symmetric, error) {
return crypto.NewSymmetricWithoutEraseKey(SM4GCM, key, iv)
}
func (s *SM4Cipher) Encrypt(data []byte, key []byte, iv []byte) ([]byte, error) {

View File

@ -50,7 +50,7 @@ func TestSM4_Exhaustive(t *testing.T) {
iv := bytes.Repeat([]byte{0x02}, 16)
data := []byte("sm4 exhaustive testing")
cipher, _ := sm.NewSM4CBCWithOutEraseKey(key, iv)
cipher, _ := sm.NewSM4CBCWithoutEraseKey(key, iv)
// 1. CBC
enc := cipher.MustEncrypt(data)
@ -60,7 +60,7 @@ func TestSM4_Exhaustive(t *testing.T) {
if !bytes.Equal(data, dec) { t.Error("SM4 CBC roundtrip failed") }
// 2. GCM
gcm, _ := sm.NewSM4GCMWithOutEraseKey(key, iv[:12])
gcm, _ := sm.NewSM4GCMWithoutEraseKey(key, iv[:12])
encG := gcm.MustEncrypt(data)
decG := gcm.MustDecrypt(encG)
if !bytes.Equal(data, decG) { t.Error("SM4 GCM roundtrip failed") }