GmSSL
是一個開源的密碼工具箱,是OpenSSL項目的分支,并與OpenSSL
能夠保持接口兼容。因近期項目中需要使用GmSSL
加密算法進行數(shù)據(jù)加密,因此結合相關資料及GmSSL
官方提供的編譯方法,著手編譯了iOS
靜態(tài)庫。現(xiàn)將編譯過程及遇到的問題總結如下。
1. GmSSL
簡介
GmSSL
是一個開源的密碼工具箱,支持SM2/SM3/SM4/SM9/ZUC
等國密(國家商用密碼)算法、SM2
國密數(shù)字證書及基于SM2
證書的SSL/TLS
安全通信協(xié)議,支持國密硬件密碼設備,提供符合國密規(guī)范的編程接口與命令行工具,可以用于構建PKI/CA、安全通信、數(shù)據(jù)加密等符合國密標準的安全應用。GmSSL
項目是OpenSSL項目的分支,并與OpenSSL
保持接口兼容。因此GmSSL可以替代應用中的OpenSSL組件,并使應用自動具備基于國密的安全能力。
2. 源碼編譯
- 獲取源碼
$ git clone https://github.com/guanzhi/GmSSL.git
- 支持的編譯選項
進入到項目目錄,通過Configure
命令我們可以查看一下支持的平臺,iOS
平臺的支持armv7、armv7s、arm64
,其中ios64-cross
支持的架構為arm64
,iphoneos-cross
支持的架構為armv7,armv7s
,darwin64-x86_64-cc
支持的架構為x86_64
,darwin-i386-cc
支持的架構為i386
。
$ ./Configure
GmSSL支持的平臺
- 生成編譯文件
以編譯armv7s
架構為例,加入編譯選項
$ ./Configure iphoneos-cross
- 修改
Makefile
文件- 查找
CC=
開頭文件,將改路徑修改為xcode的XcodeDefault.xctoolchain
路徑+/usr/bin/clang -arch 架構(armv7,armv7s,arm64,x86_64,i386,)
形式
- 查找
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64
- 查找
-isysroot
,修改