X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=keylookup%2Fkeylookup;h=44fae86d1999b5a60f1f71e47e336975d2bf062e;hb=636ca24d1db03a701c646b9a70e664af93560a7e;hp=0b46a69ae234696d7c564e4b0d28fc45415fee82;hpb=96695f4d485c1c59501b73deaa8fcb0b0089c403;p=pgp-tools.git diff --git a/keylookup/keylookup b/keylookup/keylookup index 0b46a69..44fae86 100755 --- a/keylookup/keylookup +++ b/keylookup/keylookup @@ -1,7 +1,7 @@ #!/usr/bin/perl -w -# (c) 2000, 2002 Christian Kurz , -# Peter Palfrader +# Copyright (c) 2000, 2002 Christian Kurz , +# Copyright (c) 2000, 2002, 2005 Peter Palfrader # # $Id$ # @@ -19,8 +19,10 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -# Keylookup homepage: http://www.palfrader.org/keylookup/ -# CVS, BTS: http://savannah.gnu.org/projects/keylookup/ +# Keylookup is part of pgp-tools: +# http://pgp-tools.alioth.debian.org/ +# svn://svn.debian.org/pgp-tools/trunk/ +# http://svn.debian.org/wsvn/pgp-tools/trunk/ delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'}; $|=1; # Always flush buffers @@ -93,7 +95,7 @@ sub getHits($) { push @ops, '--with-colons'; push @ops, '--fixed-list-mode'; push @ops, '--search'; - push @ops, $options->{'search'}; + push @ops, @{$options->{'search'}}; exec(@ops); die ("Cannot exec GnuPG: $!\n"); }; @@ -105,13 +107,10 @@ sub getHits($) { my ($type, undef) = split /:/; if ($type eq 'pub') { my ($type, $keyid, $algo, $bits, $created, undef, $revoked) = split /:/; - my (undef,undef,undef,$mday,$mon,$year,undef,undef,undef) = localtime ($created); $currentKey = { 'bits' => $bits, 'type' => (defined $ALGOS{$algo} ? $ALGOS{$algo} : '#'.$algo), 'keyid' => $keyid, - 'year' => $year+1900, - 'month' => $mon+1, - 'day' => $mday, + 'created' => $created, 'revoked' => $revoked, 'uid' => [] }; @@ -169,13 +168,15 @@ sub prepareForDialog { my $keys = shift; my @keyargs = (); - for my $keyid (keys %$keys) { + for my $keyid (sort {- ($keys->{$a}->{'created'} <=> $keys->{$b}->{'created'})} keys %$keys) { for (@{ $keys->{$keyid}->{'uid'} }) { push @keyargs, $keys->{$keyid}->{'keyid'}, length() <= $MAX_UID_FIELD_LEN ? $_ : substr($_, 0, $MAX_UID_FIELD_LEN-2) . '..', 'off'; }; + my (undef,undef,undef,$mday,$mon,$year,undef,undef,undef) = localtime ($keys->{$keyid}->{'created'}); + push @keyargs, $keys->{$keyid}->{'keyid'}, sprintf( "[created: %s-%s-%s]", $year+1900, $mon+1, $mday ), 'off'; push @keyargs, '-'x8, '-'x40, 'off'; }; pop @keyargs; @@ -189,14 +190,13 @@ sub prepareForTXT { my $keys = shift; my @lines = (); - for my $keyid (keys %$keys) { + for my $keyid (sort {- ($keys->{$a}->{'created'} <=> $keys->{$b}->{'created'})} keys %$keys) { + my (undef,undef,undef,$mday,$mon,$year,undef,undef,undef) = localtime ($keys->{$keyid}->{'created'}); push @lines, sprintf( "%s%s/%s %s-%s-%s\n", $keys->{$keyid}->{'bits'}, $keys->{$keyid}->{'type'}, $keys->{$keyid}->{'keyid'}, - $keys->{$keyid}->{'year'}, - $keys->{$keyid}->{'month'}, - $keys->{$keyid}->{'day'} ); + $year+1900, $mon+1, $mday ); push @lines, map { ' 'x26 . $_ . "\n" } @{ $keys->{$keyid}->{'uid'} }; push @lines, "\n"; }; @@ -345,13 +345,14 @@ sub version { ## Take all additional arguments to the program as a search target, ## escape the string for use in URLs. - $options{'search'} = join ' ', @ARGV; - $options{'search'} =~ s/ ( [^A-Za-z0-9] ) - / '%' . unpack("H2", $1) - /xeg; + $options{'search'} = \@ARGV; my $keys = getHits( \%options ); my $keyids; + if (scalar keys %$keys == 0) { + print "GnuPG did not find any keys matching your search string.\n"; + exit 0; + }; if ($options{'importall'}) { my @allkeys = keys %$keys; $keyids = \@allkeys;