diff options
Diffstat (limited to 'hostTools/lzma/compress/CRC.h')
-rw-r--r-- | hostTools/lzma/compress/CRC.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/hostTools/lzma/compress/CRC.h b/hostTools/lzma/compress/CRC.h new file mode 100644 index 0000000..cbef4b6 --- /dev/null +++ b/hostTools/lzma/compress/CRC.h @@ -0,0 +1,27 @@ +#ifndef __COMMON_CRC_H +#define __COMMON_CRC_H + +#include "Portable.h" + +class CCRC +{ + UINT32 m_Value; +public: + static UINT32 m_Table[256]; + CCRC(): m_Value(0xFFFFFFFF){}; + void Init() { m_Value = 0xFFFFFFFF; } + void Update(const void *aData, UINT32 aSize); + UINT32 GetDigest() const { return m_Value ^ 0xFFFFFFFF; } + static UINT32 CalculateDigest(const void *aData, UINT32 aSize) + { + CCRC aCRC; + aCRC.Update(aData, aSize); + return aCRC.GetDigest(); + } + static bool VerifyDigest(UINT32 aDigest, const void *aData, UINT32 aSize) + { + return (CalculateDigest(aData, aSize) == aDigest); + } +}; + +#endif |