- sub fetch_fpr_from_keyserver {
- my $fpr = shift;
-
- my $cmd = IO::Handle::->new();
- my $nul = IO::File::->new("< /dev/null");
-
- my $ks = get_keyserver();
- msvalog('debug', "start ks query to %s for fingerprint: %s\n", $ks, $fpr);
- my $pid = $gnupg->wrap_call
- ( handles => GnuPG::Handles::->new( command => $cmd, stdout => $nul, stderr => $nul ),
- command_args => [ '0x'.$fpr ],
- commands => [ '--keyserver',
- $ks,
- qw( --no-tty --recv-keys ) ]
- );
- # FIXME: can we do something to avoid hanging forever?
- waitpid($pid, 0);
- msvalog('debug', "ks query returns %d\n", POSIX::WEXITSTATUS($?));
- }
-
- sub fetch_uid_from_keyserver {
- my $uid = shift;
-
- my $cmd = IO::Handle::->new();
- my $out = IO::Handle::->new();
- my $nul = IO::File::->new("< /dev/null");
-
- my $ks = get_keyserver();
- msvalog('debug', "start ks query to %s for UserID: %s\n", $ks, $uid);
- my $pid = $gnupg->wrap_call
- ( handles => GnuPG::Handles::->new( command => $cmd, stdout => $out, stderr => $nul ),
- command_args => [ '='.$uid ],
- commands => [ '--keyserver',
- $ks,
- qw( --no-tty --with-colons --search ) ]
- );
- while (my $line = $out->getline()) {
- msvalog('debug', "from ks query: (%d) %s", $cmd->fileno, $line);
- if ($line =~ /^info:(\d+):(\d+)/ ) {
- $cmd->print(join(' ', ($1..$2))."\n");
- msvalog('debug', 'to ks query: '.join(' ', ($1..$2))."\n");
- last;
- }
- }
- # FIXME: can we do something to avoid hanging forever?
- waitpid($pid, 0);
- msvalog('debug', "ks query returns %d\n", POSIX::WEXITSTATUS($?));
- }