From 57d67eb910aa765df2495df9f625bfc00436014b Mon Sep 17 00:00:00 2001 From: ame Date: Wed, 27 Mar 2024 13:34:34 -0500 Subject: fixed a few hashes --- src/hash/crc.h | 63 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 26 deletions(-) (limited to 'src/hash/crc.h') diff --git a/src/hash/crc.h b/src/hash/crc.h index de61efd..b3fdbf9 100644 --- a/src/hash/crc.h +++ b/src/hash/crc.h @@ -1,33 +1,44 @@ #include "../lua.h" #include -/** - * calculates a crc of (len) bytes - * - * @param {uint8_t*} input bytes - * @param {size_t} input length - * @return {uint8_t} 8 bit checksum -*/ -uint8_t i_crc8(uint8_t*, size_t); - -/** - * calculates a crc of (len) bytes - * - * @param {uint8_t*} input bytes - * @param {size_t} input length - * @return {uint16_t} 16 bit checksum -*/ -uint16_t i_crc16(uint8_t*, size_t); - -/** - * calculates a crc of (len) bytes - * - * @param {uint8_t*} input bytes - * @param {size_t} input length - * @return {uint32_t} 32 bit checksum -*/ -uint32_t i_crc32(uint8_t*, size_t); +struct crc32_hash { + uint32_t crc; +}; + +struct crc16_hash { + uint16_t crc; +}; + +struct crc8_hash { + uint8_t crc; +}; + +uint8_t crc8(uint8_t*, size_t len); +struct crc8_hash crc8_init(); +void crc8_update(uint8_t*, size_t, struct crc8_hash*); +uint8_t crc8_final(struct crc8_hash*); + +uint16_t crc16(uint8_t*, size_t len); +struct crc16_hash crc16_init(); +void crc16_update(uint8_t*, size_t, struct crc16_hash*); +uint16_t crc16_final(struct crc16_hash*); + +uint32_t crc32(uint8_t*, size_t len); +struct crc32_hash crc32_init(); +void crc32_update(uint8_t*, size_t, struct crc32_hash*); +uint32_t crc32_final(struct crc32_hash*); int l_crc8(lua_State*); +int l_crc8_init(lua_State*); +int l_crc8_update(lua_State*); +int l_crc8_final(lua_State*); + int l_crc16(lua_State*); +int l_crc16_init(lua_State*); +int l_crc16_update(lua_State*); +int l_crc16_final(lua_State*); + int l_crc32(lua_State*); +int l_crc32_init(lua_State*); +int l_crc32_update(lua_State*); +int l_crc32_final(lua_State*); -- cgit v1.2.3