X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=checksigs;h=87d37d5c05469b166097f9354ef0f56b5b0acbf9;hb=56c8d8b286ae38e170ce915472f9aa86fabf9fee;hp=c45b8d26313e1f307fcdc716420abf704d3ee12a;hpb=3b036202964947d335cac180a80de037634430fc;p=bin.git diff --git a/checksigs b/checksigs index c45b8d2..87d37d5 100755 --- a/checksigs +++ b/checksigs @@ -19,24 +19,33 @@ $config->{gpg_command} = qq($config->{gpg}); 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 lc($user_id) eq lc('[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: