#!/bin/sh

#
# (c) Ronald Schmidt <ronsc@ronsc.de>
#     Michael Nahrath <michael@nahrath.de>
#
# http://pgp.clug.de
#
# die idee ist, den pubring von pgp.clug.de herunter zu laden, und direkt
# auf diese kopie zu arbeiten.
#
# - euer privater pubring wird nicht angefasst
# - es wird pro unterschriebener uid eine mail verschickt (verschluesselt)
#

##############################################################
# 0. ein paar deffinitionen

PUBKEY="--no-default-keyring --keyring ./keyring.gpg \
        --default-cert-check-level 3 --ask-cert-level --quiet"

##############################################################
# 1. pubring laden
#
# Das sollte besser von Hand passieren
#
# [ -f pubring.gpg.clug.de ] \
#   || wget http://pgp.clug.de/keys/pubring.gpg \
#   --output-document=pubring.gpg.clug.de
#
#
##############################################################
# 2. alle schluessel-ID's aus dem pubring herausfinden

KEYS=`gpg $PUBKEY --list-key \
   | grep "^pub" | egrep -v "CERTIFICATION ONLY" \
   | cut -d"/" -f 2 | cut -d " " -f 1 | sort`

if [ "$1" != "" ] ; then
	KEYS="$1"
fi

##############################################################
# 3. alle schluessel durcharbeiten

for KEY in $KEYS ; do

   # ---------------------------------------------------------
   # alle UID's herausfinden
   
   while gpg $PUBKEY --list-key $KEY | grep @ >/dev/null; do

      EMAIL=`gpg $PUBKEY --list-key $KEY | grep @ \
             | cut -d"<" -f 2 | cut -d ">" -f 1 | head -1`

      # ---------------------------------------------------
      # uid unterschreiben
		echo "###################################################"
		echo "$KEY von $EMAIL SIGNIEREN"

      gpg $PUBKEY \
     --edit-key $KEY uid 1 sign save
     
      # ---------------------------------------------------
      # unterschriebenen key an email schicken
		echo "###################################################"
		echo "an $EMAIL mailen"

		(
			date
			echo "Key $Key von $$EMAIL"
			echo
			echo "Dein Key ist von mir signiert."
			echo "Um die Veröffentlichung der Signatur musst du dich kümmern"
		
			gpg $PUBKEY -a --export $KEY

		) | tee -a signieren.mails.txt \
		  | gpg $PUBKEY -a -e -r $KEY \
		  | mail -s "Signatur von Key $KEY" $EMAIL

      # ---------------------------------------------------
      # uid loeschen oder abbrechen 

	   # falls nur noch eine uid uebrig ist -> abbruch
		# die kann man nicht loeschen

		COUNT=`gpg $PUBKEY --list-key $KEY | grep @ | wc -l`
		COUNT=`echo $COUNT`

		if [ $COUNT = 1 ] ; then
			break
		else
			echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
			echo "UID Löschen"
		
			gpg $PUBKEY \
				--edit-key $KEY uid 1 deluid save
			
		fi
		

   done
      
done

