|
|
1.1 ! root 1: /* ! 2: Copyright (c) 2008 TrueCrypt Foundation. All rights reserved. ! 3: ! 4: Governed by the TrueCrypt License 2.4 the full text of which is contained ! 5: in the file License.txt included in TrueCrypt binary and source code ! 6: distribution packages. ! 7: */ ! 8: ! 9: #ifndef TC_HEADER_Encryption_Crc32 ! 10: #define TC_HEADER_Encryption_Crc32 ! 11: ! 12: #include "Platform/Platform.h" ! 13: #include "Common/Crc.h" ! 14: ! 15: namespace TrueCrypt ! 16: { ! 17: class Crc32 ! 18: { ! 19: public: ! 20: Crc32 () : CrcValue (0xffffFFFF) { }; ! 21: virtual ~Crc32 () { }; ! 22: ! 23: uint32 Get () const { return CrcValue ^ 0xffffFFFF; } ! 24: ! 25: uint32 Process (byte data) ! 26: { ! 27: return CrcValue = crc_32_tab[(byte) (CrcValue ^ data)] ^ (CrcValue >> 8); ! 28: } ! 29: ! 30: static uint32 ProcessBuffer (const ConstBufferPtr &buffer) ! 31: { ! 32: return ::GetCrc32 (const_cast<byte *> (buffer.Get()), static_cast<int> (buffer.Size())); ! 33: } ! 34: ! 35: protected: ! 36: uint32 CrcValue; ! 37: ! 38: private: ! 39: Crc32 (const Crc32 &); ! 40: Crc32 &operator= (const Crc32 &); ! 41: }; ! 42: } ! 43: ! 44: #endif // TC_HEADER_Encryption_Crc32
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.