iOS平台GmSSL静态库编译

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 支持的架构为arm64iphoneos-cross支持的架构为armv7,armv7sdarwin64-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,修改

你可能感兴趣的:(iOS平台GmSSL静态库编译)