尝试使用 NDK 构建 openssl-fips-2.0 之前,我很幸运地找到了这个链接并且很容易做到了。 https://github.com/guardianproject/openssl-android
现在尝试对最新的 openssl-fips-2.0 做同样的事情,从这里获得源代码:http: //opensslfoundation.com/testing/validation-2.0/
我是否必须遵循有关交叉编译的文档才能进行构建?更简单的方法?
提前致谢
尝试使用 NDK 构建 openssl-fips-2.0 之前,我很幸运地找到了这个链接并且很容易做到了。 https://github.com/guardianproject/openssl-android
现在尝试对最新的 openssl-fips-2.0 做同样的事情,从这里获得源代码:http: //opensslfoundation.com/testing/validation-2.0/
我是否必须遵循有关交叉编译的文档才能进行构建?更简单的方法?
提前致谢
如何使用 android-ndk-r8 在 Mac OS X 10.7 上构建 OpenSSL FIPS 2.0
安装JDK、android-sdk、android-ndk
在 Mac 上安装 GCC
Xcode\Preferences\Components\Command Line Tools\install.
构建环境设置:
$ANDROID_NDK_HOME is my android-ndk folder
export ANDROID_NDK=$ANDROID_NDK_HOME
export FIPS_SIG=$PWD/util/incore
export PATH="$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin":$PATH
export MACHINE=armv7l
export RELEASE=2.6.32.GMU
export SYSTEM=android
export ARCH=arm
export CROSS_COMPILE="arm-linux-androideabi-"
export ANDROID_DEV="$ANDROID_NDK/platforms/android-14/arch-arm/usr"
export HOSTCC=gcc
构建 fips openssl 模块:
gunzip -c openssl-fips-2.0.tar.gz | tar xf -
cd openssl-fips-2.0/
./config
make
make install # copy files to /usr/local/ssl/
构建支持 fips 的 openssl 库 (.a)
gunzip -c openssl-1.0.1c.tar.gz | tar xf -
cd openssl-1.0.1c/
./config fips --with-fipslibdir=/usr/local/ssl/fips-2.0/lib/
make depend
make
你去吧。
为什么?如果您必须修改构建脚本,则生成的模块将不符合 FIPS,并且您肯定需要修改以在 Android 上构建。
谢谢 Nikolay 和 brewphone 。如果我能早点找到你的帖子,那就太好了。我已经设法为我的手机构建了 fips-openssl。我必须在 fipsld 脚本中添加一点 awk 片段才能使其正常工作。(openssl-fips-1.2.3)
brewphone,我有来自构建的 libcrypto.a 和 libssl.a,我静态链接它们以为我的应用程序创建一个库。这是最好的方法吗?
谢谢!
如果其他人遇到与我相同的问题,通过 brewphone 实现上述工作的关键(感谢您的洞察力)是将未剥离的库打包为内容,然后将它们复制到应用程序数据文件夹之后并且成功System.load("/data/data/myapp/files/libcrypto.so.1.0.0")
了System.load("/data/data/myapp/files/libssl.so.1.0.0")
。
有趣的是,只是更改 makefile 以将版本号放在 .so 扩展名之前会导致指纹失败,即使 fips 的东西没有被触及。
brewphone,如果您设法以另一种方式做到这一点,请告诉我:)