summaryrefslogtreecommitdiffstats
path: root/CryptoPP
diff options
context:
space:
mode:
Diffstat (limited to 'CryptoPP')
-rw-r--r--CryptoPP/Readme.txt4
-rw-r--r--CryptoPP/blowfish.h2
-rw-r--r--CryptoPP/factory.h1
-rw-r--r--CryptoPP/misc.h4
-rw-r--r--CryptoPP/rijndael.cpp8
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