SM2是基于ECC的國密算法,本身也是ECC算法。
openssl生成ECC公私鑰并簽名驗簽
#!/bin/sh
openssl ecparam -genkey -name prime256v1 -out private.pem
#print pri
#openssl ec -in private.pem -text -noout
openssl ec -in private.pem -pubout -out public.pem
#gen test.txt
zip -qr test_file private.pem public.pem
#sign
openssl dgst -sha256 -sign private.pem -out ec.sig test_file.zip
#verify
openssl dgst -sha256 -verify public.pem -signature ec.sig test_file.zip
其中-name 指定使用的ECC曲線,又如SM2的-name SM2
SM2
Openssl 1.1.1+ 版本增加了對SM2 的支持,所以我們就能直接使用這些版本的opsnssl 生成 SM2的公私鑰對。
首先我們得在服務器中安裝對應版本的openssl庫,具體過程略。
軟件包請到官網下載 : [https://www.openssl.org/](https://www.openssl.org/)
安裝完成后,使用下列命令查看該版本的openssl 是否支持SM2參數:
openssl ecparam -list_curves | grep SM2
如果查詢結果有內容,則說明該版本支持SM2參數,也就可以生成SM2的公私鑰對。
在安裝了正確版本的openssl之后,下面就是利用openssl自帶的命令生成SM2公私鑰對了