diff options
Diffstat (limited to 'src/hash')
| -rw-r--r-- | src/hash/blake.c | 4 | ||||
| -rw-r--r-- | src/hash/cityhash.c | 4 | ||||
| -rw-r--r-- | src/hash/crc.c | 4 | ||||
| -rw-r--r-- | src/hash/farmhash.c | 2 | ||||
| -rw-r--r-- | src/hash/fasthash.c | 2 | ||||
| -rw-r--r-- | src/hash/fnv.c | 8 | ||||
| -rw-r--r-- | src/hash/loselose.c | 2 | ||||
| -rw-r--r-- | src/hash/md5.c | 12 | ||||
| -rw-r--r-- | src/hash/metrohash.c | 8 | ||||
| -rw-r--r-- | src/hash/sdbm.c | 4 | ||||
| -rw-r--r-- | src/hash/sha01.c | 16 | ||||
| -rw-r--r-- | src/hash/sha2-256.c | 50 | ||||
| -rw-r--r-- | src/hash/xxh.c | 2 |
13 files changed, 72 insertions, 46 deletions
diff --git a/src/hash/blake.c b/src/hash/blake.c index b1df1f7..6fcdae9 100644 --- a/src/hash/blake.c +++ b/src/hash/blake.c @@ -210,7 +210,7 @@ void blake512(char *out, char *in, uint64_t inlen, enum blake512_v v){ } for(int i = 0; i != (v==b512?8:6); i++){ - sprintf(out, "%s%016llx",out, (hash)[i]); + sprintf(out, "%s%016lx",out, (hash)[i]); } } @@ -268,4 +268,4 @@ int l_blake384(lua_State* L){ lua_pushstring(L, digest); return 1; -}
\ No newline at end of file +} diff --git a/src/hash/cityhash.c b/src/hash/cityhash.c index f32453d..46bb1ed 100644 --- a/src/hash/cityhash.c +++ b/src/hash/cityhash.c @@ -411,7 +411,7 @@ int l_cityhash64(lua_State* L){ char digest[64]; uint64_t u = cityhash64(a, len); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } @@ -424,7 +424,7 @@ int l_cityhash128(lua_State* L){ uint64_t u1, u2; cityhash128(a, len, &u1, &u2); - sprintf(digest,"%08llx%08llx",u1, u2); + sprintf(digest,"%08lx%08lx",u1, u2); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/crc.c b/src/hash/crc.c index 7d9c41f..71047cc 100644 --- a/src/hash/crc.c +++ b/src/hash/crc.c @@ -116,8 +116,8 @@ int l_crc32_final(lua_State* L){ struct crc32_hash* a = (struct crc32_hash*)lua_touserdata(L, -1); uint32_t u = crc32_final(a); - char digest[8]; - sprintf(digest,"%08lx",u); + char digest[32]; + sprintf(digest,"%08x",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/farmhash.c b/src/hash/farmhash.c index 95047ee..e57aa4f 100644 --- a/src/hash/farmhash.c +++ b/src/hash/farmhash.c @@ -163,7 +163,7 @@ int l_farmhash64(lua_State* L){ char digest[64]; uint64_t u = farmhash64(a, len); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/fasthash.c b/src/hash/fasthash.c index 993a22a..bef892b 100644 --- a/src/hash/fasthash.c +++ b/src/hash/fasthash.c @@ -62,7 +62,7 @@ int l_fasthash64(lua_State* L){ char digest[64]; uint64_t u = fasthash64(a, len, seed); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/fnv.c b/src/hash/fnv.c index e0fc981..47af105 100644 --- a/src/hash/fnv.c +++ b/src/hash/fnv.c @@ -51,7 +51,7 @@ int l_fnv_##v##_final(lua_State* L){\ struct fnv_1_hash* a = (struct fnv_1_hash*)lua_touserdata(L, -1);\ uint64_t u = fnv_1_final(a);\ char digest[64];\ - sprintf(digest,"%16llx",u);\ + sprintf(digest,"%16lx",u);\ lua_pushstring(L, digest);\ return 1;\ } @@ -68,7 +68,7 @@ int l_fnv_0(lua_State* L){ char digest[64]; uint64_t u = fnv_1(a, len, v_0); - sprintf(digest,"%16llx",u); + sprintf(digest,"%16lx",u); lua_pushstring(L, digest); return 1; } @@ -81,7 +81,7 @@ int l_fnv_1(lua_State* L){ char digest[64]; uint64_t u = fnv_1(a, len, v_1); - sprintf(digest,"%16llx",u); + sprintf(digest,"%16lx",u); lua_pushstring(L, digest); return 1; } @@ -94,7 +94,7 @@ int l_fnv_a(lua_State* L){ char digest[64]; uint64_t u = fnv_1(a, len, v_a); - sprintf(digest,"%16llx",u); + sprintf(digest,"%16lx",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/loselose.c b/src/hash/loselose.c index 55d3fc6..737fd2c 100644 --- a/src/hash/loselose.c +++ b/src/hash/loselose.c @@ -33,7 +33,7 @@ int l_loselose_final(lua_State* L){ struct loselose_hash* a = (struct loselose_hash*)lua_touserdata(L, -1); uint64_t u = loselose_final(a); char digest[64]; - sprintf(digest,"%08x",u); + sprintf(digest,"%08lx",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/md5.c b/src/hash/md5.c index a3f0831..5806b48 100644 --- a/src/hash/md5.c +++ b/src/hash/md5.c @@ -27,6 +27,14 @@ struct md5_hash md5_init(){ return a; } + +struct md5_hash md5_init_l(lua_State* L){ + struct md5_hash a = {.a0 = 0x67452301, .b0 = 0xefcdab89, .c0 = 0x98badcfe, .d0 = 0x10325476, .total = 0, .bufflen = 0}; + a.buffer = lua_newuserdata(L, sizeof * a.buffer * bs); + memset(a.buffer, 0, bs); + return a; +} + void md5_round(struct md5_hash* hash){ uint32_t* M = (uint32_t *)(hash->buffer); @@ -116,7 +124,9 @@ void md5_final(struct md5_hash* hash, char out_stream[64]){ ((uint8_t*)&hash->d0)[0], ((uint8_t*)&hash->d0)[1], ((uint8_t*)&hash->d0)[2], ((uint8_t*)&hash->d0)[3]); } -common_hash_init_update(md5); +lua_common_hash_init_ni(md5, md5, md5_init_l(L)); +lua_common_hash_update(md5, md5); +//common_hash_init_update(md5); int l_md5_final(lua_State* L){ lua_pushstring(L, "ud"); diff --git a/src/hash/metrohash.c b/src/hash/metrohash.c index f473b95..e015ff0 100644 --- a/src/hash/metrohash.c +++ b/src/hash/metrohash.c @@ -169,7 +169,7 @@ int l_metrohash64_v1(lua_State* L){ char digest[64]; uint64_t u = metrohash64(a, len, seed, v1); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } @@ -184,7 +184,7 @@ int l_metrohash64_v2(lua_State* L){ char digest[64]; uint64_t u = metrohash64(a, len, seed, v2); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } @@ -200,7 +200,7 @@ int l_metrohash128_v1(lua_State* L){ uint64_t u1, u2; metrohash128(a, len, seed, &u1, &u2, v1); - sprintf(digest,"%016llx%016llx",u1,u2); + sprintf(digest,"%016lx%016lx",u1,u2); lua_pushstring(L, digest); return 1; } @@ -216,7 +216,7 @@ int l_metrohash128_v2(lua_State* L){ uint64_t u1, u2; metrohash128(a, len, seed, &u1, &u2, v2); - sprintf(digest,"%016llx%016llx",u1,u2); + sprintf(digest,"%016lx%016lx",u1,u2); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/sdbm.c b/src/hash/sdbm.c index bc5f0d9..6c8e437 100644 --- a/src/hash/sdbm.c +++ b/src/hash/sdbm.c @@ -32,7 +32,7 @@ int l_sdbm_final(lua_State* L){ struct sdbm_hash* a = (struct sdbm_hash*)lua_touserdata(L, -1); uint64_t u = sdbm_final(a); char digest[64]; - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } @@ -45,7 +45,7 @@ int l_sdbm(lua_State* L){ char digest[64]; uint64_t u = sdbm(a, len); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; } diff --git a/src/hash/sha01.c b/src/hash/sha01.c index 72932ff..243dd4f 100644 --- a/src/hash/sha01.c +++ b/src/hash/sha01.c @@ -23,6 +23,14 @@ struct sha01_hash sha01_init(uint8_t ver){ return a; } +struct sha01_hash sha01_init_l(uint8_t ver, lua_State* L){ + struct sha01_hash a = {.h0 = 0x67452301, .h1 = 0xEFCDAB89, .h2 = 0x98BADCFE, .h3 = 0x10325476, .h4 = 0xC3D2E1F0, + .total = 0, .bufflen = 0, .version = ver}; + a.buffer = lua_newuserdata(L, sizeof * a.buffer * bs); + memset(a.buffer, 0, bs); + return a; +} + void sha01_round(struct sha01_hash* hash){ int hat = 0; uint32_t W[80] = {0}; @@ -118,7 +126,6 @@ void sha01_final(struct sha01_hash* hash, char* out_stream){ sha01_round(hash); sprintf(out_stream,"%02x%02x%02x%02x%02x",hash->h0,hash->h1,hash->h2,hash->h3,hash->h4); - free(hash->buffer); } struct sha01_hash sha0_init(){ @@ -157,8 +164,11 @@ void sha1(uint8_t* a, size_t len, char* out_stream){ sha1_final(&aa, out_stream); } -common_hash_init_update(sha1); -common_hash_init_update(sha0); +lua_common_hash_init_ni(sha1, sha1, sha01_init_l(1, L)); +lua_common_hash_update(sha1, sha1); + +lua_common_hash_init_ni(sha0, sha0, sha01_init_l(0, L)); +lua_common_hash_update(sha0, sha0); int l_sha1_final(lua_State* L){ lua_pushstring(L, "ud"); diff --git a/src/hash/sha2-256.c b/src/hash/sha2-256.c index 972874f..99cdf64 100644 --- a/src/hash/sha2-256.c +++ b/src/hash/sha2-256.c @@ -108,6 +108,14 @@ struct sha512_hash sha512_t_init(struct iv sha_iv){ return a; } +struct sha512_hash sha512_t_init_l(struct iv sha_iv, lua_State* L){ + struct sha512_hash a = {.h0 = sha_iv.h0, .h1 = sha_iv.h1, .h2 = sha_iv.h2, .h3 = sha_iv.h3, .h4 = sha_iv.h4, .h5 = sha_iv.h5, .h6 = sha_iv.h6, .h7 = sha_iv.h7, + .total = 0, .bufflen = 0}; + a.buffer = lua_newuserdata(L, sizeof * a.buffer * bs); + memset(a.buffer, 0, bs); + return a; +} + struct sha512_hash sha512_init(){ return sha512_t_init(sha512_iv); } @@ -162,29 +170,25 @@ void _sha512_t_final(struct sha512_hash* hash){ void sha512_final(struct sha512_hash* hash, char* out_stream){ _sha512_t_final(hash); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h0); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h1); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h2); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h3); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h4); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h5); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h6); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h7); - - free(hash->buffer); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h0); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h1); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h2); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h3); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h4); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h5); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h6); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h7); } void sha384_final(struct sha512_hash* hash, char* out_stream){ _sha512_t_final(hash); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h0); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h1); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h2); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h3); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h4); - sprintf((char*)out_stream, "%s%016llx", out_stream, hash->h5); - - free(hash->buffer); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h0); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h1); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h2); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h3); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h4); + sprintf((char*)out_stream, "%s%016lx", out_stream, hash->h5); } void sha512(uint8_t* in, size_t len, char* out){ @@ -215,11 +219,12 @@ struct iv sha_iv_gen(int i){ sprintf((char*)in, "SHA-512/%i",i); struct sha512_hash a = sha512_t_init(oh); sha512_update(in, strlen((char*)in), &a); - sha512_final(&a, nh); + sha512_final(&a, (char*)nh); 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}; } -common_hash_init_update(sha512); +lua_common_hash_init_ni(sha512, sha512, sha512_t_init_l(sha512_iv, L)); +lua_common_hash_update(sha512, sha512); int l_sha512_final(lua_State* L){ lua_pushstring(L, "ud"); @@ -234,7 +239,8 @@ int l_sha512_final(lua_State* L){ return 1; } -common_hash_init_update(sha384); +lua_common_hash_init_ni(sha384, sha384, sha512_t_init_l(sha384_iv, L)); +lua_common_hash_update(sha384, sha384); int l_sha384_final(lua_State* L){ lua_pushstring(L, "ud"); @@ -256,7 +262,7 @@ int l_sha512_t_init(lua_State* L){ struct sha512_hash* a = (struct sha512_hash*)lua_newuserdata(L, sizeof * a);\ int ud = lua_gettop(L); - *a = sha512_t_init(sha_iv_gen(tt)); + *a = sha512_t_init_l(sha_iv_gen(tt), L); a->t = tt; luaI_tsetv(L, t, "ud", ud); diff --git a/src/hash/xxh.c b/src/hash/xxh.c index deb9709..24495c4 100644 --- a/src/hash/xxh.c +++ b/src/hash/xxh.c @@ -129,7 +129,7 @@ int l_xxh64(lua_State* L){ char digest[64]; uint64_t u = i_xxhash64(a, seed, len); - sprintf(digest,"%016llx",u); + sprintf(digest,"%016lx",u); lua_pushstring(L, digest); return 1; |
