X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Frevoke_hostname;h=b3b8d7a330481e70acfa17d7bc88f0670221d51d;hb=80f608dfb8cd0a59609f3c98834e44f0c78fffb0;hp=5dc327f02c8a65a97e1fa4dd4dae1289bb15bc85;hpb=a2761ab6c74d9794eb1650c8249ba8bcfc6f439a;p=monkeysphere.git diff --git a/src/share/mh/revoke_hostname b/src/share/mh/revoke_hostname index 5dc327f..b3b8d7a 100644 --- a/src/share/mh/revoke_hostname +++ b/src/share/mh/revoke_hostname @@ -19,7 +19,6 @@ local userID local fingerprint local tmpuidMatch local line -local uidIndex local message local revuidCommand @@ -27,25 +26,15 @@ if [ -z "$1" ] ; then failure "You must specify a hostname to revoke." fi -echo "WARNING: There is a known bug in this function." -echo "This function has been known to occasionally revoke the wrong hostname." -echo "Please see the following bug report for more information:" -echo "https://labs.riseup.net/code/issues/show/422" -read -p "Are you sure you would like to proceed? (y/N) " OK; OK=${OK:=N} -if [ ${OK/y/Y} != 'Y' ] ; then - failure "aborting." -fi - userID="ssh://${1}" # make sure the user ID to revoke -uidIndex=$(find_host_userid) || \ +find_host_userid "$userID" || \ failure "No non-revoked user ID found matching '$userID'." if [ "$PROMPT" = "true" ] ; then - read -p "The following host key user ID will be revoked: - $userID -Are you sure you would like to revoke this user ID? (Y/n) " OK; OK=${OK:=Y} + printf "The following host key user ID will be revoked:\n %s\nAre you sure you would like to revoke this user ID? (Y/n) " "$userID" >&2 + read OK; OK=${OK:=Y} if [ "${OK/y/Y}" != 'Y' ] ; then failure "User ID not revoked." fi @@ -53,19 +42,10 @@ else log debug "revoking user ID without prompting." fi -# edit-key script command to revoke user ID -revuidCommand="$uidIndex -revuid -y -4 -Hostname removed by monkeysphere-host: $DATE - -y -save" -# end script - -# execute edit-key script -if echo "$revuidCommand" | gpg_host_edit ; then +# actually revoke: +if <"$GNUPGHOME_HOST/secring.gpg" "$SYSSHAREDIR/keytrans" revokeuserid \ + "$HOST_FINGERPRINT" "$userID" | gpg_host --import ; then + gpg_host --check-trustdb update_gpg_pub_file