溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

golang中使用gmssl編譯不過的解決方法

發(fā)布時間:2020-06-17 10:50:53 來源:億速云 閱讀:1060 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)golang中使用gmssl編譯不過的解決方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

此前在ubuntu上交叉編譯過openssl-1.0.2k,使用如下腳本實現(xiàn): 

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared
sed -i "s/ -m64//g" Makefile
make
make install

所有開發(fā)環(huán)境均通過svn管控,包括庫文件、工具等的建立過程,因此在用config生成Makefile文件后,使用腳本自動刪除arm編譯器不支持的m64選項。

當使用同樣的方法編譯gmssl后,在設(shè)備上生成秘鑰時出現(xiàn)運行時錯誤;openssl-1.1.1預覽版編譯后運行則是停止響應(yīng)。

經(jīng)過多方摸索,終于找到了原因所在:應(yīng)使用Configure配置目標平臺!新的編譯腳本如下:

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

因為是arm設(shè)備,這里配置目標平臺為linux-armv4,其它平臺編譯方式相似,使用 ./Configure --help 能夠顯示支持的所有平臺。

此外,當指定arm平臺時,Makefile中不會出現(xiàn)不支持的m64選項,也就無需刪除。

使用新的編譯方式后,gmssl和openssl-1.1.1均能在arm設(shè)備上正常工作。

GmSSL-Go是GmSSL庫的Go語言接口綁定,為Go語言應(yīng)用提供密碼算法、X.509證書、SSL協(xié)議和Engine等功能。

GmSSL-Go以CGO方式將GmSSL的高層接口封裝為Go語言組件,是一個與GmSSL庫松耦合的輕量級的中間層,所有的密碼功能均由底層的GmSSL庫提供。

為何用GmSSL-Go

雖然Go語言的官方庫提供了常用的密碼算法包和SSL協(xié)議包,也存在一些第三方的純Go語言的密碼庫,在項目中集成GmSSL-Go仍然有很多不可替代的優(yōu)勢:

GmSSL-Go通過底層的GmSSL庫提供完整、豐富的國密算法、證書和SSL協(xié)議的支持。

GmSSL-Go可以通過Engine對象滿足國密標準的U盾、PCI-E加密卡等國產(chǎn)硬件密碼設(shè)備,提供系統(tǒng)的安全性、可用性和密碼合規(guī)性。

GmSSL-Go以CGO方式調(diào)用GmSSL庫的密碼算法實現(xiàn),相對于純Go語言實現(xiàn)在密碼算法上具有性能上的優(yōu)勢,請參考GmSSL Benchmark。

GmSSL-Go的功能和性能隨著GmSSL的升級獲得持續(xù)的改進。

看完這篇文章,你能夠獨立解決golang中使用gmssl編譯不過的問題了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI