GmSSL快速上手指南

清疚 2022-12-27 11:27 862阅读 0赞

一、快速上手

  1. 下载源代码

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

    然后解压至当前目录:

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

    Linux平台使用以下命令:

    1. $ ./config
    2. $ make
    3. $ sudo make install

    安装完后查看版本:

    1. $ gmssl version

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

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

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

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

    5bd70b0c1abdfea6d79fba724b02a955.png

  3. 生成 SM2 密钥并签名

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

    1. $ vi test.txt

    2b604b0085f4a3567507285de4155d2f.png

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

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

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

    80d4282aca240461a4a1ddf34f715c74.png

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

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

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

    d8fa555df4be305ee912c6b9dff18211.png

    可以查看一下密钥:

    这是私钥:

    5e046cb9ab8b684c932921b94ecbf0e5.png

    这是公钥:

    bb85b871bbcb4bb6a6b9798f0dfb37ac.png

二、参考

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

GmSSL源码

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

发表评论

表情:
评论列表 (有 0 条评论,862人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Github Action 快速上手指南

    前言 各位读者,新年快乐,我是过了年匆忙赶回上海努力搬砖的蛮三刀。 Github之前更新了一个Action功能(应该是很久以前了),可以实现很多自动化操作。用来替代用户