简易的网站制作,服务器免费试用,国外自建站怎么样,建筑营销型网站前言
GmSSL是国密算法的工具库#xff08;主要包含SM2、SM3、SM4和国密SSL证书生成等功能#xff09;#xff0c;项目本身是OpenSSL的分支#xff0c;但是截至文章发布为止#xff0c;OpenSSL主分支的国密算法并不完善#xff0c;目前并不支持签名和解签#xff0c;所以…前言
GmSSL是国密算法的工具库主要包含SM2、SM3、SM4和国密SSL证书生成等功能项目本身是OpenSSL的分支但是截至文章发布为止OpenSSL主分支的国密算法并不完善目前并不支持签名和解签所以国密算法这块还是需要使用GmSSL工具库。 网上现在并没有v2版本的GmSSL可用的命令行文章本章用于记录这些命令。 本文原创自csdn博客其他网站看到这篇文章都是盗版爬。虫。网站支持原创远离盗版。 GmSSL-v2编译安装
GmSSL-v2是c/c编写的编译比较麻烦使用visual studio编译需要perl环境根据报错提示一步步来就可以编译成功。
国密算法命令行
通过GmSSL v2的命令行gmssl -help可以查看帮助说明。
下面为国密sm2私钥、公钥、签名和验证签名四种常用的命令行。
私钥生成
使用椭圆曲线算法生成私钥
使用椭圆曲线生成私钥到文件
gmssl ecparam -genkey -name sm2p256v1 -text -out eguidPrikey.pem
生成私钥到命令行控制台
gmssl ecparam -genkey -name sm2p256v1 -text -----BEGIN EC PRIVATE KEY----- 私钥内容 -----END EC PRIVATE KEY----- 公钥生成
生成公钥到控制台
gmssl pkey -in sm2.pem -pubout -text_pub -----BEGIN PUBLIC KEY----- 公钥内容 -----END PUBLIC KEY----- Public-Key: (256 bit) pub: 04:dc:24:ec:0e:a2:a5:6a:51:0f:ec:f9:c4:af:a6: 96:3d:7b:b5:a3:b8:e8:00:8f:19:6e:89:20:31:e5: 51:99:28:a4:7f:94:fe:d9:f3:bf:c6:71:9e:09:8a: 82:24:d9:aa:0e:2b:78:c0:3d:37:1f:fb:43:f4:e0: 8a:10:eb:44:8d ASN1 OID: sm2p256v1 NIST CURVE: SM2 生成公钥到文件
gmssl pkey -in sm2.pem -out pub.pem -pubout -text_pub
私钥生成签名
id为空默认填写1234567812345678id一般自行决定 gmssl sm2utl -sign -in test.txt -inkey sm2.pem -out out.txt -id 1
公钥验证签名
id为空默认填写1234567812345678验签id与签名id保持一致 gmssl sm2utl -verify -in test.txt -sigfile out -pubin -inkey pub.pem -id 1