5 # Author: V. Alex Brennen <vab@cryptnet.net>
6 # http://www.cryptnet.net/people/vab/
9 # This script was written as part of the gpg keysigning
10 # party howto. It generates a checklist for individuals
11 # participating in a keysigning party. The keysigning
13 # http://www.cryptnet.net/fdp/crypto/gpg-party.html
17 print "\nUsage: party-table.pl <keyring> > out_file.html\n";
18 print "\nThe keyring should be the keyring where the public keys for the\n";
19 print "party participants are stored.\n\n";
23 @fps = `gpg --fingerprint --no-default-keyring --keyring $ARGV[0]`;
27 while($line = shift(@fps))
31 $key_info = substr($line,5,14);
32 ($size_type,$id) = split(/\//,$key_info);
33 $size = substr($size_type,0,4);
34 $type = substr($size_type,-1,1);
35 $owner = substr($line,31,-1);
36 $fp_line = shift(@fps);
37 ($trash,$fp) = split(/ = /,$fp_line);
39 ($fp1,$fp2) = split(/ /,$fp);
42 if($type eq "D"){$type = "DSA";}
43 elsif($type eq "R"){$type = "RSA";}
44 elsif($type eq "G"){$type = "ElG";}
60 print "<TABLE BORDER=1>\n";
61 print "<TR><TD>Key ID</TD><TD>Key Owner</TD><TD>Key Fingerprint</TD><TD>Key Size</TD><TD>Key Type</TD><TD>Key Info Matches?</TD><TD>Owner ID Matches?</TD></TR>\n";
63 foreach my $f (sort {uc($a->{owner
}) cmp uc($b->{owner
})} @parsed)
72 print "<TR><TD>$id</TD><TD>$owner</TD><TD><tt>$fp1 $fp2</tt></TD><TD>$size</TD>";
73 print "<TD>$type</TD><TD> </TD><TD> </TD></TR>\n";