diff options
Diffstat (limited to 'src/hash/sha2xx.c')
| -rw-r--r-- | src/hash/sha2xx.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/hash/sha2xx.c b/src/hash/sha2xx.c index 1ef3f6f..c67e40d 100644 --- a/src/hash/sha2xx.c +++ b/src/hash/sha2xx.c @@ -12,10 +12,18 @@ struct sha256_hash sha256_init(){ return a; } +int sha256_free_l(lua_State* L){ + struct sha256_hash* h = lua_touserdata(L, -1); + free(h->buffer); + return 0; +} + +#define sha224_free_l sha256_free_l + struct sha256_hash sha256_init_l(lua_State* L){ struct sha256_hash a = {.h0 = 0x6a09e667, .h1 = 0xbb67ae85, .h2 = 0x3c6ef372, .h3 = 0xa54ff53a, .h4 = 0x510e527f, .h5 = 0x9b05688c, .h6 = 0x1f83d9ab, .h7 = 0x5be0cd19, .total = 0, .bufflen = 0}; - a.buffer = lua_newuserdata(L, sizeof * a.buffer * bs); + a.buffer = calloc(sizeof * a.buffer, bs); memset(a.buffer, 0, bs); return a; } |
