Unfortunately there's still a problem that I can't quite figure out.
gpg is for some reason failing to import that revocation certificate.
Could it be because gpg can't accept ascii armored certificates as
input? I'm at a loss.
if [[ -z "$1" || "$1" == '--all' ]] ; then
keys="${fprs[@]}"
- else
- for key in $keys ; do
- printf '%s\n' "${fprs[@]}" | grep "${key}$" \
- || failure "Key '$key' not found."
- done
fi
for key in $keys ; do
# create the ssh key
TMPSSH="$GNUPGHOME"/ssh_host_key_rsa_pub
- gpg --export "$id" | openpgp2ssh 2>/dev/null >"$TMPSSH"
+ if ! gpg --export "$id" 2>/dev/null \
+ | openpgp2ssh 2>/dev/null >"$TMPSSH" ; then
+ failure "Key '$id' not found."
+ fi
# get the gpg fingerprint
fingerprint=$(gpg --quiet --list-keys \
echo "### revoking ssh host key..."
# generate the revocation certificate and feed it directly to the test
# user's keyring (we're not publishing to the keyservers)
-monkeysphere-host revoke-key | gpg --import
+keyID=$(monkeysphere-host s 'https://testhost' | grep 'OpenPGP fingerprint:' | awk '{ print $3 }')
+monkeysphere-host revoke-key "$keyID" >"$TEMPDIR"/revcert
+cat "$TEMPDIR"/revcert
+<"$TEMPDIR"/revcert gpg --import
echo
echo "##################################################"
echo "### ssh connection test for failure..."