mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-26 20:26:19 +08:00
doc: sm2 update examples
This commit is contained in:
parent
77b581e409
commit
c6cc18ee9c
32
docs/sm2.md
32
docs/sm2.md
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user