2016-04-24 14 views
1

私はサーバを持っています。私はそれにAESの暗号化を追加したい。 私はCrypto ++を使いこなしてみましたが、それは多くの検索をコンパイルした後に "CryptoPP :: selfTestFailure"から出る例外を常にスローします。 私はそれが、これはファイルfips140.cppに定義すると何かがあることをどこかで読んだ:CryptoPP :: selfTestFailure FIPS検証ライブラリとAESを使用する場合

// Define this to 1 to turn on FIPS 140-2 compliance features, including additional tests during 
// startup, random number generation, and key generation. These tests may affect performance. 
#ifndef CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 
#define CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 0 
endif 

を私が変更されたときに1私はコンパイルされませんからDLLを取ったプロジェクトに定義します。 どうしたのですか?/AESアルゴリズムの埋め込み方法は他にありますか?

+0

CryptoPPが大きな問題を抱えている場合は、[botan](http://botan.randombit.net)を試すことができます。 – ForceBru

+0

@SamVarshavchik Windows 10、Visual Studio 2013 – etamar211

+1

「AES暗号化を追加します。セキュリティへの悪いアプローチのように聞こえる。なぜTLSなどの既存のプロトコルを使用しないのですか? – milleniumbug

答えて

2

...多くの検索の後でコンパイルされますが、常に "CryptoPP :: selfTestFailure"から来る例外がスローされます。私はfips140.cppファイルで定義されている何かをお読みになりました。

FIPS DLLは、かなり制限のある専用のWindows DLLです。制限の1つは、操作環境またはOEです。 OEには、OSのバージョンとサービスパックのレベルが含まれています。ここ

FIPS DLLのために

は、承認されたOEのは、以下のとおりです。

  • 5.0.4 - のWindows 2000 Professionalのオペレーティングシステム、サービスパック1
  • 5.2.3 - のWindows 2000 Professionalのオペレーティングシステム、サービスパック1
  • 5.3.0 - Windows XP ProfessionalのSP1

とのSP2およびWindows Server 2003 X64とOSが間違っている、またはService Packレベルが間違っている、それがセルフテストFを引き起こすことができる場合不具合DLLが特定の特定のメモリ関数をC++ランタイムから検索するため、エラーが発生する原因の1つになります。見つからない場合は、例外がスローされます。

それほど明白ではない依存関係があります。これはVisual Studioのバージョンです。検証されたライブラリの最終バージョンは5.3です。それにはVisual Studio 2005が必要です。

通常は、特定のOS、erviceのパックレベルとビジュアルスタジオを作成し、それを作成してテストします。次に、Crypto ++とプログラムを実稼働環境にインストールするときは、compatibility tabを使用してランタイムOEを提供します。


私はコンパイルされませんからDLLを取っ1に定義したプロジェクトに変更。どうしたんだ?

さらに詳しい回答が必要な場合は、Windowsのバージョン、Visual Studioのバージョン、コールスタックなどの詳細情報を提供する必要があります。


可能であれば、FIPS DLLを避けることをお勧めします。ほとんどのユーザーはその特別な目的を認識せず、正しく使用する方法を知らない。そのお尻の痛みとその問題の絶え間ない原因を扱う。

DLLを使用する場合は、エクスポートするシンボルをエクスポートするラッパーDLLを作成します。次に、Crypto ++ライブラリの静的バージョンにリンクします。

+0

FIPS DLLなしでC++でAESを使用する他の方法を知っていますか? – etamar211

+0

@ etamar211 - [Advanced Encryption Standard](https://cryptopp.com/wiki/Advanced_Encryption_Standard)および[GNUmakefile |ライブラリの構築](https://cryptopp.com/wiki/Gnumakefile#Building_the_Library)または[Visual Studio | Crypto ++ wikiの「ライブラリの構築」(http://cryptopp.com/wiki/Visual_studio) – jww

関連する問題