3

尝试使用 NDK 构建 openssl-fips-2.0 之前,我很幸运地找到了这个链接并且很容易做到了。 https://github.com/guardianproject/openssl-android

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

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

提前致谢

4

4 回答 4

7

如何使用 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
    

你去吧。

于 2012-06-23T15:19:49.353 回答
0

为什么?如果您必须修改构建脚本,则生成的模块将不符合 FIPS,并且您肯定需要修改以在 Android 上构建。

于 2012-06-19T04:22:54.773 回答
0

谢谢 Nikolay 和 brewphone 。如果我能早点找到你的帖子,那就太好了。我已经设法为我的手机构建了 fips-openssl。我必须在 fipsld 脚本中添加一点 awk 片段才能使其正常工作。(openssl-fips-1.2.3)

brewphone,我有来自构建的 libcrypto.a 和 libssl.a,我静态链接它们以为我的应用程序创建一个库。这是最好的方法吗?

谢谢!

于 2012-07-03T19:01:29.010 回答
0

如果其他人遇到与我相同的问题,通过 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,如果您设法以另一种方式做到这一点,请告诉我:)

于 2012-09-12T16:40:27.443 回答