X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Fpublish_key;h=f1c17234f819477b74e272bb1c37fac493b4e6b7;hb=39d013c4d307d6a844f8dc2deabf42adc0a8a388;hp=600dfcf585d2d1122a708ea3b202bf46145db9e9;hpb=e5e41eb0651bf74398b449d81ede51086dd25167;p=monkeysphere.git diff --git a/src/share/mh/publish_key b/src/share/mh/publish_key index 600dfcf..f1c1723 100644 --- a/src/share/mh/publish_key +++ b/src/share/mh/publish_key @@ -8,19 +8,44 @@ # Jamie McClelland # Daniel Kahn Gillmor # -# They are Copyright 2008-2009, and are all released under the GPL, version 3 -# or later. +# They are Copyright 2008-2010, and are all released under the GPL, +# version 3 or later. -# publish server key to keyserver +# publish keys to keyserver publish_key() { -read -p "Really publish host key to $KEYSERVER? (y/N) " OK; OK=${OK:=N} -if [ ${OK/y/Y} != 'Y' ] ; then - failure "key not published." +local keyID="$1" +local GNUPGHOME + +if [ "$PROMPT" != "false" ] ; then + printf "Really publish key '$keyID' to $KEYSERVER? (Y/n) " >&2 + read OK; OK=${OK:=Y} + if [ "${OK/y/Y}" != 'Y' ] ; then + failure "key not published." + fi +else + log debug "publishing key '$keyID' without prompting." fi -# publish host key -gpg_sphere "--keyserver $KEYSERVER --send-keys '0x${HOST_FINGERPRINT}!'" +# create a temporary gnupg directory from which to publish the key +export GNUPGHOME=$(msmktempdir) +chmod 0700 "$GNUPGHOME" +chown "$MONKEYSPHERE_USER":"$MONKEYSPHERE_GROUP" "$GNUPGHOME" + +# trap to remove tmp dir if break +trap "rm -rf $GNUPGHOME" EXIT + +# import the key into the tmp dir +su_monkeysphere_user \ + "gpg --quiet --import" <"$HOST_KEY_FILE" + +# publish key +su_monkeysphere_user \ + "gpg --keyserver $KEYSERVER --send-keys '0x${keyID}!'" + +# remove the tmp file +trap - EXIT +rm -rf "$GNUPGHOME" }