静的ライブラリの場合は、静的ライブラリで incore_macho という名前の実行可能ファイルを実行するだけで、フィンガープリントがチェックアウトされます。
これは厳密には正しくありません。実行可能ファイルへの最終的なリンク中にコードとデータが再配置されるため、FIPS フィンガープリントを静的ライブラリに埋め込むことはできません。最終的なリンクが実行されているため、実行可能プログラムまたは共有オブジェクトにフィンガープリントを埋め込むことができます。
動的ライブラリの場合、xcode を取得して dylib で incore_macho を実行すると、次の出力で失敗します。
OpenSSL Foundation には、これに対する修正があります。dylib の incore を許可するために必要な変更は次のとおりです。次のように変更incore_macho.c
します。
530行目あたり:
else if( !(header->filetype == MH_EXECUTE || header->filetype == MH_DYLIB) )
{
fprintf(stderr, "%s is not a mach-o executable file "
"(filetype %d, should be MH_EXECUTE or MH_DYLIB)\n",
inFile->filename, header->filetype);
return -1;
}
690行目あたり:
else if( !(header->filetype == MH_EXECUTE || header->filetype == MH_DYLIB) )
{
fprintf(stderr, "%s is not a mach-o executable file "
"(filetype %d should be MH_EXECUTE or MH_DYLIB)\n",
inFile->filename, header->filetype );
}
それだけです... のテストが見つかった場合はMH_EXECUTE
、 も許可しMH_DYLIB
ます。
または、更新版incore_macho.c
をGithubからダウンロードします。彼らが更新incore_macho.c
したものには、ARMv7 のサポートも含まれています。