OpenSSL FIPS コンテナー バージョン 2.0.1 をビルドし、そのコンテナーを使用して OpenSSL 1.0.1c をビルドしました ( OpenSSL FIPS オブジェクト モジュール v2.0 のユーザー ガイドの指示に従って):
SET FIPSDIR=C:\OpenSSL\FIPS
cd C:\OpenSSL\openssl-fips-2.0.1
ms\do_fips
cd C:\OpenSSL\openssl-1.0.1c
ms\do_nasm
nmake -f ms\ntdll.mak
.NET アプリケーションでこれらのインポートを取得しました (これは明らかに上記の libeay32.dll を使用しています)。
[DllImport("libeay32", CallingConvention = CallingConvention.Cdecl)]
public extern static void ERR_load_crypto_strings();
[DllImport("libeay32", CallingConvention = CallingConvention.Cdecl)]
public extern static int ERR_print_errors_fp(SafeHandle file);
[DllImport("libeay32", CallingConvention = CallingConvention.Cdecl)]
public extern static int FIPS_mode_set(int onoff);
問題は、 を呼び出すと、 FIPS モードを有効にできなかったことを示すFIPS_mode_set(1)
が返されることです。0
問題の原因を突き止めるために、私はこれを行っています:
ERR_load_crypto_strings();
using (FileStream fs = new FileStream...)
{
ERR_print_errors_fp(fs.SafeFileHandle);
}
このエラーメッセージが表示されます:
OPENSSL_Uplink(0FAF1000,08): no OPENSSL_Applink
答えを探してみましたが、空っぽになりました - どんな提案でも大歓迎です!
**更新**
Visual Studio 2010 コマンドライン (以前に使用したもの) の代わりに、Visual Studio 2008 コマンドラインから同じ手順を使用してビルドしようとしましたが、うまくいきました!
しかし、Visual Studio 2010 で動作しない理由がわかりません。また、Visual Studio 2008 を永遠に使い続けたくありません。Visual Studio 2010 で正常にビルドするにはどうすればよいでしょうか?