31 lines
445 B
C
31 lines
445 B
C
//
|
|
// Created by bruno on 13. 7. 2026.
|
|
//
|
|
|
|
#include "crc32.h"
|
|
|
|
uint32_t calcCRC32(
|
|
const uint8_t *data,
|
|
size_t len) {
|
|
uint32_t crc = 0xffffffff;
|
|
|
|
|
|
while (len--) {
|
|
crc ^= *data++;
|
|
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
if (crc & 1)
|
|
crc =
|
|
(crc >> 1)
|
|
^ 0xedb88320;
|
|
|
|
else
|
|
crc >>= 1;
|
|
}
|
|
}
|
|
|
|
|
|
return ~crc;
|
|
}
|