1
0
mirror of https://github.com/nix-community/home-manager synced 2024-06-01 12:33:34 +02:00

gpg: fix handling of multiple public keys

When processing `publicKeys` entries, handle entries that contain
multiple public keys (i.e. gpg --show-key returns multiple `pub`
lines) properly, setting the trust level for each key.

PR #2897
This commit is contained in:
Sam Willcocks 2022-04-16 17:45:41 +01:00 committed by Robert Helgesson
parent 8ab155c61f
commit 620ed197f3
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89

View File

@ -109,14 +109,15 @@ let
}
function importTrust() {
local keyId trust
keyId="$(gpgKeyId "$1")"
local keyIds trust
IFS='\n' read -ra keyIds <<< "$(gpgKeyId "$1")"
trust="$2"
if [[ -n $keyId ]] ; then
for id in "''${keyIds[@]}" ; do
{ echo trust; echo "$trust"; (( trust == 5 )) && echo y; echo quit; } \
| ${gpg} --no-tty --command-fd 0 --edit-key "$keyId"
fi
| ${gpg} --no-tty --command-fd 0 --edit-key "$id"
done
}
'';
keyringFiles = let