Gmssl编译 Apple Silicon - arm64 架构

什么是Gmssl?

GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。

GMSSL

如何编译M1芯片架构?

Mac 下编译和安装Gmssl默认是x86_64架构。如何编译通用架构呢?
通过研究发现了一种简单的方法。
修改Configurations/10-main.conf文件。
添加下面的内容:

    "darwin64-arm64-cc" => {
        inherit_from     => [ "darwin-common", asm("aarch64_asm") ],
        cflags           => add("-arch arm64 -DL_ENDIAN -Wall -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"),
        bn_ops           => "SIXTY_FOUR_BIT_LONG",
        perlasm_scheme   => "macosx",
        shared_ldflag    => "-arch arm64 -dynamiclib",
    },

然后依次执行下面的命令:

export CC=clang
export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer
export CROSS_SDK=MacOSX.sdk
export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
./Configure darwin64-arm64-cc --prefix="/tmp/openssl-arm" no-asm no-shared
make
make install

Gmssl版本:2.5.1。
操作系统版本是:10.15.7。
Xcode版本:12.4。
由于手头并没有M1芯片的Mac设备,无法进行测试。
以上内容只是自己的探索,并不一定正确,希望官网能提供M1芯片的编译文档。

你可能感兴趣的:(Gmssl编译 Apple Silicon - arm64 架构)