local Config = require('config') local config = { } local Security = { } function Security.verifyPassword(password) Config.load('os', config) return config.password and password == config.password end function Security.hasPassword() return not not config.password end function Security.getSecretKey() Config.load('os', config) if not config.secretKey then config.secretKey = math.random(100000, 999999) Config.update('os', config) end return config.secretKey end function Security.getPublicKey() local exchange = { base = 11, primeMod = 625210769 } local function modexp(base, exponent, modulo) local remainder = base for _ = 1, exponent-1 do remainder = remainder * remainder if remainder >= modulo then remainder = remainder % modulo end end return remainder end local secretKey = Security.getSecretKey() return modexp(exchange.base, secretKey, exchange.primeMod) end function Security.updatePassword(password) Config.load('os', config) config.password = password Config.update('os', config) end function Security.getPassword() Config.load('os', config) return config.password end return Security