NDK で openssl-fips-2.0 をビルドしようとしましたが、幸運にもこのリンクが見つかり、簡単に実行できました。 https://github.com/guardianproject/openssl-android
今、最新のopenssl-fips-2.0に対して同じことをしようとしています 。
ビルドを行うには、クロスコンパイルに関するドキュメントに従う必要がありますか? そして、より簡単なアプローチは?
前もって感謝します
NDK で openssl-fips-2.0 をビルドしようとしましたが、幸運にもこのリンクが見つかり、簡単に実行できました。 https://github.com/guardianproject/openssl-android
今、最新のopenssl-fips-2.0に対して同じことをしようとしています 。
ビルドを行うには、クロスコンパイルに関するドキュメントに従う必要がありますか? そして、より簡単なアプローチは?
前もって感謝します
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
ほらね。
なんで?ビルド スクリプトを変更する必要がある場合、結果として得られるモジュールは FIPS に準拠していないため、Android でビルドするには変更する必要があります。
ニコライとブリューフォンに感謝します。あなたの投稿をもっと早く見つけていればよかったのに。私は自分の携帯電話用の fips-openssl を構築することができました.fipsld スクリプトに小さな awk スニペットを追加して、機能させる必要がありました.(openssl-fips-1.2.3)
brewphone の場合、ビルドから libcrypto.a と libssl.a があり、それらを静的にリンクしてアプリケーションのライブラリを作成します。それが最善の方法ですか?
ありがとう!
他の誰かが私と同じ問題に遭遇した場合、上記のようにbrewphoneが説明したようにこれを機能させるための鍵(あなたの洞察に感謝します)は、ストリップされていないライブラリをコンテンツとしてパッケージ化し、その後アプリデータフォルダーにコピーすることですとトリックSystem.load("/data/data/myapp/files/libcrypto.so.1.0.0")
を行いました。System.load("/data/data/myapp/files/libssl.so.1.0.0")
興味深いことに、.so 拡張子の前にバージョン番号を配置するように makefile を変更しただけで、fips に触れていないにもかかわらず、フィンガープリントが失敗しました。
Brewphone、これを別の方法で行うことができた場合は、お知らせください:)