move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'

This commit is contained in:
weidai 2007-04-15 22:59:12 +00:00
parent 837bc18cba
commit 45fab64526
8 changed files with 67 additions and 18 deletions

View File

@ -15,10 +15,12 @@
*/
#include "pch.h"
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK
#include "md2.h"
NAMESPACE_BEGIN(CryptoPP)
namespace Weak {
MD2::MD2()
: m_X(48), m_C(16), m_buf(16)
{
@ -114,4 +116,5 @@ void MD2::TruncatedFinal(byte *hash, size_t size)
Init();
}
}
NAMESPACE_END

15
md2.h
View File

@ -6,8 +6,9 @@
NAMESPACE_BEGIN(CryptoPP)
/// <a href="http://www.weidai.com/scan-mirror/md.html#MD2">MD2</a>
/** 128 Bit Hash */
namespace Weak {
/// <a href="http://www.cryptolounge.org/wiki/MD2">MD2</a>
class MD2 : public HashTransformation
{
public:
@ -28,6 +29,16 @@ private:
unsigned int m_count;
};
}
#ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
using namespace Weak;
#ifdef __GNUC__
#warning "You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning."
#else
#pragma message("You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning.")
#endif
#endif
NAMESPACE_END
#endif

View File

@ -15,10 +15,12 @@
*/
#include "pch.h"
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK
#include "md4.h"
#include "misc.h"
NAMESPACE_BEGIN(CryptoPP)
namespace Weak {
void MD4::InitState(HashWordType *state)
{
@ -104,4 +106,5 @@ void MD4::Transform (word32 *digest, const word32 *in)
digest[3]+=D;
}
}
NAMESPACE_END

12
md4.h
View File

@ -5,6 +5,8 @@
NAMESPACE_BEGIN(CryptoPP)
namespace Weak {
//! <a href="http://www.weidai.com/scan-mirror/md.html#MD4">MD4</a>
/*! \warning MD4 is considered insecure, and should not be used
unless you absolutely need it for compatibility. */
@ -16,6 +18,16 @@ public:
static const char *StaticAlgorithmName() {return "MD4";}
};
}
#ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
using namespace Weak;
#ifdef __GNUC__
#warning "You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning."
#else
#pragma message("You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning.")
#endif
#endif
NAMESPACE_END
#endif

View File

@ -2,10 +2,12 @@
// any modifications are placed in the public domain
#include "pch.h"
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK
#include "md5.h"
#include "misc.h"
NAMESPACE_BEGIN(CryptoPP)
namespace Weak {
void MD5_TestInstantiations()
{
@ -112,4 +114,5 @@ void MD5::Transform (word32 *digest, const word32 *in)
digest[3]+=d;
}
}
NAMESPACE_END

16
md5.h
View File

@ -5,9 +5,9 @@
NAMESPACE_BEGIN(CryptoPP)
//! <a href="http://www.weidai.com/scan-mirror/md.html#MD5">MD5</a>
/*! \warning MD5 is considered insecure, and should not be used
unless you absolutely need it for compatibility. */
namespace Weak {
//! <a href="http://www.cryptolounge.org/wiki/MD5">MD5</a>
class MD5 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 16, MD5>
{
public:
@ -16,6 +16,16 @@ public:
static const char * StaticAlgorithmName() {return "MD5";}
};
}
#ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
using namespace Weak;
#ifdef __GNUC__
#warning "You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning."
#else
#pragma message("You may be using a weak algorithm that has been retained for backwards compatibility. Please define CRYPTOPP_ENABLE_NAMESPACE_WEAK and prepend the class name with 'Weak::' to remove this warning.")
#endif
#endif
NAMESPACE_END
#endif

View File

@ -7,8 +7,8 @@ NAMESPACE_BEGIN(CryptoPP)
void WAKE_TestInstantiations()
{
WAKE_CFB<>::Encryption x1;
WAKE_CFB<>::Decryption x3;
Weak::WAKE_CFB<>::Encryption x1;
Weak::WAKE_CFB<>::Decryption x3;
WAKE_OFB<>::Encryption x2;
WAKE_OFB<>::Decryption x4;
}
@ -85,16 +85,21 @@ void WAKE_Policy<B>::Iterate(byte *output, const byte *input, CipherDir dir, siz
template <class B>
void WAKE_Policy<B>::OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
{
KeystreamOutput<B> keystreamOperation(operation, output, input);
while (iterationCount--)
{
keystreamOperation(r6);
r3 = M(r3, r6);
r4 = M(r4, r3);
r5 = M(r5, r4);
r6 = M(r6, r5);
#define WAKE_OUTPUT(x)\
while (iterationCount--)\
{\
CRYPTOPP_KEYSTREAM_OUTPUT_WORD(x, B::ToEnum(), 0, r6);\
r3 = M(r3, r6);\
r4 = M(r4, r3);\
r5 = M(r5, r4);\
r6 = M(r6, r5);\
output += 4;\
if (x == XOR_KEYSTREAM)\
input += 4;\
}
typedef word32 WordType;
CRYPTOPP_KEYSTREAM_OUTPUT_SWITCH(WAKE_OUTPUT, 0);
}
/*
template <class B>

4
wake.h
View File

@ -47,13 +47,15 @@ protected:
bool IsRandomAccess() const {return false;}
};
//! <a href="http://www.weidai.com/scan-mirror/cs.html#WAKE-CFB-BE">WAKE-CFB-BE</a>
namespace Weak {
//! <a href="http://www.cryptolounge.org/wiki/WAKE">WAKE-CFB-BE</a>
template <class B = BigEndian>
struct WAKE_CFB : public WAKE_CFB_Info<B>, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal<ConcretePolicyHolder<WAKE_Policy<B>, CFB_EncryptionTemplate<> >, WAKE_CFB_Info<B> > Encryption;
typedef SymmetricCipherFinal<ConcretePolicyHolder<WAKE_Policy<B>, CFB_DecryptionTemplate<> >, WAKE_CFB_Info<B> > Decryption;
};
}
//! WAKE-OFB
template <class B = BigEndian>