X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=gpg-key2ps%2Fgpg-key2ps;h=e73d9a6d17d3e21d89ae45b9cbe325338ed0991e;hb=ee693ab81febe14a8e81da19b016a47a8761b083;hp=ed54cc89e7c9a670f2c4d9c77efff42557176bcc;hpb=fad87d1aa4eaf68b3f2d038736593891188f3d3d;p=pgp-tools.git diff --git a/gpg-key2ps/gpg-key2ps b/gpg-key2ps/gpg-key2ps index ed54cc8..e73d9a6 100755 --- a/gpg-key2ps/gpg-key2ps +++ b/gpg-key2ps/gpg-key2ps @@ -2,8 +2,8 @@ # # gpg-key2ps: convert a PGP/GnuPG key into paper slips. # Copyright (C) 2001-2005 Simon Richter -# Copyright (C) 2005-2007 Thijs Kinkhorst -# Copyright (C) 2005-2007 Christoph Berg +# Copyright (C) 2005-2008 Thijs Kinkhorst +# Copyright (C) 2005-2008 Christoph Berg # Licenced under the GNU General Public License, # version 2 or later. # @@ -14,24 +14,26 @@ use Getopt::Long; my $version = '$Rev$'; $version =~ s/\$Rev:\s*(\d+)\s*\$/$1/; +my $showsubkeys = 0; my $revokestyle = "hide"; my $columns = 2; my $creationdate = scalar(localtime); sub version($) { my $fd = shift; - print $fd "gpg-key2ps $version - (c) 2001-2007 Simon Richter, Thijs Kinkhorst, Christoph Berg\n"; + print $fd "gpg-key2ps $version - (c) 2001-2008 Simon Richter, Thijs Kinkhorst, Christoph Berg\n"; } sub usage($$) { my ($fd, $exitcode) = @_; version ($fd); print $fd < \$opts->{help}, '-v' => \$opts->{version}, '--version' => \$opts->{version}, + '-s' => \$opts->{showsubkeys}, + '--show-subkeys' => \$opts->{showsubkeys}, '-p=s' => \$opts->{papersize}, '--paper-size=s' => \$opts->{papersize}, '-r=s' => \$opts->{revokestyle}, @@ -69,8 +73,9 @@ if ($opts->{version}) { exit 0; } -if ( $opts->{revokestyle} ) { $revokestyle = $opts->{revokestyle}; } if ( $opts->{papersize} ) { $ENV{'PAPERSIZE'} = $opts->{papersize}; } +if ( $opts->{showsubkeys} ) { $showsubkeys = 1; } +if ( $opts->{revokestyle} ) { $revokestyle = $opts->{revokestyle}; } if ( $revokestyle !~ /^(grey|hide|note|show|strike)$/ ) { print STDERR "Unknown revoked-style \"$revokestyle\".\n"; @@ -162,39 +167,61 @@ print <) { $_ = " ($fpr) fpr\n"; } # user ids + s/\\x([0-9a-f][0-9a-f])/ chr(hex($1)) /gie; + $_ = `echo "$_" | iconv -ct latin1`; s/^uid:[^:r]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) uid/; # revoked user id if (s/^uid:r[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) revuid/) { next if $revokestyle eq "hide"; } # subkey - s/^sub:[^:]*:([^:]*):([0-9]*):.{8,8}(.{8,8}):([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:.*/ ($4) ($3) $2 ($1) sbk/; + if (s/^sub:[^r:]*:([^:]*):([0-9]*):.{8,8}(.{8,8}):([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:.*/ ($4) ($3) $2 ($1) sbk/) { + next if ! $showsubkeys; + } + if (s/^sub:r[^:]*:([^:]*):([0-9]*):.{8,8}(.{8,8}):([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:.*/ ($4) ($3) $2 ($1) revsbk/) { + next if (!$showsubkeys) || $revokestyle eq "hide"; + } $numlines++; # print this line print; @@ -296,7 +330,7 @@ B - generates a PS file from a GnuPG keyring =head1 SYNOPSIS -B [B<-r> I] [B<-p> I] I [ I<...> ] +B [B<-r> I] [B<-p> I] [B<-1>] [B<-s>] I [ I<...> ] =head1 DESCRIPTION @@ -314,15 +348,25 @@ The PS data is written to stdout. Select the output paper size. Default is to look into /etc/papersize or A4 if libpaper isn't installed. +=item B<-s> B<--show-subkeys> + +Enable subkey information to be printed on the slips. Subkey information is +normally not relevant to the key signing process. + =item B<-r> B<--revoked-style> I -Select how to mark revoked UIDs. Five styles are available: +Select how to mark revoked UIDs and subkeys. Five styles are available: B don't show at all (default), B show normally, B display in 50% grey, B add "[revoked]", and B strike through. +=item B<-1> + +Print only one column of paper slips instead of the default two. Useful for keys +with long UIDs that otherwise won't fit. + =item I Keyids to print. Multiple can be separated by spaces. @@ -363,8 +407,8 @@ include fingerprints. =item (c) 2001-2005 Simon Richter -=item (c) 2005-2007 Thijs Kinkhorst +=item (c) 2005-2008 Thijs Kinkhorst -=item (c) 2005-2007 Christoph Berg +=item (c) 2005-2008 Christoph Berg =back