X-Git-Url: https://git.sthu.org/?p=pgp-tools.git;a=blobdiff_plain;f=gpg-key2ps%2Fgpg-key2ps;h=da3231c7dd8f224ac84629af26de5a3250f94018;hp=c8e58fa57cc403a61fc51331cc3020dac41a89ee;hb=e69aea6f5797cb54f3748b983ffc977958f347cc;hpb=a17369aaa3f8783c7ea3ee7425e14f7c8534df18 diff --git a/gpg-key2ps/gpg-key2ps b/gpg-key2ps/gpg-key2ps index c8e58fa..da3231c 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 Thijs Kinkhorst -# Copyright (C) 2005 Christoph Berg +# Copyright (C) 2005-2007 Thijs Kinkhorst +# Copyright (C) 2005-2008 Christoph Berg # Licenced under the GNU General Public License, # version 2 or later. # @@ -15,26 +15,28 @@ use Getopt::Long; my $version = '$Rev$'; $version =~ s/\$Rev:\s*(\d+)\s*\$/$1/; my $revokestyle = "hide"; +my $columns = 2; my $creationdate = scalar(localtime); sub version($) { my $fd = shift; - print $fd "gpg-key2ps $version - (c) 2001-2005 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->{papersize}, '-r=s' => \$opts->{revokestyle}, '--revoked-style=s' => \$opts->{revokestyle}, + '-1' => \$opts->{1}, )) { usage(\*STDERR, 1); } @@ -74,24 +77,28 @@ if ( $revokestyle !~ /^(grey|hide|note|show|strike)$/ ) { usage (\*STDERR, 1); } +if ( $opts->{1} ) { $columns = 1; } + usage(\*STDERR, 1) unless scalar @ARGV >= 1; # determine the paper size through the paperconf tool my $w; my $h; -if ( -x "/usr/bin/paperconf" ) { +if ( `which paperconf` && $? == 0 ) { $w=`paperconf -w`; $h=`paperconf -h`; chomp($w); chomp($h); } else { # Default to A4. + print STDERR "Warning: libpaper-utils is not installed, defaulting to A4.\n"; $w=596; $h=842; } # open a gpg process we'll be reading from below map { s/'/'\\''/g; } @ARGV; # quote single quotes -open(GPG, "gpg --fingerprint --with-colons '". (join "' '", @ARGV) ."' |"); +# --list-key due to #382794 +open(GPG, "gpg --list-key --with-fingerprint --with-colons '". (join "' '", @ARGV) ."' |"); sub start_postscript { # start the PostScript output @@ -117,7 +124,7 @@ 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 - s/^uid:r[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) revuid/; + 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/; + s/^sub:[^r:]*:([^:]*):([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) revsbk/) { + next if $revokestyle eq "hide"; + } $numlines++; # print this line print; @@ -247,12 +281,12 @@ print < 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, @@ -322,18 +364,34 @@ Print version and exit. =back - =head1 SEE ALSO -gpg(1) +=over + +=item gpg(1) + +GNU Privacy Guard. + +=item http://pgp-tools.alioth.debian.org/ + +The homepage of B and the other tools bundled in B. + +=item http://www.debian.org/events/materials/business-cards/ -http://pgp-tools.alioth.debian.org/ +B prints plain fingerprint slips. If you are looking for something +more stylish, look at these latex templates for business cards that also +include fingerprints. + +=back =head1 AUTHORS AND COPYRIGHT -(c) 2001 - 2005 Simon Richter +=over -(c) 2005 Thijs Kinkhorst +=item (c) 2001-2005 Simon Richter -(c) 2005 Christoph Berg +=item (c) 2005-2007 Thijs Kinkhorst +=item (c) 2005-2008 Christoph Berg + +=back