参考官方网站:http://gmssl.org/docs/quickstart.html
点击Downloads即可进行安装包下载。
参考官网:http://gmssl.org/
$ unzip GmSSL-master.zip
./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选项,也就无需删除。
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
再次测试版本号,应该就可以了。
1、SM4加密与解密文件
加密:
$ gmssl sms4 -e -in -out .sms4
# 例如:gmssl sms4 -e -in test.c -out test.sms4
输入正确,就会提示设置密码:
enter sms4-cbc encryption password:
Verifying - enter sms4-cbc encryption password:
解密:
$ gmssl sms4 -d -in test.sms4
enter sms4-cbc decryption password:
2、生成SM3摘要
$ gmssl sm3
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 -out .sig
可以将公钥从signkey.pem中导出并发发布给验证签名的一方
$ gmssl pkey -pubout -in signkey.pem -out vrfykey.pem
$ gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vrfykey.pem \
-in -sigfile .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