argon2 experiment
This commit is contained in:
parent
74a0ae5027
commit
ddad153875
@ -5,7 +5,7 @@ local constants = require("constants")
|
|||||||
|
|
||||||
local util = require("util")
|
local util = require("util")
|
||||||
|
|
||||||
local bcrypt = require("bcrypt")
|
local auth = require("lib.auth")
|
||||||
local rand = require("openssl.rand")
|
local rand = require("openssl.rand")
|
||||||
|
|
||||||
local models = require("models")
|
local models = require("models")
|
||||||
@ -14,7 +14,7 @@ local Sessions = models.Sessions
|
|||||||
local Avatars = models.Avatars
|
local Avatars = models.Avatars
|
||||||
|
|
||||||
local function authenticate_user(user, password)
|
local function authenticate_user(user, password)
|
||||||
return bcrypt.verify(password, user.password_hash)
|
return auth.verify(password, user.password_hash)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function create_session_key()
|
local function create_session_key()
|
||||||
@ -321,7 +321,7 @@ app:post("user_signup", "/signup", function(self)
|
|||||||
|
|
||||||
local new_user = Users:create({
|
local new_user = Users:create({
|
||||||
username = username,
|
username = username,
|
||||||
password_hash = bcrypt.digest(password, constants.BCRYPT_ROUNDS),
|
password_hash = auth.digest(password),
|
||||||
permission = constants.PermissionLevel.GUEST,
|
permission = constants.PermissionLevel.GUEST,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
local bcrypt = require("bcrypt")
|
local auth = require("lib.auth")
|
||||||
local models = require("models")
|
local models = require("models")
|
||||||
local constants = require("constants")
|
local constants = require("constants")
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ local function create_admin()
|
|||||||
password = password .. alphabet:sub(randi, randi)
|
password = password .. alphabet:sub(randi, randi)
|
||||||
end
|
end
|
||||||
|
|
||||||
local hash = bcrypt.digest(password, constants.BCRYPT_ROUNDS)
|
local hash = auth.digest(password)
|
||||||
|
|
||||||
models.Users:create({
|
models.Users:create({
|
||||||
username = username,
|
username = username,
|
||||||
|
16
lib/auth.lua
Normal file
16
lib/auth.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
local auth = {}
|
||||||
|
|
||||||
|
local ls = require "luasodium"
|
||||||
|
|
||||||
|
function auth.digest(password)
|
||||||
|
return ls.crypto_pwhash_str(
|
||||||
|
password,
|
||||||
|
ls.crypto_pwhash_OPSLIMIT_INTERACTIVE,
|
||||||
|
ls.crypto_pwhash_MEMLIMIT_INTERACTIVE)
|
||||||
|
end
|
||||||
|
|
||||||
|
function auth.verify(password, hash)
|
||||||
|
return ls.crypto_pwhash_str_verify(hash, password)
|
||||||
|
end
|
||||||
|
|
||||||
|
return auth
|
@ -16,7 +16,7 @@ dependencies = {
|
|||||||
"lapis == 1.16.0",
|
"lapis == 1.16.0",
|
||||||
"lsqlite3",
|
"lsqlite3",
|
||||||
"magick",
|
"magick",
|
||||||
"bcrypt",
|
"luasodium",
|
||||||
"luaossl",
|
"luaossl",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
start.sh
4
start.sh
@ -7,9 +7,9 @@ start() {
|
|||||||
first_launch() {
|
first_launch() {
|
||||||
echo "Setting up for the first time"
|
echo "Setting up for the first time"
|
||||||
touch ".first_launch.$LAPIS_ENVIRONMENT"
|
touch ".first_launch.$LAPIS_ENVIRONMENT"
|
||||||
lua5.1 schema.lua
|
luajit schema.lua
|
||||||
lapis migrate
|
lapis migrate
|
||||||
lua5.1 create_default_accounts.lua
|
luajit create_default_accounts.lua
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $# -ne 1 ]]; then
|
if [[ $# -ne 1 ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user