php gmssl,golang gmssl编译不过
此前在ubuntu上交叉編譯過openssl-1.0.2k,使用如下腳本實現: (推薦學習:go)./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的升級獲得持續的改進。
總結
以上是生活随笔為你收集整理的php gmssl,golang gmssl编译不过的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ElasticSearch初体验之使用J
- 下一篇: python列反过来_xlwings 教