[Pgp-tools-commit] r40 - trunk trunk/gpgsigs web

Christoph Berg myon-guest at costa.debian.org
Sat May 21 20:59:32 UTC 2005


Author: myon-guest
Date: 2005-05-21 20:59:32 +0000 (Sat, 21 May 2005)
New Revision: 40

Added:
   trunk/gpgsigs/Makefile
   trunk/gpgsigs/gpgsigs-lt2k5-annotated.txt
   trunk/gpgsigs/gpgsigs-lt2k5.txt
Modified:
   trunk/README
   trunk/gpgsigs/gpgsigs
   web/index.php
Log:
updated gpgsigs:
 * use the user's normal keyring to find signatures
 * support for multiple user keys
 * better charset conversion
 * pod documentation
updated the web page and README


Modified: trunk/README
===================================================================
--- trunk/README	2005-05-21 20:54:24 UTC (rev 39)
+++ trunk/README	2005-05-21 20:59:32 UTC (rev 40)
@@ -1,5 +1,7 @@
 This repository is home for several projects relating to OpenPGP.
 
+* caff -- CA - fire and forget
+* gpgsigs -- annotate list of GnuPG keys with already done signatures
 
 Please note that each individual project has its own license, please consult
 the licensing information in the subdirectories.

Added: trunk/gpgsigs/Makefile
===================================================================
--- trunk/gpgsigs/Makefile	2005-05-21 20:54:24 UTC (rev 39)
+++ trunk/gpgsigs/Makefile	2005-05-21 20:59:32 UTC (rev 40)
@@ -0,0 +1,7 @@
+all: gpgsigs.1
+
+gpgsigs.1: gpgsigs
+	pod2man $< > $@
+
+clean:
+	rm -f gpgsigs.1

Modified: trunk/gpgsigs/gpgsigs
===================================================================
--- trunk/gpgsigs/gpgsigs	2005-05-21 20:54:24 UTC (rev 39)
+++ trunk/gpgsigs/gpgsigs	2005-05-21 20:59:32 UTC (rev 40)
@@ -1,67 +1,115 @@
 #!/usr/bin/perl
 
-# Copyright (c) 2004 Uli Martens <uli at youam.net>
-# Copyright (c) 2004 Peter Palfrader <peter at palfrader.org>
-# Copyright (c) 2004 Christoph Berg <cb at df7cb.de>
+# See the pod documentation at the end of this file for author,
+# copyright, and licence information.
 #
-# All rights reserved.
-# 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-#    derived from this software without specific prior written permission.
-# 
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-#
 # Depends: 
 # 	   libintl-perl (Locale::Recode)
 # 	OR libtext-iconv-perl (Text::Iconv),
 # 	OR the "recode" binary
+#
+# Changelog:
+# 0.1
+# 0.2 2005-05-14 cb:
+#   * use the user's normal keyring to find signatures
+#   * support for multiple user keys
+#   * better charset conversion
+#   * pod documentation
 
+my $VERSION = "0.2";
 
 use strict;
 use warnings;
-use File::Temp qw{tempdir};
 use English;
 use IPC::Open3;
+use Getopt::Long;
 
