diff --git a/CHANGELOG.md b/CHANGELOG.md index c8c1d96..480e86b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog: @go/crypto-sm +## v1.5.2 (2026-06-08) +- **JS 对齐 & 重命名**: + - 注册模块名更正为极简的 `"sm"`。 + - 所有 JS 导出方法统一为 PascalCase + 缩写全大写(如 `SM3`, `SM4EncryptCBC`, `GenerateSM2KeyPair`)。 + - **Go 源码纠偏**: 修正了 Go 层级的方法命名(`Sm3` -> `SM3` 等),确保全库命名规范绝对统一。 + ## [v1.3.2] - 2026-05-30 ### Added diff --git a/js_export.go b/js_export.go index 6c8df69..5b622a2 100644 --- a/js_export.go +++ b/js_export.go @@ -5,22 +5,36 @@ import ( ) func init() { - jsmod.Register("cryptoSM", map[string]any{ + jsmod.Register("sm", map[string]any{ // SM3 Hash - "sm3": Sm3, - "sm3ToHex": Sm3ToHex, - "sm3ToBase64": Sm3ToBase64, - "sm3ToUrlBase64": Sm3ToUrlBase64, + "SM3": SM3, + "SM3ToHex": SM3ToHex, + "SM3ToBase64": SM3ToBase64, + "SM3ToURLBase64": SM3ToURLBase64, - // SM4 GCM (Stateless) - "encrypt": func(data, key, iv []byte) ([]byte, error) { + // SM4 Symmetric (Stateless) + "SM4EncryptCBC": func(data, key, iv []byte) ([]byte, error) { + s, err := NewSM4CBCAndEraseKey(key, iv) + if err != nil { + return nil, err + } + return s.EncryptBytes(data) + }, + "SM4DecryptCBC": func(data, key, iv []byte) ([]byte, error) { + s, err := NewSM4CBCAndEraseKey(key, iv) + if err != nil { + return nil, err + } + return s.DecryptBytes(data) + }, + "SM4EncryptGCM": func(data, key, iv []byte) ([]byte, error) { s, err := NewSM4GCMAndEraseKey(key, iv) if err != nil { return nil, err } return s.EncryptBytes(data) }, - "decrypt": func(data, key, iv []byte) ([]byte, error) { + "SM4DecryptGCM": func(data, key, iv []byte) ([]byte, error) { s, err := NewSM4GCMAndEraseKey(key, iv) if err != nil { return nil, err @@ -28,45 +42,29 @@ func init() { return s.DecryptBytes(data) }, - // SM4 CBC (Stateless) - "encryptCBC": func(data, key, iv []byte) ([]byte, error) { - s, err := NewSM4CBCAndEraseKey(key, iv) - if err != nil { - return nil, err - } - return s.EncryptBytes(data) - }, - "decryptCBC": func(data, key, iv []byte) ([]byte, error) { - s, err := NewSM4CBCAndEraseKey(key, iv) - if err != nil { - return nil, err - } - return s.DecryptBytes(data) - }, - - // SM2 (Stateless) - "encryptSM2": func(data, pubKey []byte) ([]byte, error) { + // SM2 Asymmetric (Stateless) + "SM2Encrypt": func(data, pubKey []byte) ([]byte, error) { a, err := NewSM2AndEraseKey(nil, pubKey) if err != nil { return nil, err } return a.EncryptBytes(data) }, - "decryptSM2": func(data, privKey []byte) ([]byte, error) { + "SM2Decrypt": func(data, privKey []byte) ([]byte, error) { a, err := NewSM2AndEraseKey(privKey, nil) if err != nil { return nil, err } return a.DecryptBytes(data) }, - "signSM2": func(data, privKey []byte) ([]byte, error) { + "SM2Sign": func(data, privKey []byte) ([]byte, error) { a, err := NewSM2AndEraseKey(privKey, nil) if err != nil { return nil, err } return a.Sign(data) }, - "verifySM2": func(data, sig, pubKey []byte) (bool, error) { + "SM2Verify": func(data, sig, pubKey []byte) (bool, error) { a, err := NewSM2AndEraseKey(nil, pubKey) if err != nil { return false, err @@ -75,6 +73,6 @@ func init() { }, // Key Generation - "generateSM2KeyPair": GenerateSM2KeyPair, + "GenerateSM2KeyPair": GenerateSM2KeyPair, }) } diff --git a/sm3.go b/sm3.go index 30da998..416e157 100644 --- a/sm3.go +++ b/sm3.go @@ -5,7 +5,7 @@ import ( "github.com/emmansun/gmsm/sm3" ) -func Sm3(data ...[]byte) []byte { +func SM3(data ...[]byte) []byte { hash := sm3.New() for _, v := range data { hash.Write(v) @@ -13,14 +13,14 @@ func Sm3(data ...[]byte) []byte { return hash.Sum(nil) } -func Sm3ToHex(data []byte) string { - return encoding.Hex(Sm3(data)) +func SM3ToHex(data []byte) string { + return encoding.Hex(SM3(data)) } -func Sm3ToBase64(data []byte) string { - return encoding.Base64(Sm3(data)) +func SM3ToBase64(data []byte) string { + return encoding.Base64(SM3(data)) } -func Sm3ToUrlBase64(data []byte) string { - return encoding.URLBase64(Sm3(data)) +func SM3ToURLBase64(data []byte) string { + return encoding.URLBase64(SM3(data)) } diff --git a/sm_test.go b/sm_test.go index 59f8b7e..321f5cc 100644 --- a/sm_test.go +++ b/sm_test.go @@ -36,8 +36,8 @@ func TestSM2(t *testing.T) { func TestSM3(t *testing.T) { data := []byte("hello sm3") - h1 := sm.Sm3(data) - h2 := sm.Sm3(data) + h1 := sm.SM3(data) + h2 := sm.SM3(data) if !bytes.Equal(h1, h2) { t.Error("SM3 non-deterministic") } }