init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
package sm9
import (
"bytes"
"encoding/hex"
"fmt"
"strings"
"testing"
"github.com/stretchr/testify/assert"
"xdx.jelly/xgcl/sm/sm3"
)
// 生成GBT 38635附录签名示例数据
func TestGBT38635Sign(t *testing.T) {
uid := []byte("Alice")
msg := []byte("Chinese IBS standard")
digest := sm3.Sum(msg)
msg = digest[:]
fmt.Printf("待签名消息的杂凑M: %s\n", strings.ToUpper(hex.EncodeToString(msg)))
rnd, _ := hex.DecodeString("000130E78459D78545CB54C587E02CF480CE0B66340F319F348A1D5B1F2DC5F4")
ks, pubs, _ := GenerateMastSignPrivateKey(bytes.NewReader(rnd))
ds, err := ks.GenerateUserSignKey(uid)
assert.Nil(t, err)
// 打印
fmt.Printf("签名主私钥ks:%s\n", strings.ToUpper(ks.String()))
fmt.Printf("签名主公钥Pubs:%s\n", strings.ToUpper(pubs.G2.String()))
fmt.Printf("实体A的标识:%s\n", string(uid))
fmt.Printf("实体A的签名私钥ds:%s\n", ds.G1.String())
if PrintIntermediaDataForSTD38635 {
fmt.Printf("\n================= 签名步骤中的相关值 ===================\n")
}
rnd, _ = hex.DecodeString("00033C8616B06704813203DFD00965022ED15975C662337AED648835DC4B1CBE")
signature, _ := Sign(msg, ds, pubs, rnd)
if PrintIntermediaDataForSTD38635 {
fmt.Printf("\n================= 验证步骤中的相关值 ===================\n")
}
if !Verify(signature, uid, msg, pubs) {
t.Fatal()
}
}