summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2020-05-31 18:56:30 -0400
committerAndrew Cady <d@jerkface.net>2020-05-31 18:56:30 -0400
commit740c2c44b18bbf7be4dde0eb5622b2793fa0e774 (patch)
treea528674c4fb00f8ac74fdd50248a6da4a5dab89d
parent6d9dfd28cd3190570e2a3e4d6c057c55191df995 (diff)
switch to base32 encoded key hashes
-rwxr-xr-xbin/samizdat-ssh-uid8
-rw-r--r--control.d/depends.control3
2 files changed, 9 insertions, 2 deletions
diff --git a/bin/samizdat-ssh-uid b/bin/samizdat-ssh-uid
index 2b4b311..94d8f8c 100755
--- a/bin/samizdat-ssh-uid
+++ b/bin/samizdat-ssh-uid
@@ -2,6 +2,11 @@
2 2
3die() { echo "$0: Error: $*" >&2; exit 1; } 3die() { echo "$0: Error: $*" >&2; exit 1; }
4 4
5b16_to_b32()
6{
7 echo -n "$1" | basez -x -d | basez -j -l | tr -d =
8}
9
5[ "$SSH_USER_AUTH" ] || die "not defined: \$SSH_USER_AUTH" 10[ "$SSH_USER_AUTH" ] || die "not defined: \$SSH_USER_AUTH"
6[ -f "$SSH_USER_AUTH" ] || die "file does not exist: \$SSH_USER_AUTH=${SSH_USER_AUTH}" 11[ -f "$SSH_USER_AUTH" ] || die "file does not exist: \$SSH_USER_AUTH=${SSH_USER_AUTH}"
7 12
@@ -11,6 +16,7 @@ sed -ne 's/^publickey //p' < "${SSH_USER_AUTH}" > "${PEMFILE}" || die "could not
11 16
12SSH_CLIENT_FINGERPRINT=$(ssh-keygen -r . -f "${PEMFILE}" | sed -ne 's/^. IN SSHFP [0-9]* 2 //p') && 17SSH_CLIENT_FINGERPRINT=$(ssh-keygen -r . -f "${PEMFILE}" | sed -ne 's/^. IN SSHFP [0-9]* 2 //p') &&
13 [ "$SSH_CLIENT_FINGERPRINT" ] || die "could not determine ssh client fingerprint" 18 [ "$SSH_CLIENT_FINGERPRINT" ] || die "could not determine ssh client fingerprint"
19SSH_CLIENT_FINGERPRINT_B32=$(b16_to_b32 "$SSH_CLIENT_FINGERPRINT")
14 20
15read keytype keydata < "${PEMFILE}" || die "reading from PEMFILE=$PEMFILE" 21read keytype keydata < "${PEMFILE}" || die "reading from PEMFILE=$PEMFILE"
16case "$keytype" in 22case "$keytype" in
@@ -31,7 +37,7 @@ else
31fi 37fi
32 38
33env -i \ 39env -i \
34 SSH_CLIENT_FINGERPRINT="$SSH_CLIENT_FINGERPRINT" \ 40 SSH_CLIENT_FINGERPRINT="$SSH_CLIENT_FINGERPRINT_B32" \
35 SSH_CLIENT_KEYTYPE="$keytype" \ 41 SSH_CLIENT_KEYTYPE="$keytype" \
36 SSH_CLIENT_DOMAIN="$domain" \ 42 SSH_CLIENT_DOMAIN="$domain" \
37 SSH_CLIENT_PEMFILE="$PEMFILE" \ 43 SSH_CLIENT_PEMFILE="$PEMFILE" \
diff --git a/control.d/depends.control b/control.d/depends.control
index 710c001..f285bc1 100644
--- a/control.d/depends.control
+++ b/control.d/depends.control
@@ -1,2 +1,3 @@
1Depends: pdns-backend-sqlite3, 1Depends: basez,
2 pdns-backend-sqlite3,
2 pdns-server 3 pdns-server