From 0a1d122cb8d7ef045fef52dd3b4474547cb46e56 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Mon, 28 Sep 2020 19:42:16 +0100 Subject: [PATCH] crypto: remove toHex and toBase64 (#3300) We marked these for deprecation in favor of the functions of the same name in encoder. Let's actually make good on that. --- app/modules/crypto.c | 84 ++---------------------------------------- docs/modules/crypto.md | 44 ---------------------- 2 files changed, 4 insertions(+), 124 deletions(-) diff --git a/app/modules/crypto.c b/app/modules/crypto.c index 2d28f375..c59a65e2 100644 --- a/app/modules/crypto.c +++ b/app/modules/crypto.c @@ -44,80 +44,6 @@ static int crypto_sha1( lua_State* L ) return 1; } -#ifdef LUA_USE_MODULES_ENCODER -static int call_encoder( lua_State* L, const char *function ) { - if (lua_gettop(L) != 1) { - luaL_error(L, "%s must have one argument", function); - } - lua_getglobal(L, "encoder"); - luaL_checktype(L, -1, LUA_TTABLE); - lua_getfield(L, -1, function); - lua_insert(L, 1); //move function below the argument - lua_pop(L, 1); //and dump the encoder rotable from stack. - lua_call(L,1,1); // Normal call encoder.xxx(string) - // (errors thrown back to caller) - return 1; -} - -static int crypto_base64_encode (lua_State* L) { - platform_print_deprecation_note("crypto.toBase64", "in the next version"); - return call_encoder(L, "toBase64"); -} -static int crypto_hex_encode (lua_State* L) { - platform_print_deprecation_note("crypto.toHex", "in the next version"); - return call_encoder(L, "toHex"); -} -#else -static const char* bytes64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -/** - * encoded = crypto.toBase64(raw) - * - * Encodes raw binary string as base64 string. - */ -static int crypto_base64_encode( lua_State* L ) -{ - int len, i; - const char* msg = luaL_checklstring(L, 1, &len); - luaL_Buffer out; - - platform_print_deprecation_note("crypto.toBase64", "in the next version"); - - luaL_buffinit(L, &out); - for (i = 0; i < len; i += 3) { - int a = msg[i]; - int b = (i + 1 < len) ? msg[i + 1] : 0; - int c = (i + 2 < len) ? msg[i + 2] : 0; - luaL_addchar(&out, bytes64[a >> 2]); - luaL_addchar(&out, bytes64[((a & 3) << 4) | (b >> 4)]); - luaL_addchar(&out, (i + 1 < len) ? bytes64[((b & 15) << 2) | (c >> 6)] : 61); - luaL_addchar(&out, (i + 2 < len) ? bytes64[(c & 63)] : 61); - } - luaL_pushresult(&out); - return 1; -} - -/** - * encoded = crypto.toHex(raw) - * - * Encodes raw binary string as hex string. - */ -static int crypto_hex_encode( lua_State* L) -{ - int len, i; - const char* msg = luaL_checklstring(L, 1, &len); - luaL_Buffer out; - - platform_print_deprecation_note("crypto.toHex", "in the next version"); - - luaL_buffinit(L, &out); - for (i = 0; i < len; i++) { - luaL_addchar(&out, crypto_hexbytes[msg[i] >> 4]); - luaL_addchar(&out, crypto_hexbytes[msg[i] & 0xf]); - } - luaL_pushresult(&out); - return 1; -} -#endif /** * masked = crypto.mask(message, mask) * @@ -147,7 +73,7 @@ static inline int bad_mem (lua_State *L) { return luaL_error (L, "insufficient static inline int bad_file (lua_State *L) { return luaL_error (L, "file does not exist"); } /* rawdigest = crypto.hash("MD5", str) - * strdigest = crypto.toHex(rawdigest) + * strdigest = encoder.toHex(rawdigest) */ static int crypto_lhash (lua_State *L) { @@ -169,7 +95,7 @@ static int crypto_lhash (lua_State *L) * sha = crypto.new_hash("MD5") * sha.update("Data") * sha.update("Data2") - * strdigest = crypto.toHex(sha.finalize()) + * strdigest = encoder.toHex(sha.finalize()) */ #define WANT_HASH 0 @@ -279,7 +205,7 @@ static sint32_t vfs_read_wrap (int fd, void *ptr, size_t len) } /* rawdigest = crypto.hash("MD5", filename) - * strdigest = crypto.toHex(rawdigest) + * strdigest = encoder.toHex(rawdigest) */ static int crypto_flhash (lua_State *L) { @@ -313,7 +239,7 @@ static int crypto_flhash (lua_State *L) /* rawsignature = crypto.hmac("SHA1", str, key) - * strsignature = crypto.toHex(rawsignature) + * strsignature = encoder.toHex(rawsignature) */ static int crypto_lhmac (lua_State *L) { @@ -400,8 +326,6 @@ LROT_END(crypto_hash_map, NULL, LROT_MASK_INDEX) // Module function map LROT_BEGIN(crypto, NULL, 0) LROT_FUNCENTRY( sha1, crypto_sha1 ) - LROT_FUNCENTRY( toBase64, crypto_base64_encode ) - LROT_FUNCENTRY( toHex, crypto_hex_encode ) LROT_FUNCENTRY( mask, crypto_mask ) LROT_FUNCENTRY( hash, crypto_lhash ) LROT_FUNCENTRY( fhash, crypto_flhash ) diff --git a/docs/modules/crypto.md b/docs/modules/crypto.md index db0e0b2b..daeb98a1 100644 --- a/docs/modules/crypto.md +++ b/docs/modules/crypto.md @@ -191,47 +191,3 @@ The masked message, as a binary string. Use [`encoder.toHex()`](encoder.md#encod ```lua print(encoder.toHex(crypto.mask("some message to obscure","X0Y7"))) ``` - -## crypto.toBase64() - -Provides a Base64 representation of a (binary) Lua string. - -!!! warning - - This function is deprecated; please use instead [`encoder.toBase64()`](encoder.md#encodertobase64) - -#### Syntax -`b64 = crypto.toBase64(binary)` - -#### Parameters -`binary` input string to Base64 encode - -#### Return -A Base64 encoded string. - -#### Example -```lua -print(crypto.toBase64(crypto.hash("sha1","abc"))) -``` - -## crypto.toHex() - -Provides an ASCII hex representation of a (binary) Lua string. Each byte in the input string is represented as two hex characters in the output. - -!!! warning - - This function is deprecated; please use instead [`encoder.toHex()`](encoder.md#encodertohex) - -#### Syntax -`hexstr = crypto.toHex(binary)` - -#### Parameters -`binary` input string to get hex representation for - -#### Returns -An ASCII hex string. - -#### Example -```lua -print(crypto.toHex(crypto.hash("sha1","abc"))) -```