# see the Debian changelog for further changes.
my $VERSION = qq$Rev$;
+$ENV{PATH} .= ":/usr/share/signing-party";
use strict;
use warnings;
-r call gpg --recv-keys before proceeding
-f <charset> convert <keytxt> from charset
-t <charset> convert UIDs to charset in output
+--refresh regenerate UID lists on keys
+--latex generate LaTeX output including photo IDs
EOF
exit $error;
}
open SIGS, "gpg --fixed-list-mode --with-colons --list-sigs @mykeys @keys 2>/dev/null |"
or die "can't get gpg listing";
-my ($key, $uid, $sigs, $uidstatus);
+my ($key, $uid, $sigs, $photocount);
while (<SIGS>) {
if ( m/^pub:(?:.*?:){3,3}([0-9A-F]{16,16}):/ ) {
$key = $1;
print STDERR ".";
+ undef $photocount;
next;
}
if ( m/^uid:(.):(?:.*?:){7,7}(.*):/s ) {
- $uidstatus = $1;
+ my $uidstatus = $1;
$uid = $2;
$uid =~ s/\\x([0-9a-f][0-9a-f])/ chr(hex($1)) /gie;
$uid = myrecode($uid, "UTF-8", $charset);
my ($shortkey) = substr $key, -8;
# Remember non-revoked uids
- if ($uidstatus ne "r") {
- push @{$uids{$shortkey}}, $uid;
- }
-
+ next if $uidstatus eq "r";
+ push @{$uids{$shortkey}}, $uid;
next;
}
- if ( m/^uat:(.):/ ) { # uat:-::::2006-08-03::27BAEAF742BD253C2F3F03B043DC1536880193C4::1 7993:
- $uidstatus = $1;
- next if $uidstatus ne "-";
- system "gpg --photo-viewer 'convert - %k.eps' --list-options show-photos --list-key $key";
- $uid = "Photo ID";
+ if ( m/^uat:(.)::::[^:]+::([0-9A-F]+)::\d+ (\d+)/ ) { # uat:-::::2006-08-03::27BAEAF742BD253C2F3F03B043DC1536880193C4::1 7993:
+ my $uidstatus = $1;
+ # $2 is hash of attribute data
+ my $size = $3 - 19; # FIXME: find a nicer way to find out picture size
+ $uid = "[jpeg image of size $size]";
+ 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 "gpg --photo-viewer 'gpgsigs-eps-helper $shortkey' --list-options show-photos --list-key $key > /dev/null";
+ $photocount = 1;
+ }
my ($shortkey) = substr $key, -8;
push @{$uids{$shortkey}}, $uid;
next;
# next;
#}
print WRITE;
+ undef $photocount;
next;
}
if ($refresh or $latex) {
foreach $uid (@{$uids{$key}}) {
print WRITE print_tag($key, $uid) . " $uid\n";
- if ($latex and ($uid eq "Photo ID")) {
+ if ($latex and ($uid =~ /^\[jpeg image/)) {
+ $photocount++;
print WRITE "\\begin{flushright}\n";
- print WRITE "\\includegraphics[height=3cm]{$key.eps}\n";
+ print WRITE "\\includegraphics[height=3cm]{$key.$photocount.eps}\n";
print WRITE "\\end{flushright}\n";
}
}
=head1 SYNOPSIS
-B<gpgsigs> [-r] [-f I<charset>] [-t I<charset>] I<keyid>I<[>B<,>I<keyidI<[>B<,>I<...>I<]>>I<]> F<keytxt> [F<outfile>]
+B<gpgsigs> [I<options>] I<keyid>I<[>B<,>I<keyidI<[>B<,>I<...>I<]>>I<]> F<keytxt> [F<outfile>]
=head1 DESCRIPTION
=over
-=item -r
+=item B<-r>
Call I<gpg --recv-keys> before creating the output.
-=item -f I<charset>
+=item B<-f> I<charset>
Convert F<keytxt> from I<charset>. The default is ISO-8859-1.
-=item -t I<charset>
+=item B<-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 B<--refresh>
+
+Refresh the UID lists per key from gpg. Useful when UIDs were added or revoked
+since the input text was generated.
+
+=item B<--latex>
+
+Generate LaTeX output, including photo IDs. Implies B<--refresh>.
+B<Note:> This writes eps files to the current directory.
+
=item I<keyid>
Use this keyid (8 or 16 byte) for annotation. Multiple keyids can be separated