天天看點

荔枝派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
           

繼續閱讀