use warnings;
use strict;
-
{ package MSVA;
use Data::Dumper;
$ret->{message} = sprintf('public key size is less than 1000 bits (was: %d bits)', $cert->pubkey_size());
} else {
$ret->{message} = sprintf('Failed to validate "%s" through the OpenPGP Web of Trust.', $uid);
- my $ks_checked = 0;
+ my $lastloop = 0;
if (get_keyserver_policy() eq 'always') {
fetch_uid_from_keyserver($uid);
- $ks_checked = 1;
+ $lastloop = 1;
+ } elsif (get_keyserver_policy() eq 'never') {
+ $lastloop = 1;
}
- my $afterlocalpass = 0;
my $foundvalid = 0;
# needed because $gnupg spawns child processes
$ENV{PATH} = '/usr/local/bin:/usr/bin:/bin';
+
while (1) {
- if ($afterlocalpass) {
- # while loop termination condition:
- last if ($foundvalid || $ks_checked || get_keyserver_policy() eq 'never');
- fetch_uid_from_keyserver($uid);
- $ks_checked = 1;
- }
foreach my $gpgkey ($gnupg->get_public_keys('='.$uid)) {
my $notvalid = 1;
- my $marginal = 0;
foreach my $tryuid ($gpgkey->user_ids) {
if ($tryuid->as_string eq $uid) {
$notvalid = 0
if ($tryuid->validity eq 'f' ||
$tryuid->validity eq 'u');
- $marginal = 1
- if ($tryuid->validity eq 'm');
}
}
- if ($marginal and $notvalid) {
- # MJGOINS
- } elsif ($notvalid) {
+ if ($notvalid) {
msvalog('verbose', "got a key that was not fully-valid for UID %s\n", $uid);
msvalog('debug', Dumper($gpgkey));
} else {
}
}
}
- $afterlocalpass = 1;
+ if ($lastloop) {
+ last;
+ } else {
+ fetch_uid_from_keyserver($uid);
+ $lastloop = 1;
+ }
}
}
} else {