尝试使用NDK构建openssl-fips-2.0,在我幸运之前找到了这个链接并轻松完成。 https://github.com/guardianproject/openssl-android
现在尝试对最新的openssl-fips-2.0做同样的事情,从这里得到了源代码: http://opensslfoundation.com/testing/validation-2.0/
我是否必须遵循有关交叉编译的文档才能进行构建?更简单的方法?
提前致谢
答案 0 :(得分:6)
如何使用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
你去吧。
答案 1 :(得分:0)
为什么呢?如果您必须修改构建脚本,则生成的模块将不符合FIPS,并且您肯定需要修改以在Android上构建。
答案 2 :(得分:0)
谢谢Nikolay和brewphone。如果我之前找到你的帖子,那就太棒了。我已经设法为我的手机构建了fips-openssl。我必须在fipsld脚本中添加一个awk片段以使其正常工作。(openssl-fips-1.2.3)
brewphone,我有来自构建的libcrypto.a和libssl.a,我静态链接它们为我的应用程序创建一个库。这是最好的方法吗?
谢谢!
答案 3 :(得分:0)
如果其他任何人遇到了我所做的同样的问题,那么通过brewphone如上所述使其工作的关键(感谢btw为您的见解)是将未剥离的lib打包为内容,然后将它们复制到应用程序数据文件夹,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东西。
如果你设法以另一种方式做到这一点,请告诉我:)