next if $uidstatus eq "r";
if ($latex and not $photocount) { # call once per key
my ($shortkey) = substr $key, -8;
- system "rm $shortkey.[1-9]*.eps";
+ system "rm -f $shortkey.[1-9]*.eps";
system "gpg --photo-viewer 'gpgsigs-eps-helper $shortkey' --list-options show-photos --list-key $key > /dev/null";
$photocount = 1;
}
open MD, "gpg --with-colons --print-md sha256 $keytxt|" or warn "can't get gpg sha256\n";
my $SHA256 = <MD>;
close MD;
+open MD, "gpg --with-colons --print-md ripemd160 $keytxt|" or warn "can't get gpg ripemd160\n";
+my $RIPEMD160 = <MD>;
+close MD;
my @MD5 = split /:/, $MD5;
my @SHA1 = split /:/, $SHA1;
my @SHA256 = split /:/, $SHA256;
+my @RIPEMD160 = split /:/, $RIPEMD160;
$MD5 = $MD5[2];
$SHA1 = $SHA1[2];
$SHA256 = $SHA256[2];
+$RIPEMD160 = $RIPEMD160[2];
$MD5 =~ s/(.{16})/$1 /;
$SHA1 =~ s/(.{20})/$1 /;
$SHA256 =~ s/(.{32})/$1 /;
+$RIPEMD160 =~ s/(.{20})/$1 /;
$MD5 =~ s/([0-9A-Z]{2})/$1 /ig;
$SHA1 =~ s/([0-9A-Z]{4})/$1 /ig;
$SHA256 =~ s/([0-9A-Z]{4})/$1 /ig;
+$RIPEMD160 =~ s/([0-9A-Z]{4})/$1 /ig;
chomp $MD5;
chomp $SHA1;
chomp $SHA256;
+chomp $RIPEMD160;
my $metatxt = quotemeta($keytxt);
$MD5 =~ s/^$metatxt:\s*//;
$SHA1 =~ s/^$metatxt:\s*//;
$SHA256 =~ s/^$metatxt:\s*//;
+$RIPEMD160 =~ s/^$metatxt:\s*//;
# write out result
$key = undef;
$uid = undef;
my $line = 0;
+my $keys = 0;
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");
\usepackage[margin=2cm]{geometry}
\usepackage{alltt}
\usepackage{graphicx}
+\usepackage{grffile}
\begin{document}
\begin{alltt}
EOF
if (/^SHA256 Checksum:/ && defined $SHA256) {
s/[_[:xdigit:]][_ [:xdigit:]]+_/$SHA256/;
}
+ if (/^RIPEMD160 Checksum:/ && defined $RIPEMD160) {
+ s/[_[:xdigit:]][_ [:xdigit:]]+_/$RIPEMD160/;
+ }
+
+ if ( m/^[0-9]+\s+\[ \] Fingerprint OK/ ){
+ if ($latex) {
+ if ($keys > 0) {
+ print WRITE "\\end{samepage}\n";
+ }
+ print WRITE "\\begin{samepage}\n";
+ ++$keys;
+ }
+ print WRITE;
+ next;
+ }
+
if ( m/^pub +(?:\d+)[DR]\/([0-9A-F]{8}) [0-9]{4}-[0-9]{2}-[0-9]{2} *(.*)/ ) {
$key = $1;
$uid = $2;
if ($latex and ($uid =~ /^\[jpeg image/)) {
$photocount++;
print WRITE "\\begin{flushright}\n";
- print WRITE "\\includegraphics[height=3cm]{$key.$photocount.eps}\n";
+ print WRITE "\\includegraphics[height=3cm]{$key.$photocount}\n";
print WRITE "\\end{flushright}\n";
}
}
print WRITE;
}
+if ($latex && ($keys > 0)) {
+ print WRITE "\\end{samepage}\n";
+}
+
print WRITE "Legend:\n";
my $num_myuids = 0;
foreach my $i (0 .. @mykeys - 1) {
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.
+that uid. When the file contains C<ALGO Checksum:> lines and placeholders
+(C<__ __>), the checksum is inserted. ALGO can be set to the following algorithms:
+MD5 SHA1 SHA256 or RIPEMD160.
=head1 OPTIONS