diff options
author | Mattes D <github@xoft.cz> | 2014-01-25 22:05:16 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-01-25 22:05:16 +0100 |
commit | 437a9c8d1f13cc7770a95534dbf71b78685edfe7 (patch) | |
tree | 68b0e13a46f3936bb772106c0ca8d8e74aba2b8e /lib/cryptopp/mdc.h | |
parent | Merge pull request #581 from worktycho/strerror (diff) | |
parent | ProtoProxy: Modified to use PolarSSL. (diff) | |
download | cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar.gz cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar.bz2 cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar.lz cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar.xz cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.tar.zst cuberite-437a9c8d1f13cc7770a95534dbf71b78685edfe7.zip |
Diffstat (limited to '')
-rw-r--r-- | lib/cryptopp/mdc.h | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/lib/cryptopp/mdc.h b/lib/cryptopp/mdc.h deleted file mode 100644 index cc90cdc45..000000000 --- a/lib/cryptopp/mdc.h +++ /dev/null @@ -1,72 +0,0 @@ - // mdc.h - written and placed in the public domain by Wei Dai - -#ifndef CRYPTOPP_MDC_H -#define CRYPTOPP_MDC_H - -/** \file -*/ - -#include "seckey.h" -#include "misc.h" - -NAMESPACE_BEGIN(CryptoPP) - -//! _ -template <class T> -struct MDC_Info : public FixedBlockSize<T::DIGESTSIZE>, public FixedKeyLength<T::BLOCKSIZE> -{ - static std::string StaticAlgorithmName() {return std::string("MDC/")+T::StaticAlgorithmName();} -}; - -//! <a href="http://www.weidai.com/scan-mirror/cs.html#MDC">MDC</a> -/*! a construction by Peter Gutmann to turn an iterated hash function into a PRF */ -template <class T> -class MDC : public MDC_Info<T> -{ - class CRYPTOPP_NO_VTABLE Enc : public BlockCipherImpl<MDC_Info<T> > - { - typedef typename T::HashWordType HashWordType; - - public: - void UncheckedSetKey(const byte *userKey, unsigned int length, const NameValuePairs ¶ms) - { - this->AssertValidKeyLength(length); - memcpy_s(m_key, m_key.size(), userKey, this->KEYLENGTH); - T::CorrectEndianess(Key(), Key(), this->KEYLENGTH); - } - - void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const - { - T::CorrectEndianess(Buffer(), (HashWordType *)inBlock, this->BLOCKSIZE); - T::Transform(Buffer(), Key()); - if (xorBlock) - { - T::CorrectEndianess(Buffer(), Buffer(), this->BLOCKSIZE); - xorbuf(outBlock, xorBlock, m_buffer, this->BLOCKSIZE); - } - else - T::CorrectEndianess((HashWordType *)outBlock, Buffer(), this->BLOCKSIZE); - } - - bool IsPermutation() const {return false;} - - unsigned int OptimalDataAlignment() const {return sizeof(HashWordType);} - - private: - HashWordType *Key() {return (HashWordType *)m_key.data();} - const HashWordType *Key() const {return (const HashWordType *)m_key.data();} - HashWordType *Buffer() const {return (HashWordType *)m_buffer.data();} - - // VC60 workaround: bug triggered if using FixedSizeAllocatorWithCleanup - FixedSizeSecBlock<byte, MDC_Info<T>::KEYLENGTH, AllocatorWithCleanup<byte> > m_key; - mutable FixedSizeSecBlock<byte, MDC_Info<T>::BLOCKSIZE, AllocatorWithCleanup<byte> > m_buffer; - }; - -public: - //! use BlockCipher interface - typedef BlockCipherFinal<ENCRYPTION, Enc> Encryption; -}; - -NAMESPACE_END - -#endif |