aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xusergen18
1 files changed, 12 insertions, 6 deletions
diff --git a/usergen b/usergen
index 42c18fe..b0ec43f 100755
--- a/usergen
+++ b/usergen
@@ -15,7 +15,13 @@ fi
DIR=$1
echo Username: >&2
-read -r USER
+IFS= read -r USER
+
+if printf '%s' "$USER" | grep -qe '[[:space:]]'
+then
+ echo Username cannot contain whitespaces >&2
+ exit 1
+fi
DB="$DIR/db.json"
@@ -26,21 +32,21 @@ then
fi
echo Password: >&2
-read -r PWD
+IFS= read -r PWD
echo "Quota, in MiB (leave empty for unlimited quota):" >&2
read -r QUOTA
-PWD=$(printf '%s' $PWD | xxd -p | tr -d '\n')
+PWD=$(printf '%s' "$PWD" | xxd -p | tr -d '\n')
SALT=$(openssl rand 32 | xxd -p | tr -d '\n')
KEY=$(openssl rand 32 | xxd -p | tr -d '\n')
-PWD=$(printf '%s%s' $SALT $PWD)
+PWD=$(printf '%s%s' $SALT "$PWD")
ROUNDS=1000
for i in $(seq $ROUNDS)
do
printf "\r%d/$ROUNDS" $i >&2
- PWD=$(printf '%s' $PWD | xxd -p -r | sha256sum | cut -d' ' -f1)
+ PWD=$(printf '%s' "$PWD" | xxd -p -r | sha256sum | cut -d' ' -f1)
done
echo >&2
@@ -56,7 +62,7 @@ trap cleanup EXIT
jq ".users += [
{
\"name\": \"$USER\",
- \"password\": \"$PWD\",
+ \"password\": \""$PWD"\",
\"salt\": \"$SALT\",
\"key\": \"$KEY\",
\"quota\": \"$QUOTA\"