equal
deleted
inserted
replaced
21 #include <inttypes.h> |
21 #include <inttypes.h> |
22 #endif |
22 #endif |
23 |
23 |
24 #include "lua.h" |
24 #include "lua.h" |
25 #include "lauxlib.h" |
25 #include "lauxlib.h" |
|
26 #include <openssl/crypto.h> |
26 #include <openssl/sha.h> |
27 #include <openssl/sha.h> |
27 #include <openssl/md5.h> |
28 #include <openssl/md5.h> |
28 #include <openssl/hmac.h> |
29 #include <openssl/hmac.h> |
29 #include <openssl/evp.h> |
30 #include <openssl/evp.h> |
30 |
31 |
131 |
132 |
132 lua_pushlstring(L, (char *)out, SHA256_DIGEST_LENGTH); |
133 lua_pushlstring(L, (char *)out, SHA256_DIGEST_LENGTH); |
133 return 1; |
134 return 1; |
134 } |
135 } |
135 |
136 |
|
137 static int Lhash_equals(lua_State *L) { |
|
138 size_t len1, len2; |
|
139 const char *s1 = luaL_checklstring(L, 1, &len1); |
|
140 const char *s2 = luaL_checklstring(L, 2, &len2); |
|
141 if(len1 == len2) { |
|
142 lua_pushboolean(L, CRYPTO_memcmp(s1, s2, len1) == 0); |
|
143 } else { |
|
144 lua_pushboolean(L, 0); |
|
145 } |
|
146 return 1; |
|
147 } |
|
148 |
136 static const luaL_Reg Reg[] = { |
149 static const luaL_Reg Reg[] = { |
137 { "sha1", Lsha1 }, |
150 { "sha1", Lsha1 }, |
138 { "sha224", Lsha224 }, |
151 { "sha224", Lsha224 }, |
139 { "sha256", Lsha256 }, |
152 { "sha256", Lsha256 }, |
140 { "sha384", Lsha384 }, |
153 { "sha384", Lsha384 }, |
145 { "hmac_sha512", Lhmac_sha512 }, |
158 { "hmac_sha512", Lhmac_sha512 }, |
146 { "hmac_md5", Lhmac_md5 }, |
159 { "hmac_md5", Lhmac_md5 }, |
147 { "scram_Hi_sha1", Lpbkdf2_sha1 }, /* COMPAT */ |
160 { "scram_Hi_sha1", Lpbkdf2_sha1 }, /* COMPAT */ |
148 { "pbkdf2_hmac_sha1", Lpbkdf2_sha1 }, |
161 { "pbkdf2_hmac_sha1", Lpbkdf2_sha1 }, |
149 { "pbkdf2_hmac_sha256", Lpbkdf2_sha256 }, |
162 { "pbkdf2_hmac_sha256", Lpbkdf2_sha256 }, |
|
163 { "equals", Lhash_equals }, |
150 { NULL, NULL } |
164 { NULL, NULL } |
151 }; |
165 }; |
152 |
166 |
153 LUALIB_API int luaopen_util_hashes(lua_State *L) { |
167 LUALIB_API int luaopen_util_hashes(lua_State *L) { |
154 #if (LUA_VERSION_NUM > 501) |
168 #if (LUA_VERSION_NUM > 501) |