From 7e6d58c143e1f3b1384ca2e798825ff3ed9469ec Mon Sep 17 00:00:00 2001 From: ame Date: Fri, 5 Apr 2024 13:12:50 -0500 Subject: fixes n stuff:3 --- src/hash/sha01.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/hash/sha01.c') diff --git a/src/hash/sha01.c b/src/hash/sha01.c index 81a19d6..72932ff 100644 --- a/src/hash/sha01.c +++ b/src/hash/sha01.c @@ -88,7 +88,7 @@ void sha01_update(uint8_t* input, size_t len, struct sha01_hash* hash){ for(; total_add >= bs;){ memcpy(hash->buffer + hash->bufflen, input + read, bs - hash->bufflen); - total_add -= bs - hash->bufflen; + total_add -= bs; hash->bufflen = 0; read += bs; sha01_round(hash); @@ -96,9 +96,9 @@ void sha01_update(uint8_t* input, size_t len, struct sha01_hash* hash){ memset(hash->buffer, 0, bs); - if(read != total_add){ - memcpy(hash->buffer, input + read, total_add - read); - hash->bufflen = total_add - read; + if(0 != total_add){ + memcpy(hash->buffer, input + read, total_add); + hash->bufflen = total_add; } } @@ -107,7 +107,9 @@ void sha01_final(struct sha01_hash* hash, char* out_stream){ if(hash->bufflen > 55) { //too large, needs another buffer + memset(hash->buffer + hash->bufflen + 1, 0, 64 - hash->bufflen); sha01_round(hash); + memset(hash->buffer, 0, 64); } size_t lhhh = 8*hash->total; @@ -182,7 +184,7 @@ int l_sha1(lua_State* L){ char digest[160]; - sha1(a, len, digest); + sha1((uint8_t*)a, len, digest); lua_pushstring(L, digest); return 1; @@ -195,7 +197,7 @@ int l_sha0(lua_State* L){ char digest[160]; - sha0(a, len, digest); + sha0((uint8_t*)a, len, digest); lua_pushstring(L, digest); return 1; -- cgit v1.2.3