-my $r;
-my $i;
+
+sub version
+{
+	print STDERR <<EOF;
+gpgsigs $VERSION - http://pgp-tools.alioth.debian.org/
+  (c) 2004 Uli Martens <uli\@youam.net>
+  (c) 2004 Peter Palfrader <peter\@palfrader.org>
+  (c) 2004, 2005 Christoph Berg <cb\@df7cb.de>
+EOF
+}
+
+sub usage
+{
+	version();
+	print STDERR <<EOF;
+
+Usage: $PROGRAM_NAME [-r] [-t <charset>] <keyid> <keytxt> [<outfile>]
+
+keyid is a long or short keyid (e.g. DE7AAF6E94C09C7F or 94C09C7F)
+separate multiple keyids with ','
+-r            call gpg --recv-keys before proceeding
+-f <charset>  convert <keytxt> from charset
+-t <charset>  convert UIDs to charset in output
+EOF
+	exit shift;
+}
+
+
+my ($fromcharset, $charset, $recv_keys);
+GetOptions(
+	f => \$fromcharset,
+	t => \$charset,
+	r => \$recv_keys,
+	help => sub { usage(0); },
+	version => sub { version(); exit 0;},
+) or usage(1);
+
+
+# charset conversion
+$fromcharset ||= "ISO-8859-1";
+$charset ||= $ENV{LC_ALL} || $ENV{LC_CTYPE} || $ENV{LANG} || "ISO-8859-1";
+$charset = "ISO-8859-1" unless $charset =~ /[\.-]/;
+$charset =~ s/.*\.//;
+$charset =~ s/@.*//;
+ 
+my ($rf, $rt, $if, $it);
 if (eval "require Locale::Recode") {
-	$r = Locale::Recode->new (from => 'UTF-8',
-                             to   => 'ISO-8859-1');
+	$rf = Locale::Recode->new (from => $fromcharset, to => $charset) if $fromcharset;
+	$rt = Locale::Recode->new (from => 'UTF-8', to => $charset);
 } elsif (eval "require Text::Iconv") {
-	$i = Text::Iconv->new("UTF-8", "ISO-8859-1");
+	$if = Text::Iconv->new($fromcharset, $charset) if $fromcharset;
+	$it = Text::Iconv->new("UTF-8", $charset);
 }
 
+sub myfromrecode($) {
+	my ($text) = @_;
+	if (defined $rf) {
+		my $orig = $text;
+		$rf->recode($text);
+		return $text;
+	} elsif (defined $if) {
+		return $if->convert($text);
+	} else {
+		my $pid = open3(\*WTRFH, \*RDRFH, \*ERRFH, 'recode', "$fromcharset..$charset");
+		print WTRFH $text;
+		close WTRFH;
+		local $/ = undef;
+		my $result = <RDRFH>;
+		close RDRFH;
+		close ERRFH;
+		waitpid $pid, 0;
+		die ("'recode' failed, is it installed?\n") unless defined $result;
+		return $result;
+	}
+}
+
 sub myrecode($) {
 	my ($text) = @_;
-	if (defined $r) {
+	if (defined $rt) {
 		my $orig = $text;
-		$r->recode($text);
-#printf STDERR "perl:  $orig to $text\n";
+		$rt->recode($text);
 		return $text;
-	} elsif (defined $i) {
-		$text = $i->convert($text);
+	} elsif (defined $it) {
+		return $it->convert($text);
 	} else {
-		my $pid = open3(\*WTRFH, \*RDRFH, \*ERRFH, 'recode', 'utf8..iso8859-1');
+		my $pid = open3(\*WTRFH, \*RDRFH, \*ERRFH, 'recode', "utf8..$charset");
 		print WTRFH $text;
 		close WTRFH;
 		local $/ = undef;
@@ -69,58 +117,61 @@
 		close RDRFH;
 		close ERRFH;
 		waitpid $pid, 0;
-
 		die ("'recode' failed, is it installed?\n") unless defined $result;
-#printf STDERR "manual:  $text to $result\n";
 		return $result;
-	};
+	}
 }
 
 
-my $EXPECTED_MD5 = '90 43 B8 1B';
-
+# parse options
 my $mykey = uc(shift @ARGV);
-my $keyring = shift @ARGV;
-my $keytxt = shift @ARGV;
-my $outfile = shift @ARGV;
+my $keytxt = (shift @ARGV) || usage(1);
+my $outfile = (shift @ARGV) || '-';
 
