Skip to content

Commit

Permalink
move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'
Browse files Browse the repository at this point in the history
  • Loading branch information
weidai11 committed Apr 15, 2007
1 parent 837bc18 commit 45fab64
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 18 deletions.
5 changes: 4 additions & 1 deletion md2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -114,4 +116,5 @@ void MD2::TruncatedFinal(byte *hash, size_t size)
Init();
}

}
NAMESPACE_END
15 changes: 13 additions & 2 deletions md2.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -28,6 +29,16 @@ class MD2 : public HashTransformation
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
3 changes: 3 additions & 0 deletions md4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -104,4 +106,5 @@ void MD4::Transform (word32 *digest, const word32 *in)
digest[3]+=D;
}

}
NAMESPACE_END
12 changes: 12 additions & 0 deletions md4.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand All @@ -16,6 +18,16 @@ class MD4 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 16,
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
3 changes: 3 additions & 0 deletions md5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()
{
Expand Down Expand Up @@ -112,4 +114,5 @@ void MD5::Transform (word32 *digest, const word32 *in)
digest[3]+=d;
}

}
NAMESPACE_END
16 changes: 13 additions & 3 deletions md5.h
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -16,6 +16,16 @@ class MD5 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 16,
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
27 changes: 16 additions & 11 deletions wake.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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>
Expand Down
4 changes: 3 additions & 1 deletion wake.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,15 @@ class CRYPTOPP_NO_VTABLE WAKE_Policy
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>
Expand Down

0 comments on commit 45fab64

Please sign in to comment.