tests/basic now tests for adding and revoking hostnames.
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Tue, 14 Jul 2009 05:37:42 +0000 (01:37 -0400)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Tue, 14 Jul 2009 05:37:42 +0000 (01:37 -0400)
src/share/mh/revoke_hostname
tests/basic

index 44ba3122ad6b4c5543ecd913ebe7cb4816e5256f..7e4d573beab3fd038330f6582a0f38182c5a904b 100644 (file)
@@ -27,16 +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.
-This function has been known to occasionally revoke the wrong hostname.
-Please see the following bug report for more information:
-https://labs.riseup.net/code/issues/show/422" >&2
-printf "Are you sure you would like to proceed? (y/N) " >&2
-read 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
@@ -53,19 +43,10 @@ else
     log debug "revoking user ID without prompting."
 fi
 
     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
 
 
     update_gpg_pub_file
 
index b4ad0648c647497a980f4b229e9c0f9a3e2dd4b5..d83749bd6e94bb6b629e870c50870d63c53cb835 100755 (executable)
@@ -76,7 +76,7 @@ ssh_test() {
        || RETURN="$?"
 
     # kill the sshd process if it's still running
        || RETURN="$?"
 
     # kill the sshd process if it's still running
-    kill "$SSHD_PID"
+    kill "$SSHD_PID" || true
     SSHD_PID=
 
     if [ "$RETURN" = "$CODE" ] ; then
     SSHD_PID=
 
     if [ "$RETURN" = "$CODE" ] ; then
@@ -429,12 +429,31 @@ chmod o-w "$TESTHOME"/.monkeysphere.linktest
 rm "$TESTHOME"/.monkeysphere
 mv "$TESTHOME"/.monkeysphere{.bak,}
 
 rm "$TESTHOME"/.monkeysphere
 mv "$TESTHOME"/.monkeysphere{.bak,}
 
+# ensure we're back to normal:
+echo
+echo "##################################################"
+echo "### making sure we are back to normal..."
+monkeysphere-authentication update-users $(whoami)
+ssh_test
+
+echo
+echo "##################################################"
+echo "### ssh connection test with hostname 'testhost2' added..."
+monkeysphere-host add-hostname testhost2
+ssh_test
+
+echo
+echo "##################################################"
+echo "### ssh connection test for failure with 'testhost' revoked..."
+monkeysphere-host revoke-hostname testhost
+ssh_test 255
+
 # FIXME: addtest: remove admin as id-certifier and check ssh failure
 
 # FIXME: addtest: remove admin as id-certifier and check ssh failure
 
-# FIXME: addtest: add hostname on host key
-# FIXME: addtest: revoke hostname on host key and check ssh failure
+# FIXME: addtest: how do we test that set-expire makes sense after new
+# hostnames have been added?
 
 
-# addtest: revoke the host key and check ssh failure
+# FIXME: addtest: revoke the host key and check ssh failure
 
 # test to make sure things are OK after the previous tests:
 echo
 
 # test to make sure things are OK after the previous tests:
 echo