diff --git a/misc.cpp b/misc.cpp index 825b4466..f80cff65 100644 --- a/misc.cpp +++ b/misc.cpp @@ -78,6 +78,7 @@ unsigned long Crop(unsigned long value, unsigned int size) #if !(defined(_MSC_VER) && (_MSC_VER < 1300)) using std::new_handler; +using std::set_new_handler; #endif void CallNewHandler() diff --git a/pssr.cpp b/pssr.cpp index 5dc959aa..2589b14b 100644 --- a/pssr.cpp +++ b/pssr.cpp @@ -7,6 +7,11 @@ NAMESPACE_BEGIN(CryptoPP) template<> const byte EMSA2HashId::id = 0x33; template<> const byte EMSA2HashId::id = 0x31; +template<> const byte EMSA2HashId::id = 0x32; +template<> const byte EMSA2HashId::id = 0x34; +template<> const byte EMSA2HashId::id = 0x36; +template<> const byte EMSA2HashId::id = 0x35; +template<> const byte EMSA2HashId::id = 0x37; unsigned int PSSR_MEM_Base::MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const { diff --git a/pssr.h b/pssr.h index 4ba29509..0bdf3156 100644 --- a/pssr.h +++ b/pssr.h @@ -36,6 +36,11 @@ template struct EMSA2HashId // EMSA2HashId can be instantiated with the following two classes. class SHA; class RIPEMD160; +class RIPEMD128; +class SHA256; +class SHA384; +class SHA512; +class Whirlpool; template class EMSA2HashIdLookup : public BASE diff --git a/rw.h b/rw.h index 71e7009d..f341d5f6 100644 --- a/rw.h +++ b/rw.h @@ -89,7 +89,7 @@ public: }; //! EMSA2, for use with RW -/*! The following hash functions are supported: SHA, RIPEMD160. */ +/*! See pssr.h for a list of hash functions supported by this signature standard. */ struct P1363_EMSA2 : public SignatureStandard { typedef EMSA2Pad SignatureMessageEncodingMethod; diff --git a/seckey.h b/seckey.h index e00fa89f..05d36996 100644 --- a/seckey.h +++ b/seckey.h @@ -18,7 +18,7 @@ inline CipherDir ReverseCipherDir(CipherDir dir) //! . template -class CRYPTOPP_DLL FixedBlockSize +class FixedBlockSize { public: enum {BLOCKSIZE = N}; @@ -28,7 +28,7 @@ public: //! . template -class CRYPTOPP_DLL FixedRounds +class FixedRounds { public: enum {ROUNDS = R}; @@ -47,7 +47,7 @@ protected: //! . template // use INT_MAX here because enums are treated as signed ints -class CRYPTOPP_DLL VariableRounds +class VariableRounds { public: enum {DEFAULT_ROUNDS = D, MIN_ROUNDS = N, MAX_ROUNDS = M}; @@ -74,7 +74,7 @@ protected: //! . template -class CRYPTOPP_DLL FixedKeyLength +class FixedKeyLength { public: enum {KEYLENGTH=N, MIN_KEYLENGTH=N, MAX_KEYLENGTH=N, DEFAULT_KEYLENGTH=N}; @@ -84,7 +84,7 @@ public: /// support query of variable key length, template parameters are default, min, max, multiple (default multiple 1) template -class CRYPTOPP_DLL VariableKeyLength +class VariableKeyLength { // make these private to avoid Doxygen documenting them in all derived classes CRYPTOPP_COMPILE_ASSERT(Q > 0); @@ -112,7 +112,7 @@ public: /// support query of key length that's the same as another class template -class CRYPTOPP_DLL SameKeyLengthAs +class SameKeyLengthAs { public: enum {MIN_KEYLENGTH=T::MIN_KEYLENGTH, MAX_KEYLENGTH=T::MAX_KEYLENGTH, DEFAULT_KEYLENGTH=T::DEFAULT_KEYLENGTH};