diff options
Diffstat (limited to 'CryptoPP')
-rw-r--r-- | CryptoPP/Readme.txt | 4 | ||||
-rw-r--r-- | CryptoPP/blowfish.h | 2 | ||||
-rw-r--r-- | CryptoPP/factory.h | 1 | ||||
-rw-r--r-- | CryptoPP/misc.h | 4 | ||||
-rw-r--r-- | CryptoPP/rijndael.cpp | 8 |
5 files changed, 12 insertions, 7 deletions
diff --git a/CryptoPP/Readme.txt b/CryptoPP/Readme.txt index 1b26794a0..2f04e9f28 100644 --- a/CryptoPP/Readme.txt +++ b/CryptoPP/Readme.txt @@ -1,5 +1,5 @@ Crypto++: a C++ Class Library of Cryptographic Schemes -Version 5.6.1 (8/9/2010, SVN r520) +Version 5.6.2 (in development) Crypto++ Library is a free C++ class library of cryptographic schemes. Currently the library contains the following algorithms: @@ -41,7 +41,7 @@ Currently the library contains the following algorithms: elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL -algorithms retained for backwards 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, +algorithms retained for backwards 3.0, WAKE-OFB, DESX (DES-XEX3), RC2, compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square value diff --git a/CryptoPP/blowfish.h b/CryptoPP/blowfish.h index 4707ce192..ebc4f94d3 100644 --- a/CryptoPP/blowfish.h +++ b/CryptoPP/blowfish.h @@ -9,7 +9,7 @@ NAMESPACE_BEGIN(CryptoPP) //! _ -struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 56>, public FixedRounds<16> +struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4, 56>, public FixedRounds<16> { static const char *StaticAlgorithmName() {return "Blowfish";} }; diff --git a/CryptoPP/factory.h b/CryptoPP/factory.h index ef5a59e41..5b65db3da 100644 --- a/CryptoPP/factory.h +++ b/CryptoPP/factory.h @@ -12,6 +12,7 @@ template <class AbstractClass> class ObjectFactory { public: + virtual ~ObjectFactory () {} virtual AbstractClass * CreateObject() const =0; }; diff --git a/CryptoPP/misc.h b/CryptoPP/misc.h index 8425c5362..7f32b860b 100644 --- a/CryptoPP/misc.h +++ b/CryptoPP/misc.h @@ -580,13 +580,13 @@ CRYPTOPP_DLL void CRYPTOPP_API UnalignedDeallocate(void *p); template <class T> inline T rotlFixed(T x, unsigned int y) { assert(y < sizeof(T)*8); - return T((x<<y) | (x>>(sizeof(T)*8-y))); + return y ? T((x<<y) | (x>>(sizeof(T)*8-y))) : x; } template <class T> inline T rotrFixed(T x, unsigned int y) { assert(y < sizeof(T)*8); - return T((x>>y) | (x<<(sizeof(T)*8-y))); + return y ? T((x>>y) | (x<<(sizeof(T)*8-y))) : x; } template <class T> inline T rotlVariable(T x, unsigned int y) diff --git a/CryptoPP/rijndael.cpp b/CryptoPP/rijndael.cpp index 608b9d30d..c185032cf 100644 --- a/CryptoPP/rijndael.cpp +++ b/CryptoPP/rijndael.cpp @@ -349,7 +349,11 @@ void Rijndael::Base::UncheckedSetKey(const byte *userKey, unsigned int keylen, c void Rijndael::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const { #if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) || CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE +#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) if (HasSSE2()) +#else + if (HasAESNI()) +#endif { Rijndael::Enc::AdvancedProcessBlocks(inBlock, xorBlock, outBlock, 16, 0); return; @@ -522,7 +526,7 @@ CRYPTOPP_NAKED void CRYPTOPP_FASTCALL Rijndael_Enc_AdvancedProcessBlocks(void *l #if CRYPTOPP_BOOL_X86 #define L_REG esp -#define L_INDEX(i) (L_REG+512+i) +#define L_INDEX(i) (L_REG+768+i) #define L_INXORBLOCKS L_INBLOCKS+4 #define L_OUTXORBLOCKS L_INBLOCKS+8 #define L_OUTBLOCKS L_INBLOCKS+12 @@ -621,7 +625,7 @@ CRYPTOPP_NAKED void CRYPTOPP_FASTCALL Rijndael_Enc_AdvancedProcessBlocks(void *l #if CRYPTOPP_BOOL_X86 AS2( mov [ecx+16*12+16*4], esp) // save esp to L_SP - AS2( lea esp, [ecx-512]) + AS2( lea esp, [ecx-768]) #endif // copy subkeys to stack |