tests/basic now tests for adding and revoking hostnames.
[monkeysphere.git] / src / share / mh / revoke_hostname
index 77f1f0dcc71ddb3eb82d3bc8919268baf9ae60cd..7e4d573beab3fd038330f6582a0f38182c5a904b 100644 (file)
@@ -27,15 +27,6 @@ if [ -z "$1" ] ; then
     failure "You must specify a hostname to revoke."
 fi
 
     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 user ID."
-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
 userID="ssh://${1}"
 
 # make sure the user ID to revoke
@@ -43,31 +34,19 @@ uidIndex=$(find_host_userid) || \
     failure "No non-revoked user ID found matching '$userID'."
 
 if [ "$PROMPT" = "true" ] ; then
     failure "No non-revoked user ID found matching '$userID'."
 
 if [ "$PROMPT" = "true" ] ; then
-    echo "The following host key user ID will be revoked:"
-    echo "  $userID"
-    read -p "Are you sure you would like to revoke this user ID? (y/N) " OK; OK=${OK:=N}
-    if [ ${OK/y/Y} != 'Y' ] ; then
+    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
 else
     log debug "revoking user ID without prompting."
 fi
 
        failure "User ID not revoked."
     fi
 else
     log debug "revoking user ID without prompting."
 fi
 
-# edit-key script command to revoke user ID
-revuidCommand=$(cat <<EOF
-$uidIndex
-revuid
-y
-4
-Hostname removed by monkeysphere-host: $DATE
-
-y
-save
-EOF
-    )  
-
-# 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
 
 
     update_gpg_pub_file