Files
xgcl/implicitcert/implicitcert_test.go
2026-05-27 23:03:00 +08:00

41 lines
1.1 KiB
Go

package implicitcert_test
import (
"testing"
"xdx.jelly/xgcl/grand"
"xdx.jelly/xgcl/implicitcert"
"xdx.jelly/xgcl/sm/sm2"
)
func TestKeyGen(t *testing.T) {
id := []byte("alice")
randReader := grand.Reader
kgcPrivateKey, kgcPublicKey, _ := sm2.GenerateKeyPairs(randReader)
t.Log("kgcPrivateKey:", kgcPrivateKey)
t.Log("kgcPublicKey:", kgcPublicKey)
userKey := implicitcert.NewUserKey()
u, err := userKey.GeneratePartialKey(randReader)
if err != nil {
t.Log("userKey.GeneratePartialKey failed")
t.Fail()
}
kgcGeneratedUserPartialPrivateKey, declarPublicKey, err := implicitcert.KGCComputeUserKey(id, u, kgcPrivateKey, kgcPublicKey, randReader)
if err != nil {
t.Log("implicitcert.KGCComputeUserKey failed")
t.Fail()
}
userPrivateKey, err := userKey.GeneratePrivateKey(kgcGeneratedUserPartialPrivateKey)
if err != nil {
t.Log("implicitcert.KGCComputeUserKey failed")
t.Fail()
}
t.Log("userPrivateKey: ", userPrivateKey)
t.Log("declarPublicKey: ", declarPublicKey)
t.Log("VerifyUserKeyPair: ", implicitcert.VerifyUserKeyPair(id, userPrivateKey, declarPublicKey, kgcPublicKey))
}