windows-nt/Source/XPSP1/NT/ds/security/csps/cryptoflex/slbcrc/slbcrc32.h

44 lines
1.4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//------------------------------------------------------------------------
// Copyright (C) Sewell Development Corporation, 1994 - 1998.
// Web: www.sewelld.com E-mail: support@sewelld.com
//
// LICENSE: This source code was generated by CrcGen, a product of Sewell
// Development Corporation. Paid-up licensees of CrcGen are authorized to
// use this code on a site-wide basis without restriction as to
// the type of product it is incorporated in, except that it may not be
// resold as stand-alone CRC code, and the copyright notice and license
// agreement must not be removed from the code.
//------------------------------------------------------------------------
// Interface definition for 32-bit CRC (cyclic redundancy check) class:
// Polynomial: 04C11DB7
// Initial CRC register value: FFFFFFFF
// Reflected input and output: Yes
// Inverted final output: Yes
// CRC of string "123456789": CBF43926
class Crc32 {
public:
explicit
Crc32() {
m_crc = 0xFFFFFFFF;
}
explicit
Crc32(unsigned __int32 uiInitialCrc) {
m_crc = uiInitialCrc;
}
Crc32(const void* buffer, unsigned int count) {
m_crc = 0xFFFFFFFF;
Compute(buffer, count);
}
void Compute(const void* buffer, unsigned int count);
void Compute(unsigned char value);
operator unsigned __int32 () const {
return m_crc ^ 0xFFFFFFFF;
}
private:
unsigned __int32 m_crc;
};