X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=gpg-key2ps%2Fgpg-key2ps;fp=gpg-key2ps%2Fgpg-key2ps;h=ca6244f03ffe871595445031f8177a412e2552bc;hb=11e1cae0f008f1a45dcc59ae93618711d0019e1b;hp=e1b1515324d46f5b5ad0c4a4c725d5d64281234a;hpb=ec97b4672043bbd74590e96a17564ba899658e54;p=pgp-tools.git diff --git a/gpg-key2ps/gpg-key2ps b/gpg-key2ps/gpg-key2ps index e1b1515..ca6244f 100755 --- a/gpg-key2ps/gpg-key2ps +++ b/gpg-key2ps/gpg-key2ps @@ -1,6 +1,9 @@ #!/usr/bin/perl -w # # gpg-key2ps: convert a PGP/GnuPG key into paper slips. +# Copyright (C) 2001-2005 Simon Richter and Thijs Kinkhorst +# Licenced under the GNU General Public License, +# version 2 or later. # # $Id$ @@ -18,6 +21,7 @@ if ( $#ARGV < 0 ) { exit 1; } +# fetch command line parameters my %opts; getopt('pr', \%opts); if ( $opts{r} ) { $revokestyle = $opts{'r'}; } @@ -34,6 +38,7 @@ if ( $revokestyle !~ /^(grey|hide|note|show|strike)$/ ) { exit 1; } +# determine default papersize through the paperconf tool my $w; my $h; if ( -x "/usr/bin/paperconf" ) { $w=`paperconf -w`; @@ -46,13 +51,18 @@ if ( -x "/usr/bin/paperconf" ) { $h=842; } +# check if key exists +# can't check that accurately through the 'open' call below +# so have to run gpg twice). Please supply a better way. if ( system( "gpg --fingerprint $keyids >/dev/null" ) != 0 ) { print STDERR "Key not found. Try 'gpg --list-keys'\n"; exit 1; } +# open a gpg process we'll be reading from below open(GPG, "gpg --fingerprint --with-colons $keyids |"); +# start the PostScript output print <) { + # we don't use these if ( /^(tru|uat):/ ) { next; } + # every primary uid causes an extra line because of the separator if ( /^pub:/ ) { $numlines++; } + # primary uid s/^pub:[^:]*:([^:]*):([0-9]*):.{8,8}(.{8,8}):([^:]*):[^:]*:[^:]*:[^:]*:([^:]*):[^:]*:[^:]*:.*/ ($5) ($4) ($3) $2 ($1) pub/; + # fingerprint, format it nicely with spaces if ( /^fpr:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ) { my $fpr = $1; # v4 key @@ -166,15 +183,20 @@ while() { $fpr =~ s/(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})(\w{2})/$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16/g; $_ = " ($fpr) fpr\n"; } + # user id's s/^uid:[^:r]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) uid/; s/^uid:[^:r]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) uid/; + # revoked user id s/^uid:r[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^:]*):.*/ ($1) revuid/; + # subkey s/^sub:[^:]*:([^:]*):([0-9]*):.{8,8}(.{8,8}):([^:]*):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:.*/ ($4) ($3) $2 ($1) sbk/; $numlines++; + # print this line print; } close(GPG); +# output the remaining postscript print < - generates a PS file from a GnuPG keyring + +=head1 SYNOPSIS + +B [-r I] [-p I] II<[> I I<...>I<]>>I<]> + +=head1 DESCRIPTION + +gpg-key2ps generates a PostScript file with your OpenPGP key fingerprint (repeated +as often as it fits) useful for keysigning parties. The only argument is the same +as you would pass to GPG's list-keys command, either a key-id or a (partial) name. +The PS data is written to stdout. + +=head1 OPTIONS + +=over + +=item -p I + +Select the output paper size. Default is to look into /etc/papersize or A4 if +libpaper isn't installed. + +=item -r I + +Select how to mark revoked UIDs. Five styles are available: +B (don't show at all), +B (show normally), +B (display in 50% grey), +B (add a note), and +B (strike through). + +=item I + +Keyid's to print. Multiple can be separated by spaces. + + +=back + + +=head1 SEE ALSO + +gpg(1) + +http://pgp-tools.alioth.debian.org/ + +=head1 AUTHORS AND COPYRIGHT + +(c) 2001 - 2005 Simon Richter + +(c) 2005 Thijs Kinkhorst +