aboutsummaryrefslogtreecommitdiff
path: root/src/hash/crc.h
diff options
context:
space:
mode:
authorame <[email protected]>2024-03-27 13:34:34 -0500
committerame <[email protected]>2024-03-27 13:34:34 -0500
commita735c538144f8cc4e059d47d06093a17edd5b31c (patch)
tree11db0e99732c9851c4a2c94f3e318da1cdec7716 /src/hash/crc.h
parent28a9d801572cf69d20d1f0a12c383ca7dbae3a67 (diff)
fixed a few hashes
Diffstat (limited to 'src/hash/crc.h')
-rw-r--r--src/hash/crc.h63
1 files changed, 37 insertions, 26 deletions
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 <stdint.h>
-/**
- * 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*);