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;
};
};
};
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) {