added basic data layer functions for users

This commit is contained in:
overflowerror 2022-01-09 22:30:48 +01:00
parent 7fcc9b539f
commit 4215c2c1d9

37
data/users.sh Normal file
View file

@ -0,0 +1,37 @@
#!/bin/bash
createSalt() {
head -c 12 /dev/urandom | base64
}
hashPassword() {
password="$1"
salt="$2"
echo "$password$salt" | sha512sum | cut -d' ' -f1
}
createUser() {
username="$1"
password="$2"
salt="$(createSalt)"
password="$(hashPassword "$password" "$salt")"
echo "INSERT INTO users (username, password, salt) VALUES (
'$(escape "$username")',
'$(escape "$password")',
'$(escape "$salt")'
)" | execute
}
loginUser() {
username="$1"
password="$2"
result="$(echo "SELECT password, salt FROM users WHERE username='$(escape "$username")'" | query)"
hash="$(echo "$result" | getColumns 1)"
salt="$(echo "$result" | getColumns 2)"
password="$(hashPassword "$password" "$salt")"
test "$password" = "$hash"
return
}