Note signature class in output
[pgp-tools.git] / gpgsigs / gpgsigs
index 1033f400286bb5f35298e8a6e8eb66b6ce4b4c17..0caf08f68f730bcd8246b4686bb9545468df93ff 100755 (executable)
@@ -18,7 +18,7 @@
 #   * better charset conversion
 #   * pod documentation
 
-my $VERSION = '$Rev$';
+my $VERSION = qq$Rev$;
 
 use strict;
 use warnings;
@@ -32,7 +32,7 @@ sub version($)
        my ($fd) = @_;
 
        print $fd <<EOF;
-gpgsigs $VERSION - http://pgp-tools.alioth.debian.org/
+gpgsigs $VERSION- http://pgp-tools.alioth.debian.org/
   (c) 2004 Uli Martens <uli\@youam.net>
   (c) 2004, 2005 Peter Palfrader <peter\@palfrader.org>
   (c) 2004, 2005 Christoph Berg <cb\@df7cb.de>
@@ -182,9 +182,21 @@ while (<SIGS>) {
                $uid = myrecode($1);
                next;
        }
-       if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){3,3}(.*):.*?:/ ) {
-               $sigs->{$key}->{$uid}->{$1.$2} = $3;
-               $sigs->{$key}->{$uid}->{$2} = $3;
+       if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){5,5}(.*?):/ ) {
+               my $class = $3;
+               if ($class eq '10x') {
+                       $class = 'S';
+               } elsif ($class eq '11x') {
+                       $class = '1';
+               } elsif ($class eq '12x') {
+                       $class = '2';
+               } elsif ($class eq '13x') {
+                       $class = '3';
+               } else {
+                       $class = 's';
+               };
+               $sigs->{$key}->{$uid}->{$1.$2} = $class;
+               $sigs->{$key}->{$uid}->{$2} = $class;
                next;
        }
        if ( m/^uat:/ ) {
@@ -225,11 +237,11 @@ sub print_tag
        my ($key, $uid) = @_;
        if (! defined $sigs->{$key}->{$uid}) {
                warn "uid '$uid' not found on key $key\n";
-               return '(_)';
+               return '(' . (' ' x @mykeys) . ')';
        }
        my $r = '(';
        foreach my $mykey (@mykeys) {
-               $r .= defined $sigs->{$key}->{$uid}->{$mykey} ? "S" : " ";
+               $r .= defined $sigs->{$key}->{$uid}->{$mykey} ? $sigs->{$key}->{$uid}->{$mykey} : ' ';
        }
        $r .= ')';
        return $r;
@@ -241,10 +253,10 @@ open (WRITE, '>'.$outfile) or die ("Cannot open $outfile for writing\n");
 while (<TXT>) {
        $_ = myfromrecode($_);
        if (/^MD5 Checksum:/ && defined $MD5) {
-               s/_[_ ]+_/$MD5/;
+               s/[_[:xdigit:]][_ [:xdigit:]]+_/$MD5/;
        }
        if (/^SHA1 Checksum:/ && defined $SHA1) {
-               s/_[_ ]+_/$SHA1/;
+               s/[_[:xdigit:]][_ [:xdigit:]]+_/$SHA1/;
        }
        if ( m/^pub  +(?:\d+)[DR]\/([0-9A-F]{8}) [0-9]{4}-[0-9]{2}-[0-9]{2} *(.*)/ ) {
                $key = $1;