Android,构建openssl-fips-2.0

时间:2012-06-18 22:18:05

标签: android openssl android-ndk

尝试使用NDK构建openssl-fips-2.0,在我幸运之前找到了这个链接并轻松完成。 https://github.com/guardianproject/openssl-android

现在尝试对最新的openssl-fips-2.0做同样的事情,从这里得到了源代码: http://opensslfoundation.com/testing/validation-2.0/

我是否必须遵循有关交叉编译的文档才能进行构建?更简单的方法?

提前致谢

4 个答案:

答案 0 :(得分:6)

如何使用android-ndk-r8在Mac OS X 10.7上构建OpenSSL FIPS 2.0

  1. 安装JDK,android-sdk,android-ndk

  2. 在Mac上安装GCC

    Xcode\Preferences\Components\Command Line Tools\install.
    
  3. 构建环境:

    $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
    
  4. 构建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/
    
  5. 构建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
    
  6. 你去吧。

答案 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东西。

如果你设法以另一种方式做到这一点,请告诉我:)