From 56aca17c96668fe9c3f53a4f9cca2693cfb65024 Mon Sep 17 00:00:00 2001 From: XeonSquared Date: Thu, 7 Sep 2017 13:12:10 +1000 Subject: [PATCH] added a simple password protection system --- build.cfg | 1 + hashpass.lua | 9 +++++++++ modules/applications/login.lua | 14 ++++++++++++++ modules/applications/luash.lua | 4 +++- 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 hashpass.lua create mode 100644 modules/applications/login.lua diff --git a/build.cfg b/build.cfg index 3622545..95234cc 100755 --- a/build.cfg +++ b/build.cfg @@ -17,6 +17,7 @@ modules/lib/readline.lua modules/lib/shutil.lua modules/lib/sha256.lua modules/net/net-ext.lua +modules/applications/login.lua modules/applications/luash.lua modules/applications/genkernel.lua fwrap skex exec/skex2.lua diff --git a/hashpass.lua b/hashpass.lua new file mode 100644 index 0000000..7b4dc17 --- /dev/null +++ b/hashpass.lua @@ -0,0 +1,9 @@ +require "modules/lib/sha256" +pass = io.read() +salt = "" +math.randomseed(os.time()) +for i = 1, 16 do + salt = salt .. string.char(math.random(32,127)) +end +print("_G.PASS_HASH = \""..sha.sha256(pass..salt).."\"") +print("_G.PASS_SALT = \""..salt.."\"") diff --git a/modules/applications/login.lua b/modules/applications/login.lua new file mode 100644 index 0000000..d5a5ff3 --- /dev/null +++ b/modules/applications/login.lua @@ -0,0 +1,14 @@ +function login() + if _G.PASS_HASH and _G.PASS_SALT then + io.write("\f") + io.write(_G.MOTD.."\nPassword: ") + local pt = io.read() + if pt then + if sha.sha256(pt.._G.PASS_SALT) == _G.PASS_HASH then + return true + end + end + return false + end + return true +end diff --git a/modules/applications/luash.lua b/modules/applications/luash.lua index 2a21713..56bd4f2 100644 --- a/modules/applications/luash.lua +++ b/modules/applications/luash.lua @@ -1,6 +1,8 @@ function luash(si) spawn("lua shell",function() - print(MOTD) + repeat + until login() + print("\f"..MOTD) print(_VERSION) while true do write((os.getenv("PWD") or "").."> ")