/* SPDX-License-Identifier: MIT */ // original code: https://github.com/Erriez/ErriezCRC32/ (MIT License) #include "crc32.h" uint32_t crc32(uint8_t *buf, int len) { uint32_t crc, mask; int i, j; crc = ~0; for (i = 0; i < len; i++) { crc ^= *buf++; for (j = 7; j >= 0; j--) { mask = -(crc & 1); crc = (crc >> 1) ^ (0xedb88320 & mask); } } return ~crc; }