GmSSL
是一个开源的密码工具箱,是OpenSSL项目的分支,并与OpenSSL
能够保持接口兼容。因近期项目中需要使用GmSSL
加密算法进行数据加密,因此结合相关资料及GmSSL
官方提供的编译方法,着手编译了iOS
静态库。现将编译过程及遇到的问题总结如下。
1. GmSSL
简介
GmSSL
是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC
等国密(国家商用密码)算法、SM2
国密数字证书及基于SM2
证书的SSL/TLS
安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。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
- 生成编译文件
以编译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
,修改