aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-09-16 00:28:19 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-09-16 01:00:05 +0200
commit18bd0d83bec9fe636446b994553dc2fa99dd0530 (patch)
tree9b80bcff984f4c303903749ebe8c4f18c5419bcd
parentd8f683d9ca604f6a0cd04a42738e55f77a89f06e (diff)
downloadslcl-18bd0d83bec9fe636446b994553dc2fa99dd0530.tar.gz
usergen: Remove dependency against xxd(1)
xxd(1) is closely related to vim(1), might not be available under some POSIX systems.
-rw-r--r--README.md1
-rwxr-xr-xusergen20
2 files changed, 15 insertions, 6 deletions
diff --git a/README.md b/README.md
index 5d801aa..7c0d2b4 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,6 @@ to `slcl`. If required, encryption should be done before uploading e.g.: using
(provided as a `git` submodule by `slweb`).
- [`slweb`](https://gitea.privatedns.org/xavi/slweb)
(provided as a `git` submodule).
-- `xxd` (for [`usergen`](usergen) only).
- `jq` (for [`usergen`](usergen) only).
- CMake (optional).
diff --git a/usergen b/usergen
index bc29e83..0052107 100755
--- a/usergen
+++ b/usergen
@@ -7,6 +7,16 @@ usage()
echo "$0 <dir>"
}
+to_hex()
+{
+ od -An -t x1 | tr -d ' '
+}
+
+to_bin()
+{
+ sed -e 's,\([0-9a-f]\{2\}\),\\\\\\x\1,g' | xargs printf
+}
+
if [ $# != 1 ]; then
usage >&2
exit 1
@@ -44,17 +54,17 @@ echo "Quota, in MiB (leave empty for unlimited quota):" >&2
read -r QUOTA
QUOTA="$(printf '%d' "$QUOTA")"
-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' "$PWD" | to_hex)
+SALT=$(openssl rand -hex 32)
+KEY=$(openssl rand -hex 32)
+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" | to_bin | sha256sum | cut -d' ' -f1)
done
echo >&2