aboutsummaryrefslogtreecommitdiff
path: root/src/hash/buzhash.c
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/buzhash.c
parent28a9d801572cf69d20d1f0a12c383ca7dbae3a67 (diff)
fixed a few hashes
Diffstat (limited to 'src/hash/buzhash.c')
-rw-r--r--src/hash/buzhash.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/hash/buzhash.c b/src/hash/buzhash.c
index 9e1b560..ec2705d 100644
--- a/src/hash/buzhash.c
+++ b/src/hash/buzhash.c
@@ -19,28 +19,20 @@ static uint8_t T[256] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,
252,253,254,255};
-uint8_t i_lr8(uint8_t y, uint8_t offset){
- return ( y << offset ) | ( y >> (8 - offset));
-}
-
-uint16_t i_lr16(uint16_t y, uint16_t offset){
- return ( y << offset ) | ( y >> (16 - offset));
-}
-
-uint8_t i_buzhash8(uint8_t* in, size_t len){
+uint8_t buzhash8(uint8_t* in, size_t len){
uint8_t hash = 0;
for(int i = 0; i != len; i++){
- hash ^= i_lr8(T[(uint8_t)in[i]],len - (i + 1));
+ hash ^= rotl8(T[(uint8_t)in[i]],len - (i + 1));
}
return hash;
}
-uint16_t i_buzhash16(uint8_t* in, size_t len){
+uint16_t buzhash16(uint8_t* in, size_t len){
uint16_t hash = 0;
for(int i = 0; i != len; i++){
- hash ^= i_lr16(T[(uint8_t)in[i]],len - (i + 1));
+ hash ^= rotl16(T[(uint8_t)in[i]],len - (i + 1));
}
return hash;
@@ -72,7 +64,7 @@ int l_buzhash8(lua_State* L){
uint8_t* a = (uint8_t*)luaL_checklstring(L, 1, &len);
char digest[3];
- uint8_t u = i_buzhash8(a, len);
+ uint8_t u = buzhash8(a, len);
sprintf(digest,"%x",u);
@@ -86,7 +78,7 @@ int l_buzhash16(lua_State* L){
uint8_t* a = (uint8_t*)luaL_checklstring(L, 1, &len);
char digest[6];
- uint16_t u = i_buzhash16(a, len);
+ uint16_t u = buzhash16(a, len);
sprintf(digest,"%04x",u);