From 9e121882d033463c62e0e3de36289dbc858b926b Mon Sep 17 00:00:00 2001 From: Miguel Terron Date: Mon, 2 Jun 2025 16:19:01 +1200 Subject: [PATCH] PROPERLY make arguments optional in crypto.generatekeypair thanks to @pkulchenko --- tool/net/lcrypto.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tool/net/lcrypto.c b/tool/net/lcrypto.c index 1761bdd20..f5d2bced2 100644 --- a/tool/net/lcrypto.c +++ b/tool/net/lcrypto.c @@ -1110,8 +1110,12 @@ static int LuaCryptoDecrypt(lua_State *L) { } static int LuaCryptoGenerateKeyPair(lua_State *L) { - const char *key_type = luaL_optstring(L, 1, "rsa"); // Key type (e.g., "rsa", "ecdsa") - lua_remove(L, 1); // Remove the first argument (key type or cipher type) before dispatching + const char *key_type = "rsa"; // Key type (e.g., "rsa", "ecdsa") + + if (! lua_isinteger(L, 1) && ! lua_isnoneornil(L, 1)) { + key_type = luaL_checkstring(L, 1); // Get key type from first argumen + lua_remove(L, 1); // Remove the first argument (key type or cipher type) before dispatching + } if (strcasecmp(key_type, "rsa") == 0) { return LuaRSAGenerateKeyPair(L);