6#include "nuitka/prelude.h"
13#ifdef _NUITKA_USE_OWN_CRC32
14uint32_t _initCRC32(
void) {
return 0xFFFFFFFF; }
16uint32_t _updateCRC32(uint32_t crc,
unsigned char const *message, uint32_t size) {
17 for (uint32_t i = 0; i < size; i++) {
18 unsigned int c = message[i];
21 for (
int j = 7; j >= 0; j--) {
22 uint32_t mask = ((crc & 1) != 0) ? 0xFFFFFFFF : 0;
23 crc = (crc >> 1) ^ (0xEDB88320 & mask);
30uint32_t _finalizeCRC32(uint32_t crc) {
return ~crc; }
33uint32_t calcCRC32(
unsigned char const *message, uint32_t size) {
34 return _finalizeCRC32(_updateCRC32(_initCRC32(), message, size));
38#ifdef _NUITKA_USE_SYSTEM_CRC32
43#define ZEXTERN NUITKA_MAY_BE_UNUSED static
47uint32_t calcCRC32(
unsigned char const *message, uint32_t size) {
return crc32(0, message, size) & 0xFFFFFFFF; }