Index: signing-party-1.1.3/gpg-mailkeys/gpg-mailkeys =================================================================== --- signing-party-1.1.3.orig/gpg-mailkeys/gpg-mailkeys +++ signing-party-1.1.3/gpg-mailkeys/gpg-mailkeys @@ -58,19 +58,21 @@ if [ -z "$TEXT" ]; then Here is your signed GPG key. -Enjoy, +Regards, $NAME" fi get_local_charset FAILKEYS= +# Contains all the mail addresses for a specific key id +ADDR=`gpg --with-colons --fixed-list-mode --list-key $1 | sed -e 's/^uid:[^re][^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:<]*<[^:>]*>\):.*/@@uid@@ \1/' -e '/^@@uid@@ /!d' -e 's/([^)]*)//g' -e 's/ */ /g' -e 's/^@@uid@@ //' -e 's/.*< *//' -e 's/ *>.*//'` while [ -n "$1" ]; do + for addr in ${ADDR}; do printf "[$1] " TEMPFILE=`mktemp -t gpg2mail.XXXXXX` - ADDR=`gpg --with-colons --fixed-list-mode --list-key $1 | sed -e 's/^uid:[^re][^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:<]*<[^:>]*>\):.*/@@uid@@ \1/' -e '/^@@uid@@ /!d' -e 's/([^)]*)//g' -e 's/ */ /g' -e 's/^@@uid@@ //' | head -1` - if [ -z "$ADDR" ]; then + if [ -z "$addr" ]; then printf "(no usable user ids)\n" FAILKEYS="$FAILKEYS:$1" shift 1 @@ -79,12 +81,13 @@ while [ -n "$1" ]; do NANOTIME=`date +%s-%N` BOUNDARY="ksp-$$-boundary-$NANOTIME" - printf "$ADDR:" + printf "$addr:" if [ $FROM ]; then printf >$TEMPFILE "From: $NAME <$FROM>\n" fi + cat << EOM >> $TEMPFILE -To: $ADDR +To: $addr Subject: $SUBJECT User-Agent: gpg-mailkeys/$VERSION MIME-Version: 1.0 @@ -115,7 +118,7 @@ cat << EOM >> $TEMPFILE Content-Type: application/pgp-keys Content-Disposition: attachment; filename="$1.asc" -`gpg --armor --export $1` +`gpg --armor --export ${addr}` --$BOUNDARY-- EOM @@ -123,7 +126,8 @@ EOM /usr/sbin/sendmail -ti <$TEMPFILE rm $TEMPFILE printf " done.\n" - shift 1 + done + shift 1 done if [ -n "$FAILKEYS" ]; then