my @keys_to_check = @ARGV;
-sub _get_unknown_keys($$){
- my ($config,$key_id) = @_;
-
- my $uid_listing = qx($config->{gpg_command} --with-colons --list-sigs $key_id 2>/dev/null);
- foreach my $key_record (split(/\n/,$uid_listing)) {
- next unless $key_record =~ /\:/;
- my ($record_type,$calculated_trust,$key_length,$algorithm,
- $full_key_id,$creation_date,$expiration_date,$serial_no,
- $owner_trust,$user_id,$signature_class,$key_capabilities,
- $smime_fingerprint,$flag_field,
- ) = split(/\:/,$key_record);
- next unless defined $user_id and $user_id eq '[User id not found]';
- qx($config->{gpg_command} --recv-keys $full_key_id 2>/dev/null);
- print "Retreveved key: 0x".(substr $full_key_id, -8)."\n";
- }
+my %got_uid_already;
+sub _get_unknown_keys {
+ my ($config,$key_id) = @_;
+
+ my @keys_to_get;
+ my $uid_listing = qx($config->{gpg_command} --with-colons --list-sigs $key_id 2>/dev/null);
+ foreach my $key_record (split(/\n/,$uid_listing)) {
+ next unless $key_record =~ /\:/;
+ my ($record_type,$calculated_trust,$key_length,$algorithm,
+ $full_key_id,$creation_date,$expiration_date,$serial_no,
+ $owner_trust,$user_id,$signature_class,$key_capabilities,
+ $smime_fingerprint,$flag_field,
+ ) = split(/\:/,$key_record);
+ next unless defined $user_id and lc($user_id) eq lc('[User ID not found]');
+ next if exists $got_uid_already{$full_key_id};
+ $got_uid_already{$full_key_id} = 1;
+ push @keys_to_get,$full_key_id;
+ }
+ system($config->{gpg_command},'--recv-keys',@keys_to_get);
}
foreach my $key_id (@keys_to_check) {
_get_unknown_keys($config,$key_id);
- print qx($config->{gpg_command} --check-sigs $key_id);
+ system($config->{gpg_command},'--check-sigs',$key_id);
}
+__END__
+# Local Variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 4
+# End: