28 lines
523 B
C++
28 lines
523 B
C++
/* Copyright (C) Teemu Suutari */
|
|
|
|
#ifndef CRC32_HPP
|
|
#define CRC32_HPP
|
|
|
|
#include <cstdint>
|
|
|
|
#include "Buffer.hpp"
|
|
|
|
namespace ancient::internal
|
|
{
|
|
|
|
// The most common CRC32
|
|
|
|
uint32_t CRC32(const Buffer &buffer,size_t offset,size_t len,uint32_t accumulator);
|
|
|
|
uint32_t CRC32Byte(uint8_t ch,uint32_t accumulator) noexcept;
|
|
|
|
// Same polynomial, but in reverse...
|
|
|
|
uint32_t CRC32Rev(const Buffer &buffer,size_t offset,size_t len,uint32_t accumulator);
|
|
|
|
uint32_t CRC32RevByte(uint8_t ch,uint32_t accumulator) noexcept;
|
|
|
|
}
|
|
|
|
#endif
|