Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

fips140.h

Go to the documentation of this file.
00001 #ifndef CRYPTOPP_FIPS140_H 00002 #define CRYPTOPP_FIPS140_H 00003 00004 /*! \file 00005 FIPS 140 related functions and classes. 00006 */ 00007 00008 #include "cryptlib.h" 00009 00010 NAMESPACE_BEGIN(CryptoPP) 00011 00012 //! exception thrown when a crypto algorithm is used after a self test fails 00013 class SelfTestFailure : public Exception 00014 { 00015 public: 00016 explicit SelfTestFailure(const std::string &s) : Exception(OTHER_ERROR, s) {} 00017 }; 00018 00019 //! returns whether FIPS 140-2 compliance features were enabled at compile time 00020 bool FIPS_140_2_ComplianceEnabled(); 00021 00022 //! enum values representing status of the power-up self test 00023 enum PowerUpSelfTestStatus {POWER_UP_SELF_TEST_NOT_DONE, POWER_UP_SELF_TEST_FAILED, POWER_UP_SELF_TEST_PASSED}; 00024 00025 //! perform the power-up self test, and set the self test status 00026 void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleSha1Digest); 00027 00028 //! set the power-up self test status to POWER_UP_SELF_TEST_FAILED 00029 void SimulatePowerUpSelfTestFailure(); 00030 00031 //! return the current power-up self test status 00032 PowerUpSelfTestStatus GetPowerUpSelfTestStatus(); 00033 00034 // this is used by Algorithm constructor to allow Algorithm objects to be constructed for the self test 00035 bool PowerUpSelfTestInProgressOnThisThread(); 00036 00037 void SetPowerUpSelfTestInProgressOnThisThread(bool inProgress); 00038 00039 void SignaturePairwiseConsistencyTest(const PK_Signer &signer, const PK_Verifier &verifier); 00040 void EncryptionPairwiseConsistencyTest(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor); 00041 00042 void SignaturePairwiseConsistencyTest_FIPS_140_Only(const PK_Signer &signer, const PK_Verifier &verifier); 00043 void EncryptionPairwiseConsistencyTest_FIPS_140_Only(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor); 00044 00045 NAMESPACE_END 00046 00047 #endif

Generated on Fri Aug 13 09:56:53 2004 for Crypto++ by doxygen 1.3.7