#!/bin/sh

# This script either sends or receives public keys to (or from) all the
# OpenPGP keyservers.  Name it either 'recv-keys' or 'send-keys' and use a
# hard link to the other name.

# Call it thusly:  'recv-keys <key id> [<key id> ...]

prog=`basename $0` >& /dev/null
echo $prog

# Thanks to <http://keyserver.kjsl.com/~jharris/keyserver.html> for some of the hosts.
for ip in `( for server in \
	     adler.dlrg.de \
	     belgium.keyserver.net \
	     ds.carnet.hr \
	     gnv.us.ks.cryptnet.net \
	     keys.iif.hu \
	     keys.pgpi.net \
	     keyserver.kjsl.com \
	     keyserver.linux.it \
	     keyserver.topnet.de \
	     minf.vub.ac.be \
	     ms.pgp.cz \
	     palunko.srce.hr \
	     pgp.dtype.org \
	     pgp.escomposlinux.org \
	     pgp.loxinfo.co.th \
	     pgp.lsi.upc.es \
	     pgp.mit.edu \
	     pgp.ndlug.nd.edu \
	     pgp.nic.ad.jp \
	     pgp.rasip.fer.hr \
	     pgp.rediris.es \
	     pgp.surfnet.nl \
	     pgp.uk.demon.net \
	     pgp.uni-mainz.de \
	     pgp.zdv.uni-mainz.de \
	     pgpkeys.mit.edu \
	     pgpkeys.tuwien.ac.at \
	     pks.pgp.cz \
	     stinkfoot.org \
	     the.earth.li \
	     www.keyserver.de \
	     www.keyserver.net \
	     www.rediris.es \
	     wwwkeys.at.pgp.net \
	     wwwkeys.ch.pgp.net \
	     wwwkeys.de.pgp.net \
	     wwwkeys.es.pgp.net \
	     wwwkeys.eu.pgp.net \
	     wwwkeys.nl.pgp.net \
	     wwwkeys.pgp.net \
	     wwwkeys.uk.pgp.net \
	     wwwkeys.us.pgp.net \
	     ;
             do
               host $server | grep "	A	" | cut -d '	' -f 3
             done
           ) |
           sort -u`; do
  echo " "
  echo ------------------ $ip ------------------
  echo " "
  gpg --keyserver $ip --$prog $*
done