天天看点

荔枝派Zero(V3s)在Linux环境下安装GmSSL加密工具1、GmSSL安装包官方下载2、关于GmSSL3、在Ubuntu18.04上进行交叉编译

1、GmSSL安装包官方下载

参考官方网站:http://gmssl.org/docs/quickstart.html

荔枝派Zero(V3s)在Linux环境下安装GmSSL加密工具1、GmSSL安装包官方下载2、关于GmSSL3、在Ubuntu18.04上进行交叉编译

点击Downloads即可进行安装包下载。

2、关于GmSSL

参考官网:http://gmssl.org/

3、在Ubuntu18.04上进行交叉编译

3.1 下载源代码(zip),解压缩至当前工作目录

$ unzip GmSSL-master.zip
           

3.2 编译与安装

./Configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4
make
make install
           

/opt/openssl 是编译后的输出目录,也可依据需求进行更换。

因为是arm设备,这里配置目标平台为linux-armv4,其它平台编译方式相似,使用 ./Configure --help 能够显示支持的所有平台。此外,当指定arm平台时,Makefile中不会出现不支持的m64选项,也就无需删除。

3.3 移植到ARM平台

1、将交叉编译后的整个openssl文件夹拷贝至荔枝派环境下,将openssl/bin目录下的gmssl拷贝到/bin目录下。

cd openssl/bin
cp gmssl /bin
           

2、或者将openssl目录的libcrypto.so.1.1、libssl.so.1.1(其它版本类似),以及apps目录下的gmssl、openssl.cnf 拷贝到目标设备,将gmssl放在/bin 目录,将openssl.cnf放在/opt/openssl/ssl 目录(没有相应目录就用命令mkdir创建)。

mv gmssl /bin
cd /opt
mkdir openssl
cd openssl
mkdir ssl
mv openssl.cnf /opt/openssl/ssl/
           

3、接着验证是否安装成功,查看版本号:

gmssl version
           

如果出现error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory.这是由于openssl库的位置不正确造成的。

在root用户下执行:

ln -s /opt/openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /opt/openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
           

再次测试版本号,应该就可以了。

3.4 常用加密算法

1、SM4加密与解密文件

加密:

$ gmssl sms4 -e -in <yourfile> -out <yourfile>.sms4
# 例如:gmssl sms4 -e -in test.c -out test.sms4
           

输入正确,就会提示设置密码:

enter sms4-cbc encryption password: <your-password>
Verifying - enter sms4-cbc encryption password: <your-password>
           

解密:

$ gmssl sms4 -d -in test.sms4
enter sms4-cbc decryption password: <your-password>
           

2、生成SM3摘要

$ gmssl sm3 <yourfile>
SM3(yourfile)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
           

3、生成SM2密钥并签名

$ 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
           

可以将公钥从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
           

4、生成SM2私钥及证书请求

$ gmssl ecparam -genkey -name sm2p256v1 -text -out user.key
$ gmssl req -new -key user.key -out user.req
           

查看证书请求内容:

$ gmssl req -in user.req -noout -text -subject
           

继续阅读