From 7bb61d2fe0cf56dd1230ea60cf8141e0ae363ee3 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sun, 10 Oct 2021 03:56:05 -0400 Subject: improve get-host-keys more --- get-host-keys | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/get-host-keys b/get-host-keys index 90a44db..1133565 100755 --- a/get-host-keys +++ b/get-host-keys @@ -34,31 +34,27 @@ crypto_validate_hostname() local host="$1" t r t=$(mktemp) case "$host" in - *.ed25519.cryptonomic.net) - ssh-keyscan -t ed25519 "$host" 2>/dev/null | while read h keytype keydata comment - do - case "$h $keytype" in - "$host ssh-ed25519") - echo "$keytype $keydata" >> "$t" - break - ;; - esac - done ;; - *) die "unsupported hostname: $host" ;; + *.ed25519.cryptonomic.net ) ;; + * ) die "unsupported hostname: $host" ;; esac - if validated=$(to_domain_suffix "$t") - then - case "$host" in - "$validated" | *."$validated" ) - read line < "$t" - echo "$host $line" - rm -f "$t" - return 0 - ;; - esac - fi - rm -f "$t" - false + ssh-keyscan -t ed25519 "$host" 2>/dev/null | ( + while read h keytype keydata comment + do + [ "$h $keytype" = "$host ssh-ed25519" ] || continue + echo "$keytype $keydata" > "$t" + validated=$(to_domain_suffix "$t") || continue + case "$host" in + "$validated" | *."$validated" ) + read line < "$t" + echo "$host $line" + rm -f "$t" + exit 0 + ;; + esac + done + rm -f "$t" + exit 1 + ) } set -e -- cgit v1.2.3