# character
# FIXME: undo all escape character translation in with-colons gpg output
unescape() {
- echo "$1" | sed 's/\\x3a/:/'
+ echo "$1" | sed 's/\\x3a/:/g'
}
+# convert nasty chars into gpg-friendly form
+# FIXME: escape everything, not just colons!
+escape() {
+ echo "$1" | sed 's/:/\\x3a/g'
+}
+
+
# remove all lines with specified string from specified file
remove_line() {
local file
fi
;;
esac
- done
+ done | sort -t: -k1 -n -r
+ # NOTE: this last sort is important so that the "good" keys (key
+ # flag '0') come last. This is so that they take precedence when
+ # being processed in the key files over "bad" keys (key flag '1')
}
# process a single host in the known_host file
local tmpfile
host="$1"
+ userID="ssh://${host}"
log "processing: $host"
- userID="ssh://${host}"
-
nKeys=0
nKeysOK=0
IFS=$'\n'
- for line in $(process_user_id "ssh://${host}") ; do
+ for line in $(process_user_id "${userID}") ; do
# note that key was found
nKeys=$((nKeys+1))