--- /dev/null
+[[meta title="revoke-hostname function revokes wrong hostname user ID"]]
+
+It appears that the monkeysphere-server revoke-hostname function will
+occasionaly revoke the wrong hostname. I say occasionally, but it
+seems to be doing it pretty consistently for me at the moment:
+
+ servo:~ 0$ sudo monkeysphere-server n- servo.finestructure.net
+ The following host key user ID will be revoked:
+ ssh://servo.finestructure.net
+ Are you sure you would like to revoke this user ID? (y/N) y
+ gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+
+ Secret key is available.
+
+ pub 1024R/9EEAC276 created: 2008-07-10 expires: never usage: CA
+ trust: ultimate validity: ultimate
+ [ultimate] (1) ssh://localhost.localdomain
+ [ultimate] (2). ssh://servo.finestructure.net
+ [ revoked] (3) ssh://jamie.rollins
+ [ revoked] (4) asdfsdflkjsdf
+ [ revoked] (5) ssh://asdfsdlf.safsdf
+ [ revoked] (6) ssh://bar.baz
+ [ revoked] (7) ssh://foo.bar
+ [ revoked] (8) ssh://
+
+
+ pub 1024R/9EEAC276 created: 2008-07-10 expires: never usage: CA
+ trust: ultimate validity: ultimate
+ [ultimate] (1)* ssh://localhost.localdomain
+ [ultimate] (2). ssh://servo.finestructure.net
+ [ revoked] (3) ssh://jamie.rollins
+ [ revoked] (4) asdfsdflkjsdf
+ [ revoked] (5) ssh://asdfsdlf.safsdf
+ [ revoked] (6) ssh://bar.baz
+ [ revoked] (7) ssh://foo.bar
+ [ revoked] (8) ssh://
+
+ Please select the reason for the revocation:
+ 0 = No reason specified
+ 4 = User ID is no longer valid
+ Q = Cancel
+ (Probably you want to select 4 here)
+ Enter an optional description; end it with an empty line:
+ Reason for revocation: User ID is no longer valid
+ Hostname removed by monkeysphere-server 2008-08-16T17:34:02
+
+ pub 1024R/9EEAC276 created: 2008-07-10 expires: never usage: CA
+ trust: ultimate validity: ultimate
+ [ revoked] (1) ssh://localhost.localdomain
+ [ultimate] (2). ssh://servo.finestructure.net
+ [ revoked] (3) ssh://jamie.rollins
+ [ revoked] (4) asdfsdflkjsdf
+ [ revoked] (5) ssh://asdfsdlf.safsdf
+ [ revoked] (6) ssh://bar.baz
+ [ revoked] (7) ssh://foo.bar
+ [ revoked] (8) ssh://
+
+ gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
+ gpg: depth: 0 valid: 1 signed: 2 trust: 0-, 0q, 0n, 0m, 0f, 1u
+ gpg: depth: 1 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 2f, 0u
+ gpg: next trustdb check due at 2012-01-07
+ sec 1024R/9EEAC276 2008-07-10
+ Key fingerprint = C094 43E0 6882 8BE2 E9AD 516C 45CF 974D 9EEA C276
+ uid ssh://servo.finestructure.net
+ uid [ revoked] ssh://localhost.localdomain
+ uid [ revoked] ssh://jamie.rollins
+ uid [ revoked] asdfsdflkjsdf
+ uid [ revoked] ssh://asdfsdlf.safsdf
+ uid [ revoked] ssh://bar.baz
+ uid [ revoked] ssh://foo.bar
+ uid [ revoked] ssh://
+
+ NOTE: User ID revoked, but revokation not published.
+ Run 'monkeysphere-server publish-key' to publish the revocation.
+ servo:~ 0$
+
+Clearly this is unacceptable. Because of more inadequacies in gpg,
+you can't specify a uid to revoke from the command line. The uid
+revokation requires an edit-key script, which we have used before, but
+you have to specify by "number" which uid to revoke. We currently try
+to guess the number from the ordering of the output of list-key. This
+however is not always accurate. I don't have a good solution for a
+fix at the moment. Suggestions are most welcome. It may just require
+some trial and error with edit-key to come up with something workable.
+
+This underlines the problem that gpg sucks ass as a tool for
+manipulating gpg keyrings non-interactively. This is a big problem.
+We need something better that we can use. I would gladly rewrite
+everything if there was a better tool out there, but I don't know of
+one.
+
+-- Big Jimmy.