opus/sys/apis/security.lua

44 lines
981 B
Lua
Raw Normal View History

local Config = require('config')
local Util = require('util')
local ECC = require('crypto.ecc')
local Security = { }
function Security.verifyPassword(password)
local current = Security.getPassword()
return current and password == current
end
2017-11-15 05:08:42 +00:00
function Security.hasPassword()
return not not Security.getPassword()
2017-11-15 05:08:42 +00:00
end
function Security.getSecretKey()
local config = Config.load('os')
2018-01-24 22:39:38 +00:00
if not config.secretKey then
config.secretKey = ""
for _ = 1, 32 do
config.secretKey = config.secretKey .. ("%02x"):format(math.random(0, 0xFF))
end
2018-01-24 22:39:38 +00:00
Config.update('os', config)
end
return Util.hexToByteArray(config.secretKey)
end
function Security.getPublicKey()
2018-01-24 22:39:38 +00:00
local secretKey = Security.getSecretKey()
return ECC.publicKey(secretKey)
end
function Security.updatePassword(password)
local config = Config.load('os')
2018-01-24 22:39:38 +00:00
config.password = password
Config.update('os', config)
end
function Security.getPassword()
return Config.load('os').password
end
return Security