@@ -27,6 +27,12 @@ VERSIONS=(
27270.19.1
28280.20.0
29290.20.1
30+ 0.20.2
31+ 0.21.0
32+ 0.21.1
33+ 0.21.2
34+ 22.0
35+ 23.0
3036)
3137
3238err () {
@@ -57,24 +63,59 @@ if [ -z "${VERSION}" ]; then
5763 exit 1
5864fi
5965
66+ set -x
67+
6068TMPDIR=$( mktemp -d)
6169cd " $TMPDIR "
6270
63- # Verify this signing key fingerprint here:
64- #
65- # https://github.com/bitcoin/bitcoin/tree/master/contrib/verifybinaries
71+ # Verify signing key fingerprints here:
6672#
67- gpg --keyserver hkp ://keyserver.ubuntu. com --recv- keys 01EA5486DE18A882D4C2684590C8019E36C2E964
73+ # https ://github. com/bitcoin/bitcoin/tree/master/contrib/builder- keys
6874
6975curl -O " ${URL_BASE} /SHA256SUMS.asc"
7076curl -O " ${URL_BASE} /${FILENAME} "
7177
72- sha256sum --ignore-missing --check SHA256SUMS.asc \
73- | tee - | grep -o " ${FILENAME} : OK"
74-
75- gpg --verify SHA256SUMS.asc > gpg_verify_out 2>&1
76- grep ' ^gpg: Good signature from "Wladimir J. van der Laan' gpg_verify_out
77- grep ' ^Primary key fingerprint: 01EA 5486 DE18 A882 D4C2 6845 90C8 019E 36C2 E964' gpg_verify_out
78+ # In version 22.0, release signing changed from a single key signing in
79+ # SHA256SUMS.asc to multiple keys signing SHA256SUMS.
80+ #
81+ # See here for more information: https://github.com/bitcoin/bitcoin/pull/23020
82+
83+ if [[ " $VERSION " < " 22.0" ]]; then
84+ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 01EA5486DE18A882D4C2684590C8019E36C2E964
85+ sha256sum --ignore-missing --check SHA256SUMS.asc \
86+ | tee - | grep -o " ${FILENAME} : OK"
87+ gpg --verify SHA256SUMS.asc > gpg_verify_out 2>&1
88+ grep ' ^gpg: Good signature from "Wladimir J. van der Laan' gpg_verify_out
89+ grep ' ^Primary key fingerprint: 01EA 5486 DE18 A882 D4C2 6845 90C8 019E 36C2 E964' gpg_verify_out
90+
91+ else
92+ # See bitcoin/contrib/builder-keys/keys.txt for current values.
93+ #
94+ # I've chosen a subset of builder keys here who are well-known and reliably
95+ # sign for releases.
96+
97+ # Wladimir
98+ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 71A3B16735405025D447E8F274810B012346C9A6
99+ # Hebasto
100+ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys D1DBF2C4B96F2DEBF4C16654410108112E7EA81F
101+ # Fanquake
102+ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys E777299FC265DD04793070EB944D35F9AC3DB76A
103+
104+ curl -O " ${URL_BASE} /SHA256SUMS"
105+ gpg --verify SHA256SUMS.asc SHA256SUMS > gpg_verify_out 2>&1 || true
106+ cat gpg_verify_out
107+
108+ grep ' ^gpg: Good signature from "Wladimir J. van der Laan' gpg_verify_out
109+ grep ' ^Primary key fingerprint: 71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6' gpg_verify_out
110+
111+ grep ' ^gpg: Good signature from "Hennadii Stepanov' gpg_verify_out
112+ grep ' ^Primary key fingerprint: D1DB F2C4 B96F 2DEB F4C1 6654 4101 0811 2E7E A81F' gpg_verify_out
113+
114+ grep ' ^gpg: Good signature from "Michael Ford' gpg_verify_out
115+ grep ' ^Primary key fingerprint: E777 299F C265 DD04 7930 70EB 944D 35F9 AC3D B76A' gpg_verify_out
116+
117+ sha256sum --ignore-missing --check SHA256SUMS | tee - | grep -o " ${FILENAME} : OK"
118+ fi
78119
79120tar -xzvf " ${FILENAME} "
80121DIR=$( find . -name ' bitcoin-*' -type d | head -n 1)
0 commit comments