コンパイラ/リンカーとして xlC_r を使用して、IBM PLinux の FIPS モードで静的にリンクされた OpenSSL を使用しようとしています。この組み合わせは、fipsld または fips_premain.c ではサポートされていません。fipld は {OSF1, IRIX, HP-UX, AIX, Darwin} の uname -s で FINGERPRINT_premain を呼び出すためのリンカー オプションを追加します。私がよく知らない他の人。残念ながら、IBM PLinux の xlC_r はこれらのいずれにも含まれていないため、次のコードを cpp ファイルの 1 つに追加することが FIPS 検証に受け入れられるかどうか、またはコンパイラ/リンカーを gcc に変更する必要があるかどうか、または別のコードがあるかどうかを知りたいと思います。 xlC_rを保持する方法(リンカーオプション?)。いくつかの理由を含めてください。
#if defined(PREMAIN_NOT_COVERED)
extern "C" void FINGERPRINT_premain(void);
class FIPSInitializer
{
public:
FIPSInitializer()
{
FINGERPRINT_premain();
}
virtual ~FIPSInitializer()
{
}
};
extern FIPSInitializer fips_initializer;
FIPSInitializer fips_initializer;
#endif
リンク中に -Wl,init,FINGERPRINT_premain も使用しようとしましたが、共有ライブラリの使用中にテストでセグメンテーション違反が発生しました。
OpenSSL ユーザー ガイド: http://www.openssl.org/docs/fips/UserGuide-1.1.1.pdf
OpenSSL セキュリティ ポリシー: http://www.openssl.org/docs/fips/SecurityPolicy-2.0.pdf