diff options
author | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-14 10:14:20 +0200 |
---|---|---|
committer | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-14 10:39:31 +0200 |
commit | 1557014378cc5a6234a9244fa60132955206fd27 (patch) | |
tree | 5dee3d5bed089eef261537c13952797f1d1bb648 | |
parent | c5fbcf5f8d7b36bee54ac80d1027d0dccea2aa75 (diff) | |
parent | 491bb14c0c9cf040154d57e246206ffb2f86a7e5 (diff) |
Merge bitcoin/bitcoin#25332: build: test for timingsafe_bcmp
491bb14c0c9cf040154d57e246206ffb2f86a7e5 build: test for timingsafe_bcmp (fanquake)
Pull request description:
Code introduced in #15649 added usage of [`timingsafe_bcmp()`](https://man.openbsd.org/timingsafe_bcmp.3), if
available, otherwise falling back to our own implementation. However
the relevant build system check was never added, so currently, we'll
always just use our implementation, as `HAVE_TIMINGSAFE_BCMP` will never
be defined.
Add the check for `timingsafe_bcmp`. Note that as far as I'm aware, it's
only available on OpenBSD.
https://github.com/bitcoin/bitcoin/blob/c3daa321f921f4e2514ef93c48d39ae39e7f2d46/src/crypto/chacha_poly_aead.cpp#L16-L28
Guix Build (x86_64):
```bash
0a890839e3de040e084d4df6aeabd924f6c6b04e724d7d2a87ef366d5493ac94 guix-build-491bb14c0c9c/output/aarch64-linux-gnu/SHA256SUMS.part
fd5e1c4531f1739d63e8d552495c24c044ce9ddd34a424d6da1317830e625527 guix-build-491bb14c0c9c/output/aarch64-linux-gnu/bitcoin-491bb14c0c9c-aarch64-linux-gnu-debug.tar.gz
551f58234ba5acf5c5125df85fccb49f8536399d2a1b7126848e4709b7edb61e guix-build-491bb14c0c9c/output/aarch64-linux-gnu/bitcoin-491bb14c0c9c-aarch64-linux-gnu.tar.gz
5a6f7630d36af7e4317f660232c52a5c8c983b1999f57e176a628d83a5eb7b4a guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/SHA256SUMS.part
d1eba598d69498e899663cfcba295747ac5808218157adaca79d45459aac8ecf guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/bitcoin-491bb14c0c9c-arm-linux-gnueabihf-debug.tar.gz
1e2559a99b89770501308416edc6cfeec94bfea9e9cadb6b64a4df7a487350d1 guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/bitcoin-491bb14c0c9c-arm-linux-gnueabihf.tar.gz
bc961b8b930df8123a6cad1c55f250658ea600d4a617ec4fceec2bfc28ec779f guix-build-491bb14c0c9c/output/arm64-apple-darwin/SHA256SUMS.part
f65118d324a8c1a3d80190dc0a80a2175b116a5ef5b0d977e8ffeaa7a8114851 guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin-unsigned.dmg
d27cd6193b1b5ecdab50d1fe2b4c3d0bfba04813506ecf63e27a6e9edb32913e guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin-unsigned.tar.gz
76fc93a9c11909a826c9bd310ae4a70dc2083b96540c875d9cfb3b31bb86dd3e guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin.tar.gz
43f157994432c16cfd481de2ce4894f7c241a0b87ce3797ffc492e219ed00c19 guix-build-491bb14c0c9c/output/dist-archive/bitcoin-491bb14c0c9c.tar.gz
d04bc01a7b207e2d9e833ef4399d5daa789f5d7476df3915f426ea1c71578cb5 guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/SHA256SUMS.part
d815ab7157ca87a51c0c08907ba76f6bcec11cf9c0db77c2fd2885bf78796f97 guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/bitcoin-491bb14c0c9c-powerpc64-linux-gnu-debug.tar.gz
9f912bedf53d6921cf10f48569fb74ef4f42c8571fb976b50e67a64f6754833c guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/bitcoin-491bb14c0c9c-powerpc64-linux-gnu.tar.gz
0651ed89f9a7cd4a4a196a48b330aec82f6ca1df5d842e6da863a87ae69f57f4 guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/SHA256SUMS.part
4c5f1ea788580a99318dc91cb3ac51f11829163a5821a01d90459911b0ff791d guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/bitcoin-491bb14c0c9c-powerpc64le-linux-gnu-debug.tar.gz
61c91db6b7f34d43292b6e0c0a1e4bd5f6e2d532df835410daca337cf94c66af guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/bitcoin-491bb14c0c9c-powerpc64le-linux-gnu.tar.gz
be4d94e812c02a3955343d7a92a26deff9ced37aada049fd328118e01a8e3c53 guix-build-491bb14c0c9c/output/riscv64-linux-gnu/SHA256SUMS.part
d73589e28311c8b442bb873d233181988f79d728965ccef395b19683b78203e9 guix-build-491bb14c0c9c/output/riscv64-linux-gnu/bitcoin-491bb14c0c9c-riscv64-linux-gnu-debug.tar.gz
a1b15c96fcc936928aa183e7b06552c68a2dd5d178122394c3ed2cbd3f07ab2f guix-build-491bb14c0c9c/output/riscv64-linux-gnu/bitcoin-491bb14c0c9c-riscv64-linux-gnu.tar.gz
2d608c6b79be12cdc179e5e6414ea21d06d8b2816e098fbdb4e929b8f9338fa5 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/SHA256SUMS.part
ce11298ab92f388bd43ff2c6cb8c07c777dab44f0f6ea93b909805552bafd20d guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin-unsigned.dmg
5d0626fc72d473157376efe0736f4d2b5836a5394a4869368bc65bf9d264d238 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin-unsigned.tar.gz
d9f250bb45c4663f8160b7d22c1ccde8f1abad62dc6667e01fe71d577f00e9f9 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin.tar.gz
72b3afe2d6124598eddbeed8d0799a8bd23536b4a3e4611162094601c75b923e guix-build-491bb14c0c9c/output/x86_64-linux-gnu/SHA256SUMS.part
eef6c0928762c77a23b485b55c350660b111ffdf3446825648d7da05e5e681eb guix-build-491bb14c0c9c/output/x86_64-linux-gnu/bitcoin-491bb14c0c9c-x86_64-linux-gnu-debug.tar.gz
a130d87e851f0192bf89dd5ecbe52d63231ce5dbbf584d1e4fb33a36ebb8bf7a guix-build-491bb14c0c9c/output/x86_64-linux-gnu/bitcoin-491bb14c0c9c-x86_64-linux-gnu.tar.gz
0f00372e30ea12ca9d16d70c4905b6b8492464987bb6b272ed4f9a945941d6b9 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/SHA256SUMS.part
2852dff8d38ef6eee759bf9fe717a4288db46c300f061acb3212cd1499607d8d guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-debug.zip
ef087e9d6160e183f6ef6d64f9141b499e893d88705be5d1426ced6c49531c18 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-setup-unsigned.exe
79392686b9f5781275e346badf8d7166baa0b4f2c0037ddd6df0b4bc23eaedf6 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-unsigned.tar.gz
da8c9f6922bdab660dfbd757ec89ce7a2493bf1d02e32172b77c1a21b09daaa9 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64.zip
```
Guix Build (arm64):
```bash
ff7afe1f43ac18df89cf1932568b0713f6f22fd2b449a4a87f9aebf404449897 guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/SHA256SUMS.part
5e727cc3273615e6f75c6e15bc004946ab7494ee169ecf830f23290cf6f5c3de guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/bitcoin-491bb14c0c9c-arm-linux-gnueabihf-debug.tar.gz
4aff5487b129dc483780646994246890a5917c8956980ec52682accfe5a0d02e guix-build-491bb14c0c9c/output/arm-linux-gnueabihf/bitcoin-491bb14c0c9c-arm-linux-gnueabihf.tar.gz
cabfeb29771017dfde35a1c8f08c7066255ad84a05d6d565cfcf852a5d869d16 guix-build-491bb14c0c9c/output/arm64-apple-darwin/SHA256SUMS.part
99360c7135967e1d9709830abcc8f5b6ebc7bc37c5be0eac1ddebe0ce5dbe344 guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin-unsigned.dmg
9caa58d1efe18c7ad68fec2a71455ade61939f32ae2da0b0457b459204227046 guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin-unsigned.tar.gz
d9b0ad26346869aa6a4229aa77796535f68880fc50f8b7b7a4297f2e14d2e3ad guix-build-491bb14c0c9c/output/arm64-apple-darwin/bitcoin-491bb14c0c9c-arm64-apple-darwin.tar.gz
43f157994432c16cfd481de2ce4894f7c241a0b87ce3797ffc492e219ed00c19 guix-build-491bb14c0c9c/output/dist-archive/bitcoin-491bb14c0c9c.tar.gz
e2f95f50ae973cef815731485be6b917f39eea92ef4e93fa63aa1ad6cb52a3c9 guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/SHA256SUMS.part
452f3091a1e841920e958f14f1650e94b3a61cb430cb99930fb5941d8a8aad3d guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/bitcoin-491bb14c0c9c-powerpc64-linux-gnu-debug.tar.gz
a371cee3dae3d5cf5ca792b58a1bb492a6a6147e0b515e69869d3543edbeaea5 guix-build-491bb14c0c9c/output/powerpc64-linux-gnu/bitcoin-491bb14c0c9c-powerpc64-linux-gnu.tar.gz
89153f4b6a3bc6d47787c4d63b57e1dade8116822abb547fc1759c84e6ff6fa2 guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/SHA256SUMS.part
9f51353abe7b6154a48da5db3fce29d2dac1dbe9a6c78aade1b9e1b6b12370fa guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/bitcoin-491bb14c0c9c-powerpc64le-linux-gnu-debug.tar.gz
25b21eb2d8e3982dac5e1510b78339b7c4bddf164b986c929036369e403ddadd guix-build-491bb14c0c9c/output/powerpc64le-linux-gnu/bitcoin-491bb14c0c9c-powerpc64le-linux-gnu.tar.gz
92c4c404f7355897bca4ba7e38a908828da73617cac7b0fbd89952ce20859d83 guix-build-491bb14c0c9c/output/riscv64-linux-gnu/SHA256SUMS.part
230361b5a493b3ac17780b3d5496cc10a37d3345b96874b04092c06aab36cb0d guix-build-491bb14c0c9c/output/riscv64-linux-gnu/bitcoin-491bb14c0c9c-riscv64-linux-gnu-debug.tar.gz
d8110e6d738a40ccd076cbd286557931b2a433e27c8defcc496ac56f60fe5327 guix-build-491bb14c0c9c/output/riscv64-linux-gnu/bitcoin-491bb14c0c9c-riscv64-linux-gnu.tar.gz
2d608c6b79be12cdc179e5e6414ea21d06d8b2816e098fbdb4e929b8f9338fa5 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/SHA256SUMS.part
ce11298ab92f388bd43ff2c6cb8c07c777dab44f0f6ea93b909805552bafd20d guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin-unsigned.dmg
5d0626fc72d473157376efe0736f4d2b5836a5394a4869368bc65bf9d264d238 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin-unsigned.tar.gz
d9f250bb45c4663f8160b7d22c1ccde8f1abad62dc6667e01fe71d577f00e9f9 guix-build-491bb14c0c9c/output/x86_64-apple-darwin/bitcoin-491bb14c0c9c-x86_64-apple-darwin.tar.gz
de7a52a67f243b6db1086c2ab2cc3f01784d38b43b7aaf795b7713c33799ab62 guix-build-491bb14c0c9c/output/x86_64-linux-gnu/SHA256SUMS.part
88228ef3007e81ade481d0c3fa757ac3ae86bda50aeef2631335c5d54fb4194c guix-build-491bb14c0c9c/output/x86_64-linux-gnu/bitcoin-491bb14c0c9c-x86_64-linux-gnu-debug.tar.gz
b1f2ddf50658f4d1bd0667cc16502f9a45d9e0eef4c1d103cd7780cebfc2766d guix-build-491bb14c0c9c/output/x86_64-linux-gnu/bitcoin-491bb14c0c9c-x86_64-linux-gnu.tar.gz
f0cc08231ed964fcb4f2c5a697c52160dad8ed374f8d9537eb7f2ca9f47e7b2c guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/SHA256SUMS.part
d9c49c031bde4f80e63955fdeb14a7fb8f74a27d09bcf01881648917df10a836 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-debug.zip
ef087e9d6160e183f6ef6d64f9141b499e893d88705be5d1426ced6c49531c18 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-setup-unsigned.exe
79392686b9f5781275e346badf8d7166baa0b4f2c0037ddd6df0b4bc23eaedf6 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64-unsigned.tar.gz
1d76ceae8c3feef573d4e60fe6c7be5f3bea4afd3994ddc16759d8b381767015 guix-build-491bb14c0c9c/output/x86_64-w64-mingw32/bitcoin-491bb14c0c9c-win64.zip
```
ACKs for top commit:
laanwj:
Code review ACK 491bb14c0c9cf040154d57e246206ffb2f86a7e5
theStack:
ACK 491bb14c0c9cf040154d57e246206ffb2f86a7e5
Tree-SHA512: 50d273706e92016783f6a9d552f56b703c3c26ec2f0fafb9a0d1c1047456eee7c08e76ebc57077d2ecf95aaf5a3804c88a629a2e02a48c8be91b87ffa44cdb3e
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/crypto/chacha_poly_aead.cpp | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index f6d00d0283..003d76989b 100644 --- a/configure.ac +++ b/configure.ac @@ -998,6 +998,8 @@ AC_CHECK_DECLS([setsid]) AC_CHECK_DECLS([pipe2]) +AC_CHECK_FUNCS([timingsafe_bcmp]) + AC_CHECK_DECLS([le16toh, le32toh, le64toh, htole16, htole32, htole64, be16toh, be32toh, be64toh, htobe16, htobe32, htobe64],,, [#if HAVE_ENDIAN_H #include <endian.h> diff --git a/src/crypto/chacha_poly_aead.cpp b/src/crypto/chacha_poly_aead.cpp index 4f3e6f7fa3..f736b2d867 100644 --- a/src/crypto/chacha_poly_aead.cpp +++ b/src/crypto/chacha_poly_aead.cpp @@ -2,6 +2,10 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#if defined(HAVE_CONFIG_H) +#include <config/bitcoin-config.h> +#endif + #include <crypto/chacha_poly_aead.h> #include <crypto/poly1305.h> |