perhaps use longs instead

This commit is contained in:
DarthArgus
2015-10-27 15:39:59 -05:00
parent ca03edf052
commit 19798954b2
4 changed files with 16 additions and 19 deletions
@@ -2,14 +2,11 @@
// Author: Jeff Petersen
#include <string.h>
#include <limits.h>
#include "UdpMisc.h"
#include "UdpLogicalPacket.h"
#define LEFT_SHIFT(a, b) ((b) >= CHAR_BIT * sizeof(a)? 0 : (a) << (b))
namespace UdpLibrary
{
@@ -42,7 +39,7 @@ int UdpMisc::Random(int *seed)
return(*seed);
}
int UdpMisc::Crc32(const void *buffer, int bufferLen, int encryptValue)
long UdpMisc::Crc32(const void *buffer, int bufferLen, int encryptValue)
{
static unsigned crc32_table[256] = {
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F,
@@ -89,11 +86,11 @@ int UdpMisc::Crc32(const void *buffer, int bufferLen, int encryptValue)
0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D};
int crc = 0xffffffff;
crc = ((LEFT_SHIFT(crc, 8) & 0x00FFFFFFL)) ^ crc32_table[(crc ^ (encryptValue & 0xff)) & 0x000000FFL];
crc = ((LEFT_SHIFT(crc, 8) & 0x00FFFFFFL)) ^ crc32_table[(crc ^ ((encryptValue >> 8) & 0xff)) & 0x000000FFL];
crc = ((LEFT_SHIFT(crc, 8) & 0x00FFFFFFL)) ^ crc32_table[(crc ^ ((encryptValue >> 16) & 0xff)) & 0x000000FFL];
crc = ((LEFT_SHIFT(crc, 8) & 0x00FFFFFFL)) ^ crc32_table[(crc ^ ((encryptValue >> 24) & 0xff)) & 0x000000FFL];
long crc = 0xffffffff;
crc = ((crc >> 8) & 0x00FFFFFFL) ^ crc32_table[(crc ^ (encryptValue & 0xff)) & 0x000000FFL];
crc = ((crc >> 8) & 0x00FFFFFFL) ^ crc32_table[(crc ^ ((encryptValue >> 8) & 0xff)) & 0x000000FFL];
crc = ((crc >> 8) & 0x00FFFFFFL) ^ crc32_table[(crc ^ ((encryptValue >> 16) & 0xff)) & 0x000000FFL];
crc = ((crc >> 8) & 0x00FFFFFFL) ^ crc32_table[(crc ^ ((encryptValue >> 24) & 0xff)) & 0x000000FFL];
const udp_uchar *bufPtr = (const udp_uchar *)buffer;
const udp_uchar *endPtr = (const udp_uchar *)buffer + bufferLen;