Skip to content

Commit 9d9b9be

Browse files
authored
fix: Sanitize secrets
Signed-off-by: matttrach <matt.trachier@suse.com>
1 parent 963c4e1 commit 9d9b9be

1 file changed

Lines changed: 29 additions & 13 deletions

File tree

.github/workflows/release.yaml

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,42 @@ jobs:
3434
3535
- name: sign shasum
3636
env:
37-
GPG_KEY: ${{ env.GPG_KEY }}
38-
GPG_KEY_ID: ${{ env.GPG_KEY_ID }}
3937
GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }}
38+
GPG_KEY_ID: ${{ env.GPG_KEY_ID }}
39+
GPG_KEY: ${{ env.GPG_KEY }}
4040
run: |
41+
cleanup() {
42+
# clear history just in case
43+
history -c
44+
}
45+
trap cleanup EXIT TERM
46+
47+
# sanitize variables
48+
GPG_PASSPHRASE="$(echo "${GPG_PASSPHRASE}" | xargs)"
49+
GPG_KEY_ID="$(echo "${GPG_KEY_ID}" | xargs)"
50+
GPG_KEY="$(echo -n "${GPG_KEY}" | awk '/-----BEGIN PGP PRIVATE KEY BLOCK-----/,/-----END PGP PRIVATE KEY BLOCK-----/')"
51+
52+
if [ -z "${GPG_PASSPHRASE}" ]; then echo "gpg passphrase empty"; exit 1; fi
53+
if [ -z "${GPG_KEY_ID}" ]; then echo "key id empty"; exit 1; fi
54+
if [ -z "${GPG_KEY}" ]; then echo "key contents empty"; exit 1; fi
55+
4156
echo "Importing gpg key"
42-
echo -n '${{ env.GPG_KEY }}' | gpg --import --batch > /dev/null
57+
echo "${GPG_KEY}" | gpg --import --batch > /dev/null || { echo "Failed to import GPG key"; exit 1; }
4358
44-
echo "signing SHASUM file"
45-
VERSION_NO_V="$(echo ${{ github.ref_name }} | tr -d 'v')"
59+
echo "Signing SHASUM file"
60+
VERSION_NO_V="$(echo "${{ github.ref_name }}" | tr -d 'v')"
4661
SHASUM_FILE="dist/artifacts/${{ github.ref_name }}/terraform-provider-rancher2_${VERSION_NO_V}_SHA256SUMS"
47-
echo '${{ env.GPG_PASSPHRASE }}' | gpg --detach-sig --pinentry-mode loopback --passphrase-fd 0 --local-user "${{ env.GPG_KEY_ID }}" --output "${SHASUM_FILE}.sig" --sign "${SHASUM_FILE}"
4862
49-
echo "Validating signature..."
63+
gpg --detach-sig \
64+
--pinentry-mode loopback \
65+
--passphrase "${GPG_PASSPHRASE}" \
66+
--local-user "${GPG_KEY_ID}" \
67+
--output "${SHASUM_FILE}.sig" \
68+
--sign "${SHASUM_FILE}" || { echo "Failed to sign checksum."; exit 1; }
5069
51-
if ! gpg --verify "${SHASUM_FILE}.sig" "${SHASUM_FILE}"; then
52-
echo "Signature is valid..."
53-
else
54-
echo "Signature verification failed!"
55-
exit 1
56-
fi
70+
echo "Validating signature..."
71+
gpg --verify "${SHASUM_FILE}.sig" "${SHASUM_FILE}" || { echo "Signature verification failed!"; exit 1; }
72+
echo "Signature is valid..."
5773
- name: GH release
5874
env:
5975
GH_TOKEN: ${{ github.token }}

0 commit comments

Comments
 (0)