Fix GPG fingerprint extraction

This commit is contained in:
Ilia Rostovtsev
2022-03-21 23:22:45 +02:00
parent 6519246aef
commit 1066fd79af
2 changed files with 7 additions and 9 deletions

View File

@@ -100,7 +100,7 @@ local $_;
&clean_language();
open(GPG, "$gpgpath --fingerprint ".quotemeta($_[0]->{'name'}->[0])." 2>/dev/null |");
while(<GPG>) {
if (/fingerprint\s+=\s+(.*)/) {
if (/([0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4}\s+[0-9A-F]{4})/i) {
$fp = $1;
}
}

View File

@@ -664,14 +664,12 @@ foreach my $k (@keys) {
return (0);
}
# Key been imported before but contact changed, delete first
elsif ($k->{'email'}->[0] ne $email) {
my $key = $finger;
$key =~ s/\s+//g;
if ($k->{'key'} eq $key) {
my $out = &backquote_logged("$gpgpath --batch --delete-key $k->{'key'} 2>&1");
if ($?) {
return (2, $out);
}
elsif ($k->{'email'}->[0] ne $email && $fp && $fp eq $finger) {
my $finger_ = $finger;
$finger_ =~ s/\s+//g;
my $out = &backquote_logged("$gpgpath --batch --delete-key $finger_ 2>&1");
if ($?) {
return (2, $out);
}
}
}