X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=gpgsigs%2Fgpgsigs;h=b91f652f5582cc2724953afa5cc0ce4e530b1a95;hb=d43fd478410836437cf2aab71372d5c3f5fc10db;hp=61c03be226cb3b160a30706f95a37ef44af7ca47;hpb=a9dceb5378b7ce02a71f4a19a223d85dd3ed84cd;p=pgp-tools.git diff --git a/gpgsigs/gpgsigs b/gpgsigs/gpgsigs index 61c03be..b91f652 100755 --- a/gpgsigs/gpgsigs +++ b/gpgsigs/gpgsigs @@ -17,6 +17,7 @@ # * support for multiple user keys # * better charset conversion # * pod documentation +# see the Debian changelog for further changes. my $VERSION = qq$Rev$; @@ -155,7 +156,9 @@ while () { next; } if ( m/^uid:(?:.*?:){8,8}(.*):/s ) { - $uid = myrecode($1, "UTF-8", $charset); + $uid = $1; + $uid =~ s/\\x([0-9a-f][0-9a-f])/ chr(hex($1)) /gie; + $uid = myrecode($uid, "UTF-8", $charset); next; } if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){5,5}(.*?):/ ) { @@ -192,9 +195,9 @@ while () { $uid = "Photo ID"; next; } - next if ( m/^(rev|sub|tru):/ ); + next if ( m/^(rev|rvk|sub|tru):/ ); # revoke/revoker/subkey/trust warn "unknown value: '$_', key: ".(defined $key ? $key :'none')."\n"; -} +} close SIGS; print STDERR "\n"; @@ -206,13 +209,23 @@ for my $k ( keys %{$sigs} ) { # read checksums -open MD, "gpg --print-md md5 $keytxt|" or warn "can't get gpg md5\n"; +open MD, "gpg --with-colons --print-md md5 $keytxt|" or warn "can't get gpg md5\n"; my $MD5 = ; close MD; -open MD, "gpg --print-md sha1 $keytxt|" or warn "can't get gpg sha1\n"; +open MD, "gpg --with-colons --print-md sha1 $keytxt|" or warn "can't get gpg sha1\n"; my $SHA1 = ; close MD; +my @MD5 = split /:/, $MD5; +my @SHA1 = split /:/, $SHA1; +$MD5 = $MD5[2]; +$SHA1 = $SHA1[2]; + +$MD5 =~ s/(.{16})/$1 /; +$SHA1 =~ s/(.{20})/$1 /; +$MD5 =~ s/([0-9A-Z]{2})/$1 /ig; +$SHA1 =~ s/([0-9A-Z]{4})/$1 /ig; + chomp $MD5; chomp $SHA1; my $metatxt = quotemeta($keytxt); @@ -226,6 +239,9 @@ sub print_tag my ($key, $uid) = @_; if (! defined $sigs->{$key}->{$uid}) { warn "uid '$uid' not found on key $key\n"; + #for (keys %{ $sigs->{$key} }) { + # print STDERR "only have $_\n"; + #}; return '(' . (' ' x @mykeys) . ')'; } my $r = '('; @@ -354,7 +370,7 @@ http://pgp-tools.alioth.debian.org/ (c) 2004, 2005 Peter Palfrader -(c) 2004, 2005 Christoph Berg +(c) 2004, 2005, 2006 Christoph Berg =head1 LICENSE