当前位置: 首页 > news >正文

国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名

前言

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为空默认填写1234567812345678,id一般自行决定
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

http://www.lryc.cn/news/158088.html

相关文章:

  • 2023年9月惠州/深圳CPDA数据分析师认证找弘博创新
  • it运维监控管理平台,统一运维监控管理平台
  • TDengine 官网换了新“皮肤”,来看看这个风格是不是你的菜
  • MFC:自绘CListBox,GetText返回一个乱码
  • shell 脚本发布前后端代码
  • 我的私人笔记(Linux中安装mysql)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven目录结构和idea的整合
  • Android Automotive概述
  • iOS 16.4更新指南:问题解答与新功能一览
  • Vue + Element UI 前端篇(八):管理应用状态
  • 开发常用代码区
  • SpringBoot+MySQL+Vue前后端分离的宠物领养救助管理系统(附论文)
  • ClickHouse 存算分离改造:小红书自研云原生数据仓库实践
  • STM32-DMA
  • 1065 A+B and C (64bit)
  • 阿里云效和阿里在线idea使用
  • [git] 删除分支中的内容 -> 空分支
  • git 配置
  • vue router进行路由跳转并携带参数(params/query)
  • Mysql触发器
  • 认识doubbo和rpc
  • get_views中list的arch格式
  • 淘宝商品销量接口API更新(总销+精准月销API)
  • Android 11编译第三弹 ADB开启ROOT权限
  • 《TCP/IP网络编程》--基于TCP实现字符串对话和文件传输
  • Feign负载均衡写法
  • OpenCV(二十八):连通域分割
  • 达梦控制台还原报错“管道失败”
  • [杂谈]-快速了解直接内存访问 (DMA)
  • java八股文面试[设计模式]——23种设计模式