天天看點

利用openssl生成SM2公私鑰對

openssl 1.1.1+ 版本增加了對SM2 的支援,是以我們就能直接使用這些版本的opsnssl 生成 SM2的公私鑰對。

首先我們得在Linux 或者Windows伺服器中安裝對應版本的openssl庫,具體過程略。軟體包請到官網下載下傳:https://www.openssl.org/

安裝完成後,使用下列指令檢視該版本的openssl 是否支援SM2參數:

openssl ecparam -list_curves | grep SM2

如果查詢結果有内容,則說明該版本支援SM2參數,也就可以生成SM2的公私鑰對。

在安裝了正确版本的openssl之後,下面就是利用openssl自帶的指令生成SM2公私鑰對了:

1.建立EC參數和原始私鑰檔案:

openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey

注:生成完成後可以檢視一下EC私鑰資訊:

openssl ecparam -in ec_param.pem -text

然後驗證一下參數:

openssl ecparam -in ec_param.pem -check

2.将原始的私鑰檔案,轉換為pkcs8格式:

openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem

3.利用原始的私鑰,生成對應的公鑰:

openssl ec -in ec_param.pem -pubout -out pub_key.pem

至此SM2的秘鑰對已經生成結束,pri_key_pkcs8.pem是SM2私鑰,而pub_key.pem是公鑰。

繼續閱讀