Refreshed README according to d.control.
[pgp-tools.git] / caff / pgp-fixkey
index c4e7c9f0eb70960a9596dc4932abab841bd46981..48d47be19e717b581ea0c41822fb527eed90cd78 100755 (executable)
@@ -262,10 +262,12 @@ if (scalar @KEYIDS == 0) {
                if ($type eq 'pub') {
                        $thiskey = $keyid;
                        debug("Found key $thiskey");
+               } elsif (!defined $thiskey) {
+                       next;
                } elsif ($type eq 'sig' || $type eq 'rev') {
-                       if (($keyid eq '0' x 16) || ($created == 0)) {
-                               push @KEYIDS, $thiskey if defined $thiskey;
-                               info("Adding $thiskey");
+                       if (($keyid eq '0' x 16) || ($created eq "") || ($created == 0)) {
+                               push @KEYIDS, $thiskey;
+                               info("Key $thiskey needs cleaning.");
                                $thiskey = undef;
                        };
                };
@@ -289,6 +291,10 @@ for my $keyid (@KEYIDS) {
        };
        my $keyinfo = $stdout;
        my @publine = grep { /^pub/ } (split /\n/, $stdout);
+       if ($#publine < 0) {
+               warn ("No public key found for $keyid.\n");
+               next;
+       }
        my (undef, undef, undef, undef, $longkeyid, undef, undef, undef, undef, undef, undef, $flags) = split /:/, pop @publine;
        my $can_encrypt = $flags =~ /E/;
        unless (defined $longkeyid) {