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";