Files
pumpitupdev_pumptools/src/main/util/adler32.c
T

17 lines
376 B
C

#include "util/adler32.h"
#define BASE 65521
uint32_t util_adler32_calc(uint32_t initval, const uint8_t* input, size_t length)
{
unsigned int s1 = initval & 0xffff;
unsigned int s2 = (initval >> 16) & 0xffff;
unsigned int n;
for (n = 0; n < length; n++) {
s1 = (s1 + input[n]) % BASE;
s2 = (s2 + s1) % BASE;
}
return (s2 << 16) + s1;
}