编译 openssl

booniez2020/11/09移动 iOS安全

最近公司一个项目需要将之前的 AES 加密更换成 SM2 ,查阅了不少资料,因此记录一下,整个实现过程

opensslopen in new window 由于国密依赖于 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
  • 依次执行 makemake install

  • arm 目录即可看到编译产物

接下来,就需要将不同的库进行合并

最后更新 7/10/2024, 5:45:07 AM
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8