From c0115a43369a9489bb2abe98119af86911ca0710 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 30 Oct 2021 09:04:46 -0400 Subject: simplify AnonymousAccessCommand cleaned up "authline_to_sshfp" function. --- EndoForge/src/AnonymousAccessCommand | 49 ++++++++++++++---------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/EndoForge/src/AnonymousAccessCommand b/EndoForge/src/AnonymousAccessCommand index 082f185..e000811 100755 --- a/EndoForge/src/AnonymousAccessCommand +++ b/EndoForge/src/AnonymousAccessCommand @@ -1,7 +1,7 @@ #!/bin/sh default_msg() { - sshfpline="$(get_sshfp_authline ${SSH_CLIENT%% *})" + sshfpline="$(authline_to_sshfp "$authline" "${SSH_CLIENT%% *}")" cat <&2 You are: @@ -26,42 +26,31 @@ Error: access denied. The specified directory is not a self-forge. EOF } -get_sshfp_authline() +authline_to_sshfp() { ( - r=${1:-.} - key=$(mktemp) || exit - trap 'rm -rf "$key"' EXIT - echo "$authline" > "$key" - get_sshfp "$key" "$r" - ) -} - -get_sshfp() -{ - ( - key="$1" - r="${2:-.}" - dns=$(mktemp) || exit - trap 'rm -rf "$dns"' EXIT - - ssh-keygen -r "$r" -f "$key" > "$dns" - exec < "$dns" - while read line - do - set -- $line - if [ "$3 $5" = "SSHFP 2" ] - then - echo "$line" - break - fi - done + authline=$1 + dnsname=${2:-.} + + authfile=$(mktemp) || exit + trap 'rm -f "$authfile"' EXIT + echo "$authline" > "$authfile" + ssh-keygen -f "$authfile" -r "$dnsname" | + while read line + do + set -- $line + if [ "$3 $5" = "SSHFP 2" ] + then + echo "$line" + break + fi + done ) } ssh_client_fingerprint_base16() { - set -- $(get_sshfp_authline) + set -- $(authline_to_sshfp "$authline") [ "$6" ] echo $6 } -- cgit v1.2.3