0 Star 0 Fork 0

蒋佳李 / gmsm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.go 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
蒋佳李 提交于 2021-05-22 02:41 . 更新
package main
import (
"crypto/rand"
"fmt"
"gitee.com/jiangjiali/gmsm/x509"
"log"
)
func main() {
//priv, err := sm2.GenerateKey(rand.Reader) // 生成密钥对
//if err != nil {
// log.Fatal(err)
//}
//
//pemPrivate, err := x509.WritePrivateKeyToPem(priv, []byte("jiangjiali"))
//if err != nil {
// return
//}
//fmt.Printf("PrivateKey: %x\n", string(pemPrivate))
//
//
//pemPublic, err := x509.WritePublicKeyToPem(&priv.PublicKey)
//if err != nil {
// return
//}
//fmt.Printf("PublicKey: %x\n",string(pemPublic))
//私钥
priv, err := x509.LoadFromPriPemFile("./cert_test/pri_key.pem", []byte("jiangjiali"))
if err != nil {
return
}
//公钥
pub, err := x509.LoadFromPubPemFile("./cert_test/pub_key.pem")
if err != nil {
return
}
//信息
msg := []byte("Tongji Fintech Research Institute")
// 客户端->服务端
ciphertxt, err := pub.EncryptAsn1(msg, rand.Reader) //sm2加密
if err != nil {
log.Fatal(err)
}
fmt.Printf("公钥加密结果:%x\n", ciphertxt)
plaintxt, err := priv.DecryptAsn1(ciphertxt) //sm2解密
if err != nil {
log.Fatal(err)
}
fmt.Printf("私钥解密结果:%s\n", plaintxt)
sign, err := priv.Sign(rand.Reader, msg, nil) //sm2签名
if err != nil {
log.Fatal(err)
}
fmt.Printf("签名:%x\n", sign)
isok := pub.Verify(msg, sign) //sm2验签
fmt.Printf("Verified: %v\n", isok)
}
Go
1
https://gitee.com/jiangjiali/gmsm.git
git@gitee.com:jiangjiali/gmsm.git
jiangjiali
gmsm
gmsm
v1.0.2

搜索帮助