aboutsummaryrefslogtreecommitdiff
path: root/src/hash/sha2-256.c
diff options
context:
space:
mode:
authorame <[email protected]>2024-04-11 19:46:15 -0500
committerame <[email protected]>2024-04-11 19:46:15 -0500
commit3c2aab1e1f048412732d34912b4665f735e93b01 (patch)
tree109c743e127edd3f6c6ad488642ed0c50063d7ba /src/hash/sha2-256.c
parent6ee160004855b492167de13c9539c46e9dcd98c7 (diff)
fix some leaks
Diffstat (limited to 'src/hash/sha2-256.c')
-rw-r--r--src/hash/sha2-256.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/hash/sha2-256.c b/src/hash/sha2-256.c
index 69029bf..6086fd7 100644
--- a/src/hash/sha2-256.c
+++ b/src/hash/sha2-256.c
@@ -211,12 +211,14 @@ void sha512(uint8_t* in, size_t len, char* out){
struct sha512_hash a = sha512_init();
sha512_update(in, len, &a);
sha512_final(&a, out);
+ free(a.buffer);
}
void sha384(uint8_t* in, size_t len, char* out){
struct sha512_hash a = sha384_init();
sha384_update(in, len, &a);
sha384_final(&a, out);
+ free(a.buffer);
}
void sha512_t(uint8_t* in, size_t len, int t, char* out){
@@ -224,7 +226,9 @@ void sha512_t(uint8_t* in, size_t len, int t, char* out){
sha512_update(in, len, &a);
sha512_final(&a, out);
out[t/4] = '\0';
+ free(a.buffer);
}
+
struct iv sha_iv_gen(int i){
struct iv oh = {.h0 = sha512_iv.h0 ^ 0xa5a5a5a5a5a5a5a5, .h1 = sha512_iv.h1 ^ 0xa5a5a5a5a5a5a5a5, .h2 = sha512_iv.h2 ^ 0xa5a5a5a5a5a5a5a5,
.h3 = sha512_iv.h3 ^ 0xa5a5a5a5a5a5a5a5, .h4 = sha512_iv.h4 ^ 0xa5a5a5a5a5a5a5a5, .h5 = sha512_iv.h5 ^ 0xa5a5a5a5a5a5a5a5,
@@ -236,6 +240,7 @@ struct iv sha_iv_gen(int i){
struct sha512_hash a = sha512_t_init(oh);
sha512_update(in, strlen((char*)in), &a);
_sha512_t_final(&a);
+ free(a.buffer);
return (struct iv){.h0 = a.h0, .h1 = a.h1, .h2 = a.h2, .h3 = a.h3, .h4 = a.h4, .h5 = a.h5, .h6 = a.h6, .h7 = a.h7};
}