首頁 > 後端開發 > Golang > 主體

golang gmssl編譯不過

(*-*)浩
發布: 2019-12-16 15:37:28
原創
2724 人瀏覽過

golang gmssl編譯不過

先前在ubuntu上交叉編譯過openssl-1.0.2k,使用以下腳本實現:                       #

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared
sed -i "s/ -m64//g" Makefile
make
make install
登入後複製
所有開發環境均透過svn管控,包含庫檔案、工具等的建立過程,因此在使用config產生Makefile檔案後,使用腳本自動刪除arm編譯器不支援的m64選項。 當使用同樣的方法編譯gmssl後,在裝置上產生秘鑰時出現執行階段錯誤;openssl-1.1.1預覽版編譯後執行則是停止回應。

經過多方摸索,終於找到了原因所在:應使用Configure配置目標平台!新的編譯腳本如下:

./Configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4
make
make install
登入後複製

因為是arm設備,這裡配置目標平台為linux-armv4,其它平台編譯方式相似,使用 ./Configure --help 能夠顯示支援的所有平台。

此外,當指定arm平台時,Makefile中不會出現不支援的m64選項,也就不需要刪除。

使用新的編譯方式後,gmssl和openssl-1.1.1均能在arm設備上正常運作。

GmSSL-Go是GmSSL函式庫的Go語言介面綁定

為Go語言應用程式提供密碼演算法、X.509憑證、SSL協定和Engine等功能。

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

為何用GmSSL-Go

雖然Go語言的官方函式庫提供了常用的密碼演算法包和SSL協定包,也存在一些第三方的純Go語言的密碼庫,在專案中整合GmSSL-Go仍然有很多不可替代的優勢:GmSSL-Go透過底層的GmSSL庫提供完整、豐富的國密演算法、憑證和SSL協定的支援。

GmSSL-Go可以透過Engine物件滿足國密標準的U盾、PCI-E加密卡等國產硬體密碼設備,提供系統的安全性、可用性和密碼合規性。

GmSSL-Go以CGO方式呼叫GmSSL函式庫的密碼演算法實現,相對於純Go語言實作在密碼演算法上具有效能上的優勢,請參考GmSSL Benchmark。

GmSSL-Go的功能和效能隨著GmSSL的升級獲得持續的改進。

以上是golang gmssl編譯不過的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!