私は、アプリケーションに存在する暗号化ライブラリが FIPS 認定を受ける必要がある Android プロジェクトに取り組んでいます。私の知る限り、FIPS で検証された JAVA セキュリティ ライブラリはありません。Boucy Castle は優れていますが、検証されていません。フォーラムの投稿をいくつか読んだ後、OpenSSL の FIPS モジュールを NDK の助けを借りて使用できることがわかりました。
現在、Android 用の fips-openssl モジュールをビルドしようとしています。そのために、クロス コンパイル用の環境変数用のスクリプトを作成しました。
このプロジェクトにはopenssl-fipsと ndk-r8 を使用しています。Google で見つけた fipsガイドラインに従いました。これにより、私がやろうとしていることの明確なイメージが得られることを願っています。
#! /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
make を実行すると、これがエラーになります。
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