-$keyring = 'ksp-lt2k4.asc' unless defined $keyring;
-$keytxt = 'ksp-lt2k4.txt' unless defined $keytxt;
-$outfile = 'ksp-lt2k4-annotated.txt' unless defined $outfile;
+my @mykeys = split /,/, $mykey;
+map { s/^0x//i; } @mykeys;
 
-if (!defined $mykey || scalar @ARGV || ($mykey !~ /^[0-9A-F]{16,16}$/  && $mykey !~ /^[0-9A-F]{8,8}$/)) {
-	print STDERR "Usage: $PROGRAM_NAME keyid [<keyring> [<keytxt> [<outfile]]]\n";
-	print STDERR "\n";
-	print STDERR "keyid is a long or short keyid (e.g. DE7AAF6E94C09C7F or 94C09C7F\n";
-	exit 1;
+if (!@mykeys || scalar @ARGV) {
+	usage(1);
 }
+if (!grep { /^([0-9A-F]{16,16}|[0-9A-F]{8,8})$/ } @mykeys) {
+	print STDERR "Invalid keyid given\n";
+	usage(1);
+}
 
--r $keyring or die ("$keyring does not exist\n");
 -r $keytxt or die ("$keytxt does not exist\n");
 
 
-my $sigs;
+# get list of keys in file
+my @keys;
+open (TXT, $keytxt) or die ("Cannot open $keytxt\n");
+while (<TXT>) {
+	if ( m/^pub  +(?:\d+)[DR]\/([0-9A-F]{8}) [0-9]{4}-[0-9]{2}-[0-9]{2} *(.*)/ ) {
+		push @keys, $1;
+	}
+}
+close TXT;
 
 
-my $tempdir = tempdir( "gpgsigs-XXXXX", DIR => '/tmp/', CLEANUP => 1);
-$ENV{'GNUPGHOME'} = $tempdir;
-print STDERR "Creating a temporary gnupghome and importing keys\n";
-system(qw{gpg --import}, $keyring);
+# get all known signatures
+if ($recv_keys) {
+	print STDERR "Requesting keys from keyserver\n";
+	system "gpg --recv-keys @keys";
+}
 
-print STDERR "Running --list-sigs, this will take a while\n";
-open SIGS, "gpg --fixed-list-mode --with-colons --list-sigs 2>/dev/null |"
+print STDERR "Running --list-sigs, this will take a while ";
+open SIGS, "gpg --fixed-list-mode --with-colons --list-sigs @keys 2>/dev/null |"
 	or die "can't get gpg listing";
 
-my $key;
-my $uid;
+my ($key, $uid, $sigs);
 while (<SIGS>) {
 	if ( m/^pub:(?:.*?:){3,3}([0-9A-F]{16,16}):/ ) {
 		$key = $1;
+		print STDERR ".";
 		next;
 	}
-	if ( m/^uid:(?:.*?:){8,8}(.*):/ ) {
-		$uid = $1;
-		$uid = myrecode($uid);
+	if ( m/^uid:(?:.*?:){8,8}(.*):/s ) {
+		$uid = myrecode($1);
 		next;
 	}
 	if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){3,3}(.*):.*?:/ ) {
@@ -136,6 +187,7 @@
 	warn "unknown value: '$_', key: ".(defined $key ? $key :'none')."\n";
 }	
 close SIGS;
+print STDERR "\n";
 
 for my $k ( keys %{$sigs} ) {
 	if ( $k =~ m/^[0-9A-F]{8}([0-9A-F]{8})$/ ) {
@@ -144,6 +196,7 @@
 }
 
 
+# read checksums
 open MD, "gpg --print-md md5 $keytxt|" or warn "can't get gpg md5";
 my $MD5 = <MD>;
 close MD;
@@ -157,50 +210,158 @@
 $MD5 =~ s/^$metatxt:\s*//;
 $SHA1 =~ s/^$metatxt:\s*//;
 
-if (defined $MD5) {
-	warn ("md5 of $keytxt does not begin with $EXPECTED_MD5") unless ($MD5 =~ /^$EXPECTED_MD5/);
-};
 
+# write out result
+sub print_tag
+{
+	my ($key, $uid) = @_;
+	if (! defined $sigs->{$key}->{$uid}) {
+		warn "uid '$uid' not found on key $key";
+		return;
+	}
+	my $r = '(';
+	foreach my $mykey (@mykeys) {
+		$r .= defined $sigs->{$key}->{$uid}->{$mykey} ? "S" : " ";
+	}
+	$r .= ')';
+	return $r;
+}
+
 print STDERR "Annotating $keytxt, writing into $outfile\n";
 open (TXT, $keytxt) or die ("Cannot open $keytxt\n");
 open (WRITE, '>'.$outfile) or die ("Cannot open $outfile for writing\n");
 while (<TXT>) {
-	if (/^MD5 Checksum:  __ __ __ __ __ __ __ __    __ __ __ __ __ __ __ __/ && defined $MD5) {
-		print WRITE "MD5 Checksum:  $MD5     [ ]\n";
+	$_ = myfromrecode($_);
+	if (/^MD5 Checksum:/ && defined $MD5) {
+		s/_[_ ]+_/$MD5/;
 	}
-	elsif (/^SHA1 Checksum: ____ ____ ____ ____ ____    ____ ____ ____ ____ ____/ && defined $SHA1) {
-		print WRITE "SHA1 Checksum: $SHA1   [ ]\n";
-	} else {
-		print WRITE;
-	};
-	if ( m/^([0-9]{3})  \[ \] Fingerprint OK        \[ \] ID OK$/ ) {
-		$_ = <TXT>;
-		if ( m/^pub  ( 768|1024|2048|4096)[DR]\/([0-9A-F]{8}) [0-9]{4}-[0-9]{2}-[0-9]{2} (.*)/ ) {
-			my $l2 = $_;
-			my $uid = $3;
-			my $keyid = $2;
-			if ( ! defined $sigs->{$keyid}->{$uid} ) {
-				warn "uid '$uid' not found on key $keyid";
-			};
-			print WRITE ( defined $sigs->{$keyid}->{$uid}->{$mykey} ? "(S)" : "( )" );
-			print WRITE "  $l2";
-			$_ = <TXT>;
-			print WRITE $_;
-			while (<TXT>) {
-				my $l3 = $_;
-				if ( m/^uid     (.*)$/ ) {
-					print WRITE defined $sigs->{$keyid}->{$1}
-						? ( defined $sigs->{$keyid}->{$1}->{$mykey} ? "(S)" : "( )" )
-						: "   ";
-					print WRITE "  $l3";
-				} else {
-					print WRITE "$l3";
-					last;
-				}
-			}
-		} else {
-			print WRITE "$_";
+	if (/^SHA1 Checksum:/ && defined $SHA1) {
+		s/_[_ ]+_/$SHA1/;
+	}
+	if ( m/^pub  +(?:\d+)[DR]\/([0-9A-F]{8}) [0-9]{4}-[0-9]{2}-[0-9]{2} *(.*)/ ) {
+		$key = $1;
+		$uid = $2;
+		if ($uid) { # in gpg 1.2, the first uid is here
+			print WRITE print_tag($key, $uid) . " $_";
+			next;
 		}
 	}
+	if ( m/^uid +(.*)$/ ) {
+		$uid = $1;
+		print WRITE print_tag($key, $uid) . " $_";
+		next;
+	}
+	print WRITE;
 }
-close TXT
+
+print WRITE "Legend:\n";
+foreach my $i (0 .. @mykeys - 1) {
+	print WRITE '('. ' 'x$i . 'S' . ' 'x(@mykeys-$i-1) . ") signed with $mykeys[$i]\n";
+}
+close TXT;
+
+__END__
+
+=head1 NAME
+
+B<gpgsigs> - annotate list of GnuPG keys with already done signatures
+
+=head1 SYNOPSIS
+
+B<gpgsigs> [-r] [-f I<charset>] [-t I<charset>] I<keyid> F<keytxt> [F<outfile>]
+
+=head1 DESCRIPTION
+
+B<gpgsigs> was written to assist the user in signing keys during a keysigning
+party. It takes as input a file containing keys in C<gpg --list-keys> format
+and prepends every line with a tag indicating if the user has already signed
+that uid. When the file contains C<MD5 Checksum:> or C<SHA1 Checksum:> lines
+and placeholders (C<__ __>), the checksum is inserted.
+
+=head1 OPTIONS
+
+=over
+
+=item -r
+
+Call I<gpg --recv-keys> before creating the output.
+
+=item -f I<charset>
+
+Convert F<keytxt> from I<charset>. The default is ISO-8859-1.
+
+=item -t I<charset>
+
+Convert UIDs to I<charset>. The default is derived from LC_ALL, LC_CTYPE, and
+LANG, and if all these are unset, the default is ISO-8859-1.
+
+=item I<keyid>
+
+Use this keyid (8 or 16 byte) for annotation. Multiple keyids can be separated
+by I<,>.
+
+=item F<keytxt>
+
+Read input from F<keytxt>.
+
+=item F<outfile>
+
+Write output to F<outfile>. Default is stdout.
+
+=back
+
+=head1 EXAMPLES
+
+The following key signing parties are using B<gpgsigs>:
+
+http://www.palfrader.org/ksp-lt2k4.html
+
+http://www.palfrader.org/ksp-lt2k5.html
+
+=head1 BUGS
+
+B<GnuPG> is known to change its output format quite often. This version has
+been tested with gpg 1.2.5 and gpg 1.4.1. YMMV.
+
+=head1 SEE ALSO
+
+gpg(1), caff(1).
+
+http://pgp-tools.alioth.debian.org/
+
+=head1 AUTHORS AND COPYRIGHT
+
+(c) 2004 Uli Martens <uli at youam.net>
+
+(c) 2004 Peter Palfrader <peter at palfrader.org>
+
+(c) 2004, 2005 Christoph Berg <cb at df7cb.de>
+
+=head1 LICENSE
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+3. The name of the author may not be used to endorse or promote products
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Added: trunk/gpgsigs/gpgsigs-lt2k5-annotated.txt
===================================================================
--- trunk/gpgsigs/gpgsigs-lt2k5-annotated.txt	2005-05-21 20:54:24 UTC (rev 39)
+++ trunk/gpgsigs/gpgsigs-lt2k5-annotated.txt	2005-05-21 20:59:32 UTC (rev 40)
@@ -0,0 +1,103 @@
+Saturday, June 25th, 2005;  14:00                                   Room R 2.05
+                                          Peter Palfrader <peter at palfrader.org>
+
+
+
+
+                ########  ########     ###    ######## ########
+                ##     ## ##     ##   ## ##   ##          ##
+                ##     ## ##     ##  ##   ##  ##          ##
+                ##     ## ########  ##     ## ######      ##
+                ##     ## ##   ##   ######### ##          ##
+                ##     ## ##    ##  ##     ## ##          ##
+                ########  ##     ## ##     ## ##          ##
+
+
+
+
+
+             L I N U X T A G   K E Y S I G N I N G P A R T Y
+
+                     List of Participants  (v 0.0)
+
+
+Here's what you have to do with this file:
+(1) Print this file to paper.
+(2) Compute this file's MD5 checksum and optionally also its SHA1 checksum.
+   gpg --print-md md5 ksp-lt2k5.txt   (or use md5sum)
+   gpg --print-md sha1 ksp-lt2k5.txt  (or use sha1sum)
+(3) fill in the hash values on the printout.
+(4) Bring the printout, a pen, and proof of identity to the keysigningparty (and be on time!).
+
+MD5 Checksum:  37 90 98 40 22 7D 68 90  1E B1 1C 1B FF 7C 0A 49           [ ]
+
+
+
+SHA1 Checksum: 4A01 4EC9 1043 8C39 7F5F  4CA8 FC51 AC99 16F8 2FE9         [ ]
+
+
+
+
+001  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/CD15A883 2002-09-28
+      Key fingerprint = 02DF 08F5 FD35 6BF2 7F5F  7B83 8921 B5DC CD15 A883
+(S ) uid   Alexander Schmehl (privat) <alexander at schmehl.info>
+(S ) uid   Alexander Schmehl (private) <tolimar at schmehl.info>
+(  ) uid   Alexander Schmehl (knOEpix) <alexander at knoepix.org>
+(  ) uid   Alexander Schmehl (Skolelinux) <alexander at skolelinux.de>
+(S ) uid   Alexander Schmehl (university) <schmehl at cs.uni-frankfurt.de>
+(S ) uid   Alexander Schmehl (university) <schmehl at informatik.uni-frankfurt.de>
+(S ) uid   Alexander Schmehl (unused, but read) <alexander.schmehl at schlundmail.de>
+
+002  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/00D8CD16 2002-09-28
+      Key fingerprint = 46CD D292 0692 D5A2 8F81  2E48 0717 74E0 00D8 CD16
+(SS) uid   Alexander Schmehl (university) <schmehl at cs.uni-frankfurt.de>
+(SS) uid   Alexander Schmehl (privat) <alexander at schmehl.info>
+(SS) uid   Alexander Schmehl (university) <schmehl at informatik.uni-frankfurt.de>
+
+003  [ ] Fingerprint OK        [ ] ID OK
+pub   1024R/6D8ABE71 1998-07-25
+      Key fingerprint = 09 9D 09 8F 89 52 24 12  FE C2 31 9D FE F8 5C 03
+(SS) uid   Christoph Berg <cb at df7cb.de>
+(SS) uid   Christoph Berg <cb at cs.uni-sb.de>
+
+004  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/58510B5A 2004-04-17
+      Key fingerprint = D224 C8B0 7E63 A694 6DA3  2E07 C5AF 774A 5851 0B5A
+(SS) uid   Christoph Berg <cb at df7cb.de>
+
+005  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/514B3E7C 2003-07-19
+      Key fingerprint = 34F8 7997 8BC1 03F0 9C43  F3D7 B375 3E4D 514B 3E7C
+(SS) uid   Florian Ernst <florian at uni-hd.de>
+(  ) uid   Florian Ernst <florian at debian.org>
+(SS) uid   Florian Ernst <florian_ernst at gmx.net>
+(SS) uid   Florian Ernst <fernst at ix.urz.uni-heidelberg.de>
+
+006  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/7E7B8AC9 2002-05-11
+      Key fingerprint = DF7D EB2F DB28 FD2B A9FB  FA6D 715E D6A0 7E7B 8AC9
+(SS) uid   Joerg Jaspert <joerg at debian.org>
+(SS) uid   Joerg Jaspert <joerg at ganneff.de>
+(SS) uid   Joerg Jaspert <joerg at german.ath.cx>
+(SS) uid   Joerg Jaspert <joerg at goliathbbs.dnsalias.net>
+
+007  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/94C09C7F 1999-11-10
+      Key fingerprint = 5B00 C96D 5D54 AEE1 206B  AF84 DE7A AF6E 94C0 9C7F
+(  ) uid   Peter Palfrader
+(SS) uid   Weasel <weasel at netalive.org>
+(SS) uid   Peter Palfrader <weasel at debian.org>
+(SS) uid   Peter Palfrader <peter at palfrader.org>
+(SS) uid   Peter Palfrader <ppalfrad at cosy.sbg.ac.at>
+
+008  [ ] Fingerprint OK        [ ] ID OK
+pub   4096R/C82E0039 2003-03-24
+      Key fingerprint = 25FC 1614 B8F8 7B52 FF2F  99B9 62AF 4031 C82E 0039
+(  ) uid   Peter Palfrader
+(  ) uid   Peter Palfrader <peter at palfrader.org>
+
+Legend:
+(S ) signed with 6D8ABE71
+( S) signed with 58510B5A

Added: trunk/gpgsigs/gpgsigs-lt2k5.txt
===================================================================
--- trunk/gpgsigs/gpgsigs-lt2k5.txt	2005-05-21 20:54:24 UTC (rev 39)
+++ trunk/gpgsigs/gpgsigs-lt2k5.txt	2005-05-21 20:59:32 UTC (rev 40)
@@ -0,0 +1,100 @@
+Saturday, June 25th, 2005;  14:00                                   Room R 2.05
+                                          Peter Palfrader <peter at palfrader.org>
+
+
+
+
+                ########  ########     ###    ######## ########
+                ##     ## ##     ##   ## ##   ##          ##
+                ##     ## ##     ##  ##   ##  ##          ##
+                ##     ## ########  ##     ## ######      ##
+                ##     ## ##   ##   ######### ##          ##
+                ##     ## ##    ##  ##     ## ##          ##
+                ########  ##     ## ##     ## ##          ##
+
+
+
+
+
+             L I N U X T A G   K E Y S I G N I N G P A R T Y
+
+                     List of Participants  (v 0.0)
+
+
+Here's what you have to do with this file:
+(1) Print this file to paper.
+(2) Compute this file's MD5 checksum and optionally also its SHA1 checksum.
+   gpg --print-md md5 ksp-lt2k5.txt   (or use md5sum)
+   gpg --print-md sha1 ksp-lt2k5.txt  (or use sha1sum)
+(3) fill in the hash values on the printout.
+(4) Bring the printout, a pen, and proof of identity to the keysigningparty (and be on time!).
+
+MD5 Checksum:  __ __ __ __ __ __ __ __    __ __ __ __ __ __ __ __           [ ]
+
+
+
+SHA1 Checksum: ____ ____ ____ ____ ____    ____ ____ ____ ____ ____         [ ]
+
+
+
+
+001  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/CD15A883 2002-09-28
+      Key fingerprint = 02DF 08F5 FD35 6BF2 7F5F  7B83 8921 B5DC CD15 A883
+uid   Alexander Schmehl (privat) <alexander at schmehl.info>
+uid   Alexander Schmehl (private) <tolimar at schmehl.info>
+uid   Alexander Schmehl (knOEpix) <alexander at knoepix.org>
+uid   Alexander Schmehl (Skolelinux) <alexander at skolelinux.de>
+uid   Alexander Schmehl (university) <schmehl at cs.uni-frankfurt.de>
+uid   Alexander Schmehl (university) <schmehl at informatik.uni-frankfurt.de>
+uid   Alexander Schmehl (unused, but read) <alexander.schmehl at schlundmail.de>
+
+002  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/00D8CD16 2002-09-28
+      Key fingerprint = 46CD D292 0692 D5A2 8F81  2E48 0717 74E0 00D8 CD16
+uid   Alexander Schmehl (university) <schmehl at cs.uni-frankfurt.de>
+uid   Alexander Schmehl (privat) <alexander at schmehl.info>
+uid   Alexander Schmehl (university) <schmehl at informatik.uni-frankfurt.de>
+
+003  [ ] Fingerprint OK        [ ] ID OK
+pub   1024R/6D8ABE71 1998-07-25
+      Key fingerprint = 09 9D 09 8F 89 52 24 12  FE C2 31 9D FE F8 5C 03
+uid   Christoph Berg <cb at df7cb.de>
+uid   Christoph Berg <cb at cs.uni-sb.de>
+
+004  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/58510B5A 2004-04-17
+      Key fingerprint = D224 C8B0 7E63 A694 6DA3  2E07 C5AF 774A 5851 0B5A
+uid   Christoph Berg <cb at df7cb.de>
+
+005  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/514B3E7C 2003-07-19
+      Key fingerprint = 34F8 7997 8BC1 03F0 9C43  F3D7 B375 3E4D 514B 3E7C
+uid   Florian Ernst <florian at uni-hd.de>
+uid   Florian Ernst <florian at debian.org>
+uid   Florian Ernst <florian_ernst at gmx.net>
+uid   Florian Ernst <fernst at ix.urz.uni-heidelberg.de>
+
+006  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/7E7B8AC9 2002-05-11
+      Key fingerprint = DF7D EB2F DB28 FD2B A9FB  FA6D 715E D6A0 7E7B 8AC9
+uid   Joerg Jaspert <joerg at debian.org>
+uid   Joerg Jaspert <joerg at ganneff.de>
+uid   Joerg Jaspert <joerg at german.ath.cx>
+uid   Joerg Jaspert <joerg at goliathbbs.dnsalias.net>
+
+007  [ ] Fingerprint OK        [ ] ID OK
+pub   1024D/94C09C7F 1999-11-10
+      Key fingerprint = 5B00 C96D 5D54 AEE1 206B  AF84 DE7A AF6E 94C0 9C7F
+uid   Peter Palfrader
+uid   Weasel <weasel at netalive.org>
+uid   Peter Palfrader <weasel at debian.org>
+uid   Peter Palfrader <peter at palfrader.org>
+uid   Peter Palfrader <ppalfrad at cosy.sbg.ac.at>
+
+008  [ ] Fingerprint OK        [ ] ID OK
+pub   4096R/C82E0039 2003-03-24
+      Key fingerprint = 25FC 1614 B8F8 7B52 FF2F  99B9 62AF 4031 C82E 0039
+uid   Peter Palfrader
+uid   Peter Palfrader <peter at palfrader.org>
+

Modified: web/index.php
===================================================================
--- web/index.php	2005-05-21 20:54:24 UTC (rev 39)
+++ web/index.php	2005-05-21 20:59:32 UTC (rev 40)
@@ -27,7 +27,15 @@
 email addresses - only including the one UID that we send to in each
 mail.
 
+<h2>gpgsigs  --  annotate list of GnuPG keys with already done signatures</h2>
+
 <p>
+gpgsigs was written to assist the user in signing keys during a keysigning
+party. It takes as input a file containing keys in gpg --list-keys format
+and prepends every line with a tag indicating if the user has already signed
+that uid.
+
+<p>
 Download it from the <a href="http://svn.debian.org/wsvn/pgp-tools/trunk/caff/">Repository</a>.
 
     <hr>





More information about the Pgp-tools-commit mailing list