doc: sm2 update examples

This commit is contained in:
Sun Yimin 2023-12-18 07:58:52 +08:00 committed by GitHub
parent 77b581e409
commit c6cc18ee9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -121,11 +121,10 @@ func ExamplePrivateKey_Sign_forceSM2() {
toSign := []byte("ShangMi SM2 Sign Standard") toSign := []byte("ShangMi SM2 Sign Standard")
// real private key should be from secret storage // real private key should be from secret storage
privKey, _ := hex.DecodeString("6c5a0a0b2eed3cbec3e4f1252bfe0e28c504a1c6bf1999eebb0af9ef0f8e6c85") privKey, _ := hex.DecodeString("6c5a0a0b2eed3cbec3e4f1252bfe0e28c504a1c6bf1999eebb0af9ef0f8e6c85")
d := new(big.Int).SetBytes(privKey) testkey, err := sm2.NewPrivateKey(privKey)
testkey := new(sm2.PrivateKey) if err != nil {
testkey.Curve = sm2.P256() log.Fatalf("fail to new private key %v", err)
testkey.D = d }
testkey.PublicKey.X, testkey.PublicKey.Y = testkey.ScalarBaseMult(testkey.D.Bytes())
// force SM2 sign standard and use default UID // force SM2 sign standard and use default UID
sig, err := testkey.Sign(rand.Reader, toSign, sm2.DefaultSM2SignerOpts) sig, err := testkey.Sign(rand.Reader, toSign, sm2.DefaultSM2SignerOpts)
@ -148,9 +147,10 @@ func ExamplePrivateKey_Sign_forceSM2() {
func ExampleVerifyASN1WithSM2() { func ExampleVerifyASN1WithSM2() {
// real public key should be from cert or public key pem file // real public key should be from cert or public key pem file
keypoints, _ := hex.DecodeString("048356e642a40ebd18d29ba3532fbd9f3bbee8f027c3f6f39a5ba2f870369f9988981f5efe55d1c5cdf6c0ef2b070847a14f7fdf4272a8df09c442f3058af94ba1") keypoints, _ := hex.DecodeString("048356e642a40ebd18d29ba3532fbd9f3bbee8f027c3f6f39a5ba2f870369f9988981f5efe55d1c5cdf6c0ef2b070847a14f7fdf4272a8df09c442f3058af94ba1")
testkey := new(ecdsa.PublicKey) testkey, err := sm2.NewPublicKey(keypoints)
testkey.Curve = sm2.P256() if err != nil {
testkey.X, testkey.Y = elliptic.Unmarshal(testkey.Curve, keypoints) log.Fatalf("fail to new public key %v", err)
}
toSign := []byte("ShangMi SM2 Sign Standard") toSign := []byte("ShangMi SM2 Sign Standard")
signature, _ := hex.DecodeString("304402205b3a799bd94c9063120d7286769220af6b0fa127009af3e873c0e8742edc5f890220097968a4c8b040fd548d1456b33f470cabd8456bfea53e8a828f92f6d4bdcd77") signature, _ := hex.DecodeString("304402205b3a799bd94c9063120d7286769220af6b0fa127009af3e873c0e8742edc5f890220097968a4c8b040fd548d1456b33f470cabd8456bfea53e8a828f92f6d4bdcd77")
@ -177,9 +177,10 @@ SM2公钥加密示例
func ExampleEncryptASN1() { func ExampleEncryptASN1() {
// real public key should be from cert or public key pem file // real public key should be from cert or public key pem file
keypoints, _ := hex.DecodeString("048356e642a40ebd18d29ba3532fbd9f3bbee8f027c3f6f39a5ba2f870369f9988981f5efe55d1c5cdf6c0ef2b070847a14f7fdf4272a8df09c442f3058af94ba1") keypoints, _ := hex.DecodeString("048356e642a40ebd18d29ba3532fbd9f3bbee8f027c3f6f39a5ba2f870369f9988981f5efe55d1c5cdf6c0ef2b070847a14f7fdf4272a8df09c442f3058af94ba1")
testkey := new(ecdsa.PublicKey) testkey, err := sm2.NewPublicKey(keypoints)
testkey.Curve = sm2.P256() if err != nil {
testkey.X, testkey.Y = elliptic.Unmarshal(testkey.Curve, keypoints) log.Fatalf("fail to new public key %v", err)
}
secretMessage := []byte("send reinforcements, we're going to advance") secretMessage := []byte("send reinforcements, we're going to advance")
@ -208,11 +209,10 @@ func ExamplePrivateKey_Decrypt() {
// real private key should be from secret storage // real private key should be from secret storage
privKey, _ := hex.DecodeString("6c5a0a0b2eed3cbec3e4f1252bfe0e28c504a1c6bf1999eebb0af9ef0f8e6c85") privKey, _ := hex.DecodeString("6c5a0a0b2eed3cbec3e4f1252bfe0e28c504a1c6bf1999eebb0af9ef0f8e6c85")
d := new(big.Int).SetBytes(privKey) testkey, err := sm2.NewPrivateKey(privKey)
testkey := new(sm2.PrivateKey) if err != nil {
testkey.Curve = sm2.P256() log.Fatalf("fail to new private key %v", err)
testkey.D = d }
testkey.PublicKey.X, testkey.PublicKey.Y = testkey.ScalarBaseMult(testkey.D.Bytes())
plaintext, err := testkey.Decrypt(nil, ciphertext, nil) plaintext, err := testkey.Decrypt(nil, ciphertext, nil)
if err != nil { if err != nil {