Skip to content

Commit a35a4c6

Browse files
authored
Merge pull request #4189 from kolyshkin/fix-gpg-validate
script/*: fix gpg usage wrt keyboxd
2 parents a4b0857 + 760105a commit a35a4c6

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

script/keyring_validate.sh

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ function bail() {
3232
tmp_gpgdir="$(mktemp -d --tmpdir "$project-validate-tmpkeyring.XXXXXX")"
3333
trap 'rm -r "$tmp_gpgdir"' EXIT
3434

35+
function gpg_user() {
36+
local user=$1
37+
shift
38+
gpg --homedir="$tmp_gpgdir" --no-default-keyring --keyring="$user.keyring" "$@"
39+
}
40+
3541
# Get the set of MAINTAINERS.
3642
readarray -t maintainers < <(sed -E 's|.* <.*> \(@?(.*)\)$|\1|' <"$root/MAINTAINERS")
3743
echo "------------------------------------------------------------"
@@ -41,8 +47,7 @@ echo "------------------------------------------------------------"
4147

4248
# Create a dummy gpg keyring from the set of MAINTAINERS.
4349
while IFS="" read -r username || [ -n "$username" ]; do
44-
curl -sSL "https://github.com/$username.gpg" |
45-
gpg --no-default-keyring --keyring="$tmp_gpgdir/$username.keyring" --import
50+
curl -sSL "https://github.com/$username.gpg" | gpg_user "$username" --import
4651
done < <(printf '%s\n' "${maintainers[@]}")
4752

4853
# Make sure all of the keys in the keyring have a github=... comment.
@@ -65,8 +70,7 @@ echo "------------------------------------------------------------"
6570
echo "$project release managers:"
6671
sed -En "s|^Comment:.* github=(\w+).*| * \1|p" <"$root/$project.keyring" | sort -u
6772
echo "------------------------------------------------------------"
68-
gpg --no-default-keyring --keyring="$tmp_gpgdir/keyring" \
69-
--import --import-options=show-only <"$root/$project.keyring"
73+
gpg --show-keys <"$root/$project.keyring"
7074
echo "------------------------------------------------------------"
7175

7276
# Check that each entry in the kering is actually a maintainer's key.
@@ -94,12 +98,10 @@ while IFS="" read -d $'\0' -r block || [ -n "$block" ]; do
9498
# fingerprint. See <https://github.com/gpg/gnupg/blob/master/doc/DETAILS>
9599
# for more details.
96100
while IFS="" read -r key || [ -n "$key" ]; do
97-
gpg --no-default-keyring --keyring="$tmp_gpgdir/$username.keyring" \
98-
--list-keys --with-colons | grep "$fprfield:::::::::$key:" >/dev/null ||
101+
gpg_user "$username" --list-keys --with-colons | grep "$fprfield:::::::::$key:" >/dev/null ||
99102
bail "(Sub?)Key $key in $project.keyring is NOT actually one of $username's keys!"
100103
log "Successfully verified $username's (sub?)key $key is legitimate."
101-
done < <(gpg --no-default-keyring \
102-
--import --import-options=show-only --with-colons <<<"$block" |
104+
done < <(gpg --show-keys --with-colons <<<"$block" |
103105
grep "^$fprfield:" | cut -d: -f10)
104106
done < <(awk <"$root/$project.keyring" '
105107
/^-----BEGIN PGP PUBLIC KEY BLOCK-----$/ { in_block=1 }

script/release_sign.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ set -x
105105
tmp_gpgdir="$(mktemp -d --tmpdir "$project-sign-tmpkeyring.XXXXXX")"
106106
trap 'rm -r "$tmp_gpgdir"' EXIT
107107

108-
tmp_runc_gpgflags=("--no-default-keyring" "--keyring=$tmp_gpgdir/$project.keyring")
108+
tmp_runc_gpgflags=("--homedir=$tmp_gpgdir" "--no-default-keyring" "--keyring=$project.keyring")
109109
gpg "${tmp_runc_gpgflags[@]}" --import <"$root/$project.keyring"
110110

111-
tmp_seccomp_gpgflags=("--no-default-keyring" "--keyring=$tmp_gpgdir/seccomp.keyring")
111+
tmp_seccomp_gpgflags=("--homedir=$tmp_gpgdir" "--no-default-keyring" "--keyring=seccomp.keyring")
112112
gpg "${tmp_seccomp_gpgflags[@]}" --recv-keys 0x47A68FCE37C7D7024FD65E11356CE62C2B524099
113113
gpg "${tmp_seccomp_gpgflags[@]}" --recv-keys 0x7100AADFAE6E6E940D2E0AD655E45A5AE8CA7C8A
114114

0 commit comments

Comments
 (0)