【发布时间】:2014-02-15 23:47:43
【问题描述】:
我正在开发一个 android 项目,该项目要求应用程序中存在的加密库经过 FIPS 认证。据我所知,没有经过 FIPS 验证的 JAVA 安全库。 Boucy Castle 不错,但未经验证。看了一些论坛帖子,发现可以借助 NDK 使用 OpenSSL 的 FIPS 模块。
现在我正在尝试为 Android 构建 fips-openssl 模块,为此我为交叉编译的环境变量创建了一个脚本。
我在这个项目中使用 openssl-fips 和 ndk-r8。我遵循了我在谷歌上找到的 fips guideline。我希望这可以清楚地说明我正在尝试做的事情。
#! /bin/sh
export ANDROID_NDK="~/Android/android-ndk-r8"
export FIPS_SIG="${ANDROID_NDK}/incore"
export GCC_C1="/usr/lib/gcc/i686-pc-linux-gnu/4.7.0/"
export PATH=$PATH:"${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin";
export MACHINE=armv71
export ARCH=arm.
export CROSS_COMPILE="arm-linux-androideabi-"
export SYSTEM=android
#export RELEASE=2.6.32.GMU
export ANDROID_DEV="$ANDROID_NDK/platforms/android-14/arch-arm/usr"
export HOSTCC=/usr/bin/gcc
在制作时,这是我得到的错误。
arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
make[1]: *** [cryptlib.o] Error 1
make[1]: Leaving directory `/home/abhiram/fips/openssl-fips-1.2.3/crypto'
make: *** [build_crypto] Error 1
当我执行“查找”时,cc1 可执行文件存在于这个特定目录中。
find . -name cc1
./toolchains/mipsel-linux-android-4.4.3/prebuilt/linux-x86/libexec/gcc/mipsel-linux-android/4.4.3/cc1
./toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/libexec/gcc/arm-linux-androideabi/4.4.3/cc1
./toolchains/x86-4.4.3/prebuilt/linux-x86/libexec/gcc/i686-android-linux/4.4.3/cc1
【问题讨论】:
-
“据我所知,没有符合 FIPS 的 JAVA 安全库” - 不正确。例如,RSA Data Security 的 BSAFE 已通过 FIPS 验证。
标签: android android-ndk fips