GmSSL快速上手指南

Wesley13
• 阅读 645

一、快速上手

  1. 下载源代码

    我是下载到本地然后通过 Xftp 传到 Linux 环境里的。

    然后解压至当前目录:

    $ unzip GmSSL-master.zip
    
  2. 编译与安装

    Linux平台使用以下命令:

    $ ./config
    $ make
    $ sudo make install
    

    安装完后查看版本:

    $ gmssl version
    

    报错:gmssl: symbol lookup error: gmssl: undefined symbol: PBEPARAM_it, version OPENSSL_1_1_0d

    经过上网查找资料(见参考二),发现这是环境变量的问题,此类问题可以通过以下命令设置:

    $ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    

    再查看版本,发现成功查看到版本:

    GmSSL快速上手指南

  3. 生成 SM2 密钥并签名

    先使用 vim 编辑一个文件,我写了一个 txt 文件:

    $ vi test.txt
    

    GmSSL快速上手指南

    然后生成密钥,并对文件进行加密:

    $ gmssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2p256v1 \
                    -out signkey.pem
    $ gmssl pkeyutl -sign -pkeyopt ec_scheme:sm2 -inkey signkey.pem \
                    -in <yourfile> -out <yourfile>.sig
    

    查看加密后的文件(发现根本看不懂):

    GmSSL快速上手指南

    可以将公钥从 signkey.pem 中导出并发布给验证签名的一方:

    $ gmssl pkey -pubout -in signkey.pem -out vrfykey.pem
    $ gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vrfykey.pem \
                    -in <yourfile> -sigfile <yourfile>.sig
    

    看到红线处表示签名验证成功:

    GmSSL快速上手指南

    可以查看一下密钥:

    这是私钥:

    GmSSL快速上手指南

    这是公钥:

    GmSSL快速上手指南

二、参考

The GmSSL Project:支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱官方文档

GmSSL源码

Centos7.0上 GmSSL-2.0版本是否能用,一直都无法安装成功,各种bug · Issue #219 · guanzhi/GmSSL · GitHub

点赞
收藏
评论区
推荐文章
推荐学java 推荐学java
2年前
推荐学java——Maven初识
Maven介绍Maven是Apache下开源的Java项目管理工具,对软件项目提供构建与依赖管理。其为Java项目提供了统一的管理方式,已成为业界标准。Maven下载安装官网下载地址:https://maven.apache.org/推荐下载压缩包版本,然后解压到本地不带中文路径的目录下,我这里解压在了D盘的根目录下:D:\ProgramF
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
GoCoding GoCoding
3年前
Prometheus + Grafana 快速上手
快速上手,监控主机的CPU,GPU,MEM,IO等状态。前提客户端NodeExporter用于采集UNIX内核主机的数据,并解压:bashwgethttps://github.com/prometheus/nodeexporter/releases/download/v1.1.2/nodeexporter1.1.2.linux
Easter79 Easter79
3年前
Tengine快速上手指南(中文版)
Tengine是一个优秀的轻量级端侧/嵌入式环境深度神经网络推理引擎。兼容多种操作系统和深度学习算法,以AI推理框架为基础的AIoT开发套件。本文档将分别在x86Linux和Arm64Linux平台,以分类模型(TensorFlowMobileNetv1模型)为例,带你快速上手Tengine。Linuxx86平台编译
Stella981 Stella981
3年前
Linux下rpm及yum安装jdk
笔者使用的Linux操作系统为CentOS7,Linux中有三种安装jdk的方式,在这里笔者主要介绍两种方式,即rpm和yum安装及卸载jdk,还有一种是直接从官网下载tar.gz压缩文件上传到Linux操作系统后解压配置环境变量即可,是最简单的一种方式,在这笔者不多做介绍。rpm安装JDK官网下载JDK1.
Stella981 Stella981
3年前
CentOS 安装 rar、zip 解压缩
Windows系统压缩的rar和zip文件,在Linux系统下是无法通过tar命令解压缩的,需要使用rar和zip命令来解压缩。下面记录一下rar和zip安装和简单的使用。一、rar安装使用Linux系统下使用rarlinux解压缩rar压缩文件,下载页面:http://www.r
Stella981 Stella981
3年前
Prometheus 安装和配置
Prometheus的安装和配置Linux环境下下载二进制分发包,解压后就安装完了。1\.启动解压后,在解压后的路径内执行命令./premetheus即可以使用默认配置启动Prometheus应用。默认使用的是同目录下的prometheus.yml文件可以通过浏览器访问http:
Stella981 Stella981
3年前
Linux下LFTP使用示例
LFTP是Linux下一FTP客户端工具,用于登录FTP服务器。可结合mirror命令进行本地文件远程备份、同步、删除等操作。1.安装可用yum命令快速安装yuminstalllftp2.LFTP用法格式:lftp\d\\e
Wesley13 Wesley13
3年前
unittest框架,漂亮的报告BeautifulReport配置与错误截图详细解说
1.下载BeautifulReport模块下载地址:https://github.com/TesterlifeRaymond/BeautifulReport2.解压与存放路径下载BeautifulReport的完整.ZIP文件,然后解压,把整个文件包放到本地python的/Lib/sitepackages/目录下!(https://im
Stella981 Stella981
3年前
Linux 配置mysql 免安装版。
二、Linux配置mysql?1.linux配置mysql(要求全部使用免安装版)5.1.从官网下载mysql5.tar.gz5.2.使用xftp把mysql的压缩包上传到服务器上5.3.解压mysql压缩包