编译 openssl
booniez2020/11/09移动 iOS安全
最近公司一个项目需要将之前的 AES
加密更换成 SM2
,查阅了不少资料,因此记录一下,整个实现过程
openssl 由于国密依赖于
openssl
,但是openssl
又没有对应的编译好的输出文件 so,
前期准备:
如果你已经成功下载了文件,那么接下来迈入主题:
编译一个 x86_64 的库:
找到合适的目录,建立一个
X86_64
的目录/Users/jlm/Service/ssl/prod/X86_64
进入
openssl-OpenSSL_1_1_1h
所在的目录/Users/jlm/Service/ssl/openssl-OpenSSL_1_1_1h
,执行./Configure iphoneos-cross --prefix=/Users/jlm/Service/ssl/prod/X86_64 -no-asm
修改
Makefile
文件, 将 93 行CC= $(CROSS_COMPILE)cc
进行替换
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer CROSS_SDK=iPhoneSimulator14.1.sdk
* 依次执行 ``make`` 和 ``make install``
* 在 ``X86_64`` 目录即可看到编译产物
编译一个 ``arm`` 的库:
* 找到合适的目录,建立一个 ``arm`` 的目录 ``/Users/jlm/Service/ssl/prod/arm``
* 进入 ``openssl-OpenSSL_1_1_1h`` 所在的目录 ``/Users/jlm/Service/ssl/openssl-OpenSSL_1_1_1h`` ,执行 ``./Configure iphoneos-cross --prefix=/Users/jlm/Service/ssl/prod/arm``
* 修改 ``Makefile`` 文件, 将 93 行 ``CC= $(CROSS_COMPILE)cc`` 进行替换
> ```
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64
CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
CROSS_SDK=iPhoneOS14.1.sdk
依次执行
make
和make install
在
arm
目录即可看到编译产物
接下来,就需要将不同的库进行合并
Powered by Waline v2.15.8