GmSSL - GmSSL的编译、安装和命令行基本指令

在这里插入图片描述

Pre

Java - 一文读懂SM1、SM2、SM3、SM4等国密算法

Java - OpenSSL与国密OpenSSL

Java - 数字签名与数字证书


下载源代码(zip)

下载源代码(zip): https://github.com/guanzhi/GmSSL/archive/master.zip

解压缩至当前工作目录

$ unzip GmSSL-master.zip

编译与安装

Linux平台

$ mkdir build
$ cd build
$ cmake ..
$ make
$ make test
$ sudo make install

安装之后可以执行gmssl命令行工具检查是否成功

$ gmssl version
GmSSL 3.1.0 Dev

SM4加密解密

$ KEY=11223344556677881122334455667788
$ IV=11223344556677881122334455667788

$ echo hello | gmssl sm4 -cbc -encrypt -key $KEY -iv $IV -out sm4.cbc
$ gmssl sm4 -cbc -decrypt -key $KEY -iv $IV -in sm4.cbc

$ echo hello | gmssl sm4 -ctr -encrypt -key $KEY -iv $IV -out sm4.ctr
$ gmssl sm4 -ctr -decrypt -key $KEY -iv $IV -in sm4.ctr

SM3摘要

$ echo -n abc | gmssl sm3
$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem
$ echo -n abc | gmssl sm3 -pubkey sm2pub.pem -id 1234567812345678
$ echo -n abc | gmssl sm3hmac -key 11223344556677881122334455667788

SM2签名及验签

$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem

$ echo hello | gmssl sm2sign -key sm2.pem -pass 1234 -out sm2.sig #-id 1234567812345678
$ echo hello | gmssl sm2verify -pubkey sm2pub.pem -sig sm2.sig -id 1234567812345678

$ echo hello | gmssl sm2encrypt -pubkey sm2pub.pem -out sm2.der
$ gmssl sm2decrypt -key sm2.pem -pass 1234 -in sm2.der

SM2加密及解密

$ gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem

$ echo hello | gmssl sm2encrypt -pubkey sm2pub.pem -out sm2.der
$ gmssl sm2decrypt -key sm2.pem -pass 1234 -in sm2.der

生成SM2根证书rootcakey.pem及CA证书cakey.pem

$ gmssl sm2keygen -pass 1234 -out rootcakey.pem
$ gmssl certgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN ROOTCA -days 3650 -key rootcakey.pem -pass 1234 -out rootcacert.pem -key_usage keyCertSign -key_usage cRLSign
$ gmssl certparse -in rootcacert.pem

$ gmssl sm2keygen -pass 1234 -out cakey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN "Sub CA" -days 3650 -key cakey.pem -pass 1234 -out careq.pem
$ gmssl reqsign -in careq.pem -days 365 -key_usage keyCertSign -path_len_constraint 0 -cacert rootcacert.pem -key rootcakey.pem -pass 1234 -out cacert.pem

使用CA证书签发签名证书和加密证书

$ gmssl sm2keygen -pass 1234 -out signkey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -days 365 -key signkey.pem -pass 1234 -out signreq.pem
$ gmssl reqsign -in signreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out signcert.pem

$ gmssl sm2keygen -pass 1234 -out enckey.pem
$ gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -days 365 -key enckey.pem -pass 1234 -out encreq.pem
$ gmssl reqsign -in encreq.pem -days 365 -key_usage keyEncipherment -cacert cacert.pem -key cakey.pem -pass 1234 -out enccert.pem

将签名证书和ca证书合并为服务端证书certs.pem,并验证

$ cat signcert.pem > certs.pem
$ cat cacert.pem >> certs.pem
$ gmssl certverify -in certs.pem -cacert rootcacert.pem

查看证书内容:

$ gmssl certparse -in cacert.pem

http://gmssl.org/docs/quickstart.html
在这里插入图片描述

相关推荐

  1. 基于AnolisOS 8.6OpenVPNGmSSLv2国密算法SSL VPN测试

    2024-02-03 14:04:02       9 阅读
  2. GMSSL学习笔记

    2024-02-03 14:04:02       11 阅读
  3. GMSSL之ZUC256算法

    2024-02-03 14:04:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 14:04:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 14:04:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 14:04:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 14:04:02       18 阅读

热门阅读

  1. GMSSL之ZUC256算法

    2024-02-03 14:04:02       34 阅读
  2. cortexM c语言和汇编嵌套编程

    2024-02-03 14:04:02       30 阅读
  3. linux下使用swap分区扩展内存

    2024-02-03 14:04:02       31 阅读
  4. 【DouYing Desktop】

    2024-02-03 14:04:02       27 阅读
  5. 鸿蒙设置沉浸式状态栏、全屏、获取导航栏高度

    2024-02-03 14:04:02       115 阅读
  6. json文件缺少的语言key的检测

    2024-02-03 14:04:02       33 阅读
  7. 【Python】requests库的介绍及用法

    2024-02-03 14:04:02       26 阅读
  8. python--第三方包的使用

    2024-02-03 14:04:02       34 阅读
  9. Vue3 vant4 底部tabbar图标如何修改为自定义图片

    2024-02-03 14:04:02       32 阅读