-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: enable ellswift module via SECP_CONFIG_DEFINES #1384
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
...like the other modules.
real-or-random
approved these changes
Jul 26, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 78ca880
utACK 78ca880 |
delta1
added a commit
to delta1/elements
that referenced
this pull request
Aug 8, 2023
b911b3cbd5 Merge BlockstreamResearch/secp256k1-zkp#265: bppp: Fix test for invalid sign byte again 5bf57590bf bppp: Fix test for invalid sign byte again b2ccc8d9fd Merge BlockstreamResearch/secp256k1-zkp#260: Finish sync to upstream 395e65e9f1 Merge branch 'master' into sync-upstream 394e09ee84 musig: change test vector generation code shebang from python to python3 aa3edea119 scalar: Remove unused secp256k1_scalar_chacha20 167194bede rangeproof: Use util functions for writing big endian 82777bba34 bppp: Fix test for invalid sign byte 54b37db953 build: Fix linkage of extra binaries in -zkp modules 9e96a2e9d8 hsort tests: Don't call secp256k1_testrand_int(0) 80187089ff Merge commits '4494a369 3aef6ab8 0fa84f86 249c81ea 7966aee3 fb758fe8 3fc1de5c 0aacf643 9e6d1b0e 332af315 afd7eb4a c9ebca95 cc557575 0f7657d5 907a6721 b40e2d30 c545fdc3 2bd5f3e6 0e00fc7d c734c642 26392da2 ' into temp-merge-1386 50e20fa7d4 Merge BlockstreamResearch/secp256k1-zkp#257: Upstream PRs 1314, 1317, 1318, 1316, 1327, 1310, 1328, 1333, 1330, 1334, 1337, 1341, 1339, 1350, 1349, 1338, 1129, 1347, 1336, 1295, 1354, 1355, 1356 525b661f83 bppp/build: Fix linkage of benchmark 4c70cc9bf5 Suppress wrong/buggy warning in MSVC <19.33 579999b425 scalar: adjust muladd2 to new int128 interface b160486766 ecdsa_adaptor: add missing include 74d9073414 Merge commits '83186db3 e9e4526a 5f7903c7 d373a721 09df0bfb 20a5da5f 908e02d5 d75dc59b debf3e5c bf29f8d0 60556c9f cb1a5927 67214f5f 45c5ca76 30574f22 0702ecb0 705ce7ed 3c1a0fd3 10836832 926dd3e9 ac43613d fd491ea1 799f4eec ' into temp-merge-1356 26392da2fb Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh 4692478853 ci: print $ELLSWIFT in cirrus.sh c734c64278 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES 78ca880788 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7d10 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a466c1 util: remove unused checked_realloc e593ed5685 musig: ensure point_load output is normalized 7a07f3d33f Merge commits '3bab71cf 4258c54f 566faa17 9ce9984f 04bf3f67 5be353d6 2e035af2 5b0444a3 a6f4bcf6 5ec1333d f6bef03c 1f33bb2b 1c895367 6b7e5b71 596b336f 4b84f4bf 024a4094 222ecaf6 4b0f711d 3c818388 f30c7486 1cf15ebd 24c768ae 341cc197 c63ec88e 54d34b6c 073d98a0 9eb6934f ab5a9171 fb3a8063 006ddc1f 3353d3c7 b54a0672 7d4f86d2 e8295d07 3e3d125b acf5c55a ' into temp-merge-1312 2bd5f3e618 Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast a9a5c24de2 Merge commits '56582094 427bc3cd 0cf2fb91 9c8c4f44 70be3cad f16a709f 464a9115 1d8f3675 afd8b23b 2bca0a5c 2d51a454 4e682626 a0f4644f 145078c4 7b7503da ec98fced 346a053d ' into temp-merge-1269 4f8c5bd761 refactor: Drop unused cast bfeae121fb Merge BlockstreamResearch/secp256k1-zkp#255: musig: change test vector generation code shebang from python to python3 ea478beec6 musig: change test vector generation code shebang from python to python3 d47e4d40ca Merge BlockstreamResearch/secp256k1-zkp#252: Upstream PRs 1113, 1225, 1227, 1229, 1223 dc733595b0 Merge commits 'df323b5c 3295aa14 ef4f8bd0 90b513aa bdf39000 ' into temp-merge-1223 3937cefce6 Merge BlockstreamResearch/secp256k1-zkp#249: Upstream PRs 1160, 1193, 1169, 1190, 1192, 1194, 1196, 1195, 1170, 1172, 1200, 1199, 1203, 1201, 1206, 1078, 1209, 979, 1212, 1218, 1217, 1221, 1222 897c765a49 Merge BlockstreamResearch/secp256k1-zkp#251: Update sync-upstream with master 53bc63f9f9 Merge BlockstreamResearch/secp256k1-zkp#245: scalar: Remove unused secp256k1_scalar_chacha20 860360eed4 scalar: Remove unused secp256k1_scalar_chacha20 3970a7292a rangeproof: Use util functions for writing big endian afe7e649ee Merge BlockstreamResearch/secp256k1-zkp#248: bppp: Fix and improve test for invalid sign byte 1a6d93f8b6 Merge BlockstreamResearch/secp256k1-zkp#250: ci: Always define EXPERIMENTAL variable 3372993060 bppp: Fix test for invalid sign byte 7e9193666f ci: Always define EXPERIMENTAL variable 0d540ec942 Merge commits '88e80722 ff8edf89 f29a3270 a7a7bfaf a01a7d86 b1579cf5 ad7433b1 233822d8 5fbff5d3 2b77240b 1bff2005 e1817a6f 5596ec5c 8ebe5c52 1cca7c17 1b21aa51 cbd25559 09b1d466 57573187 8962fc95 9d1b458d eb8749fc 6048e6c0 ' into temp-merge-1222 7aa9887128 Merge pull request ElementsProject#246 from jonasnick/temp-merge-1187 304fc88557 Merge commits '9a8d65f0 75d7b7f5 665ba77e 3f57b9f7 eacad90f 01b819a8 31ed5386 2a39ac16 0eb30004 cbe41ac1 cc3b8a4f ' into temp-merge-1187 58e27bc2d2 Merge BlockstreamResearch/secp256k1-zkp#244: sync-upstream.sh: Add "git show --remerge-diff" tip c545fdc374 Merge bitcoin-core/secp256k1#1298: Remove randomness tests 0a99156871 sync-upstream.sh: Add "git show --remerge-diff" tip 6c54db1987 Merge commits '2286f809 751c4354 477f02c4 e3f84777 5c789dcd 8c949f56 21ffe4b2 ' into temp-merge-1055 30fc9d6551 Merge BlockstreamResearch/secp256k1-zkp#242: sync-upstream.sh: Fix position of "-b" option in reproduce command 9b6a1c384d sync-upstream.sh: Fix position of "-b" option in reproduce command b40e2d30b7 Merge bitcoin-core/secp256k1#1378: ellswift: fix probabilistic test failure when swapping sides e996d076da Merge commits '44916ae9 86e3b38a ddf2b291 6138d73b e40fd277 ' into temp-merge-1156 533571d6cf Merge BlockstreamResearch/secp256k1-zkp#239: sync-upstream: allows providing the local branch via cli 05b207e969 sync-upstream: allows providing the local branch via cli 64717a7b16 Merge commits '8b013fce 485f608f 44c2452f cd470333 accadc94 43756da8 af65d30c 63a3565e 6a873cc4 3efeb9da 9f8a13dc 694ce8fb a43e982b e13fae48 c2ee9175 ' into temp-merge-1146 9a981068ce Merge commits '8b013fce 485f608f 44c2452f cd470333 accadc94 43756da8 ' into temp-merge-1115 c424e2fb43 ellswift: fix probabilistic test failure when swapping sides 907a67212e Merge bitcoin-core/secp256k1#1313: ci: Test on development snapshots of GCC and Clang 0f7657d59c Merge bitcoin-core/secp256k1#1366: field: Use `restrict` consistently in fe_sqrt cc55757552 Merge bitcoin-core/secp256k1#1340: clean up in-comment Sage code (refer to secp256k1_params.sage, update to Python3) 600c5adcd5 clean up in-comment Sage code (refer to secp256k1_params.sage, update to Python3) 981e5be38c ci: Fix typo in comment e9e9648219 ci: Reduce number of macOS tasks from 28 to 8 609093b387 ci: Add x86_64 Linux tasks for gcc and clang snapshots 1deecaaf3b ci: Install development snapshots of gcc and clang b79ba8aa4c field: Use `restrict` consistently in fe_sqrt c9ebca95f9 Merge bitcoin-core/secp256k1#1363: doc: minor ellswift.md updates afd7eb4a55 Merge bitcoin-core/secp256k1#1371: Add exhaustive tests for ellswift (with create+decode roundtrip) 2792119278 Add exhaustive test for ellswift (create+decode roundtrip) c7d900ffd1 doc: minor ellswift.md updates 332af315fc Merge bitcoin-core/secp256k1#1344: group: save normalize_weak calls in `secp256k1_ge_is_valid_var`/`secp256k1_gej_eq_x_var` 9e6d1b0e9b Merge bitcoin-core/secp256k1#1367: build: Improvements to symbol visibility logic on Windows (attempt 3) 0aacf64352 Merge bitcoin-core/secp256k1#1370: Corrected some typos b6b9834e8d small fixes 07c0e8b82e group: remove unneeded normalize_weak in `secp256k1_gej_eq_x_var` 3fc1de5c55 Merge bitcoin-core/secp256k1#1364: Avoid `-Wmaybe-uninitialized` when compiling with `gcc -O1` fb758fe8d6 Merge bitcoin-core/secp256k1#1323: tweak_add: fix API doc for tweak=0 c6cd2b15a0 ci: Add task for static library on Windows + CMake 020bf69a44 build: Add extensive docs on visibility issues 0196e8ade1 build: Introduce `SECP256k1_DLL_EXPORT` macro 9f1b1904a3 refactor: Replace `SECP256K1_API_VAR` with `SECP256K1_API` ae9db95cea build: Introduce `SECP256K1_STATIC` macro for Windows users 7966aee31d Merge bitcoin-core/secp256k1#1369: ci: Print commit in Windows container a7bec34231 ci: Print commit in Windows container 249c81eaa3 Merge bitcoin-core/secp256k1#1368: ci: Drop manual checkout of merge commit 98579e297b ci: Drop manual checkout of merge commit 5b9f37f136 ci: Add `CFLAGS: -O1` to task matrix a6ca76cdf2 Avoid `-Wmaybe-uninitialized` when compiling with `gcc -O1` 0fa84f869d Merge bitcoin-core/secp256k1#1358: tests: introduce helper for non-zero `random_fe_test()` results 5a95a268b9 tests: introduce helper for non-zero `random_fe_test` results 304421d57b tests: refactor: remove duplicate function `random_field_element_test` 3aef6ab8e1 Merge bitcoin-core/secp256k1#1345: field: Static-assert that int args affecting magnitude are constant 4494a369b6 Merge bitcoin-core/secp256k1#1357: tests: refactor: take use of `secp256k1_ge_x_on_curve_var` 799f4eec27 Merge bitcoin-core/secp256k1#1356: ci: Adjust Docker image to Debian 12 "bookworm" c862a9fb49 ci: Adjust Docker image to Debian 12 "bookworm" a1782098a9 ci: Force DWARF v4 for Clang when Valgrind tests are expected 7d8d5c86df tests: refactor: take use of `secp256k1_ge_x_on_curve_var` 8a7273465b Help the compiler prove that a loop is entered fd491ea1bb Merge bitcoin-core/secp256k1#1355: Fix a typo in the error message ac43613d25 Merge bitcoin-core/secp256k1#1354: Add ellswift to CHANGELOG 67887ae65c Fix a typo in the error message 926dd3e962 Merge bitcoin-core/secp256k1#1295: abi: Use dllexport for mingw builds 10836832e7 Merge bitcoin-core/secp256k1#1336: Use `__shiftright128` intrinsic in `secp256k1_u128_rshift` on MSVC 7c7467ab7f Refer to ellswift.md in API docs c32ffd8d8c Add ellswift to CHANGELOG 3c1a0fd37f Merge bitcoin-core/secp256k1#1347: field: Document return value of fe_sqrt() 705ce7ed8c Merge bitcoin-core/secp256k1#1129: ElligatorSwift + integrated x-only DH 0702ecb061 Merge bitcoin-core/secp256k1#1338: Drop no longer needed `#include "../include/secp256k1.h"` 5779137457 field: Document return value of fe_sqrt() 90e360acc2 Add doc/ellswift.md with ElligatorSwift explanation 4f091847c2 Add ellswift testing to CI 1bcea8c57f Add benchmarks for ellswift module 2d1d41acf8 Add ctime tests for ellswift module df633cdeba Add _prefix and _bip324 ellswift_xdh hash functions 9695deb351 Add tests for ellswift module c47917bbd6 Add ellswift module implementing ElligatorSwift 79e5b2a8b8 Add functions to test if X coordinate is valid a597a5a9ce Add benchmark for key generation 30574f22ea Merge bitcoin-core/secp256k1#1349: Normalize ge produced from secp256k1_pubkey_load 45c5ca7675 Merge bitcoin-core/secp256k1#1350: scalar: introduce and use `secp256k1_{read,write}_be64` helpers f1652528be Normalize ge produced from secp256k1_pubkey_load 7067ee54b4 tests: add tests for `secp256k1_{read,write}_be64` 740528caad scalar: use newly introduced `secp256k1_{read,write}_be64` helpers (4x64 impl.) be8ff3a02a field: Static-assert that int args affecting magnitude are constant efa76c4bf7 group: remove unneeded normalize_weak in `secp256k1_ge_is_valid_var` 67214f5f7d Merge bitcoin-core/secp256k1#1339: scalar: refactor: use `secp256k1_{read,write}_be32` helpers cb1a59275c Merge bitcoin-core/secp256k1#1341: docs: correct `pubkey` param descriptions for `secp256k1_keypair_{xonly_,}pub` f3644287b1 docs: correct `pubkey` param descriptions for `secp256k1_keypair_{xonly_,}pub` 887183e7de scalar: use `secp256k1_{read,write}_be32` helpers (4x64 impl.) 52b84238de scalar: use `secp256k1_{read,write}_be32` helpers (8x32 impl.) e449af6872 Drop no longer needed `#include "../include/secp256k1.h"` 5b7bf2e9d4 Use `__shiftright128` intrinsic in `secp256k1_u128_rshift` on MSVC 60556c9f49 Merge bitcoin-core/secp256k1#1337: ci: Fix error D8037 in `cl.exe` (attempt 2) db29bf220c ci: Remove quirk that runs dummy command after wineserver c7db4942b3 ci: Fix error D8037 in `cl.exe` 7dae115861 Revert "ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe" bf29f8d0a6 Merge bitcoin-core/secp256k1#1334: fix input range comment for `secp256k1_fe_add_int` 605e07e365 fix input range comment for `secp256k1_fe_add_int` debf3e5c08 Merge bitcoin-core/secp256k1#1330: refactor: take use of `secp256k1_scalar_{zero,one}` constants d75dc59b58 Merge bitcoin-core/secp256k1#1333: test: Warn if both `VERIFY` and `COVERAGE` are defined ade5b36701 tests: add checks for scalar constants `secp256k1_scalar_{zero,one}` e83801f5db test: Warn if both `VERIFY` and `COVERAGE` are defined 654246c635 refactor: take use of `secp256k1_scalar_{zero,one}` constants 908e02d596 Merge bitcoin-core/secp256k1#1328: build: Bump MSVC warning level up to W3 1549db0ca5 build: Level up MSVC warnings 20a5da5fb1 Merge bitcoin-core/secp256k1#1310: Refine release process 05873bb6b1 tweak_add: fix API doc for tweak=0 ad84603297 release process: clarify change log updates 6348bc7eee release process: fix process for maintenance release 79fa50b082 release process: mention targeted release schedule 165206789b release process: add sanity checks 09df0bfb23 Merge bitcoin-core/secp256k1#1327: ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe 27504d5c94 ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe d373a7215b Merge bitcoin-core/secp256k1#1316: Do not invoke fe_is_zero on failed set_b32_limit 6433175ffe Do not invoke fe_is_zero on failed set_b32_limit 5f7903c73c Merge bitcoin-core/secp256k1#1318: build: Enable -DVERIFY for precomputation binaries e9e4526a4e Merge bitcoin-core/secp256k1#1317: Make fe_cmov take max of magnitudes 5768b50229 build: Enable -DVERIFY for precomputation binaries 31b4bbee1e Make fe_cmov take max of magnitudes ff33018fe7 Merge BlockstreamResearch/secp256k1-zkp#232: Backports from libsecp256k1 v0.3.2 39407c3f59 Mark stack variables as early clobber for technical correctness 56a5d41429 Bugfix: mark outputs as early clobber in scalar x86_64 asm c8c0f55a11 ct: Be cautious and use volatile trick in more "conditional" paths 3e94289966 ct: Use volatile trick in scalar_cond_negate 83186db34a Merge bitcoin-core/secp256k1#1314: release cleanup: bump version after 0.3.2 95448ef2f8 release cleanup: bump version after 0.3.2 acf5c55ae6 Merge bitcoin-core/secp256k1#1312: release: Prepare for 0.3.2 d490ca2046 release: Prepare for 0.3.2 3e3d125b83 Merge bitcoin-core/secp256k1#1309: changelog: Catch up e8295d07ab Merge bitcoin-core/secp256k1#1311: Revert "Remove unused scratch space from API" 697e1ccf4a changelog: Catch up 3ad1027a40 Revert "Remove unused scratch space from API" 76b43f3443 changelog: Add entry for ElementsProject#1303 7d4f86d242 Merge bitcoin-core/secp256k1#1307: Mark more assembly outputs as early clobber b54a0672ef Merge bitcoin-core/secp256k1#1304: build: Rename arm to arm32 and check if it's really supported c6bb29b303 build: Rename `64bit` to `x86_64` 8c9ae37a5a Add release note edcba04c28 Merge BlockstreamResearch/secp256k1-zkp#231: musig: add note about missing verification to partial_sign to doc 03246457a8 autotools: Add `SECP_ARM32_ASM_CHECK` macro ed4ba238e2 cmake: Add `check_arm32_assembly` function 350b4bd6e6 Mark stack variables as early clobber for technical correctness 0c729ba70d Bugfix: mark outputs as early clobber in scalar x86_64 asm 3353d3c753 Merge bitcoin-core/secp256k1#1207: Split fe_set_b32 into reducing and normalizing variants 4ab4ec38a0 musig: add note about missing verification to partial_sign to doc f50ad76004 musig: update version number of BIP 5b32602295 Split fe_set_b32 into reducing and normalizing variants 006ddc1f42 Merge bitcoin-core/secp256k1#1306: build: Make tests work with external default callbacks 1907f0f166 build: Make tests work with external default callbacks fb3a806365 Merge bitcoin-core/secp256k1#1133: schnorrsig: Add test vectors for variable-length messages cd54ac7c1c schnorrsig: Improve docs of schnorrsig_sign_custom 28687b0312 schnorrsig: Add BIP340 varlen test vectors 97a98bed1e schnorrsig: Refactor test vector code to allow varlen messages ab5a917128 Merge bitcoin-core/secp256k1#1303: ct: Use more volatile 9eb6934f69 Merge bitcoin-core/secp256k1#1305: Remove unused scratch space from API 073d98a076 Merge bitcoin-core/secp256k1#1292: refactor: Make 64-bit shift explicit 17fa21733a ct: Be cautious and use volatile trick in more "conditional" paths 5fb336f9ce ct: Use volatile trick in scalar_cond_negate 712e7f8722 Remove unused scratch space from API 54d34b6c24 Merge bitcoin-core/secp256k1#1300: Avoid normalize conditional on VERIFY c63ec88ebf Merge bitcoin-core/secp256k1#1066: Abstract out and merge all the magnitude/normalized logic 7fc642fa25 Simplify secp256k1_fe_{impl_,}verify 4e176ad5b9 Abstract out verify logic for fe_is_square_var 4371f98346 Abstract out verify logic for fe_add_int 89e324c6b9 Abstract out verify logic for fe_half 283cd80ab4 Abstract out verify logic for fe_get_bounds d5aa2f0358 Abstract out verify logic for fe_inv{,_var} 3167646072 Abstract out verify logic for fe_from_storage 76d31e5047 Abstract out verify logic for fe_to_storage 1e6894bdd7 Abstract out verify logic for fe_cmov be82bd8e03 Improve comments/checks for fe_sqrt 6ab35082ef Abstract out verify logic for fe_sqr 4c25f6efbd Abstract out verify logic for fe_mul e179e651cb Abstract out verify logic for fe_add 7e7ad7ff57 Abstract out verify logic for fe_mul_int 65d82a3445 Abstract out verify logic for fe_negate 144670893e Abstract out verify logic for fe_get_b32 f7a7666aeb Abstract out verify logic for fe_set_b32 ce4d2093e8 Abstract out verify logic for fe_cmp_var 7d7d43c6dd Improve comments/check for fe_equal{,_var} c5e788d672 Abstract out verify logic for fe_is_odd d3f3fe8616 Abstract out verify logic for fe_is_zero c701d9a471 Abstract out verify logic for fe_clear 19a2bfeeea Abstract out verify logic for fe_set_int 864f9db491 Abstract out verify logic for fe_normalizes_to_zero{,_var} 6c31371120 Abstract out verify logic for fe_normalize_var e28b51f522 Abstract out verify logic for fe_normalize_weak b6b6f9cb97 Abstract out verify logic for fe_normalize 7fa5195559 Bugfix: correct SECP256K1_FE_CONST mag/norm fields e5cf4bf3ff build: Rename `arm` to `arm32` b29566c51b Merge magnitude/normalized fields, move/improve comments 97c63b9039 Avoid normalize conditional on VERIFY 341cc19726 Merge bitcoin-core/secp256k1#1299: Infinity handling: ecmult_const(infinity) works, and group verification 6ec3731e8c Simplify test PRNG implementation bbc834467c Avoid secp256k1_ge_set_gej_zinv with uninitialized z 0a2e0b2ae4 Make secp256k1_{fe,ge,gej}_verify work as no-op if non-VERIFY f20266722a Add invariant checking to group elements a18821d5b1 Always initialize output coordinates in secp256k1_ge_set_gej 3086cb90ac Expose secp256k1_fe_verify to other modules a0e696fd4d Make secp256k1_ecmult_const handle infinity 24c768ae09 Merge bitcoin-core/secp256k1#1301: Avoid using bench_verify_data as bench_sign_data; merge them 2e65f1fdbc Avoid using bench_verify_data as bench_sign_data; merge them fb5bfa4eed Add static test vector for Xoshiro256++ 1cf15ebd94 Merge bitcoin-core/secp256k1#1296: docs: complete interface description for `secp256k1_schnorrsig_sign_custom` 4eab2c2fd8 Merge BlockstreamResearch/secp256k1-zkp#230: norm arg: add prove test vectors 723e8ca8f7 Remove randomness tests bc7c8db179 abi: Use dllexport for mingw builds 149c41cee1 docs: complete interface description for `secp256k1_schnorrsig_sign_custom` f30c74866b Merge bitcoin-core/secp256k1#1270: cmake: Fix library ABI versioning d1e48e5474 refactor: Make 64-bit shift explicit b2e29e43d0 ci: Treat all compiler warnings as errors in "Windows (VS 2022)" task 3c81838856 Merge bitcoin-core/secp256k1#1289: cmake: Use full signature of `add_test()` command 755629bc03 cmake: Use full signature of `add_test()` command bef448f9af cmake: Fix library ABI versioning 4b0f711d46 Merge bitcoin-core/secp256k1#1277: autotools: Clean up after adding Wycheproof 222ecaf661 Merge bitcoin-core/secp256k1#1284: cmake: Some improvements using `PROJECT_IS_TOP_LEVEL` variable 71f746c057 cmake: Include `include` directory for subtree builds 024a409484 Merge bitcoin-core/secp256k1#1240: cmake: Improve and document compiler flag checks a8d059f76c cmake, doc: Document compiler flags 6ece1507cb cmake, refactor: Rename `try_add_compile_option` to `try_append_cflags` 19516ed3e9 cmake: Use `add_compile_options()` in `try_add_compile_option()` 4b84f4bf0f Merge bitcoin-core/secp256k1#1239: cmake: Bugfix and other improvements after bumping CMake up to 3.13 596b336ff6 Merge bitcoin-core/secp256k1#1234: cmake: Add dev-mode 6b7e5b717d Merge bitcoin-core/secp256k1#1275: build: Fix C4005 "macro redefinition" MSVC warnings in examples 1c89536718 Merge bitcoin-core/secp256k1#1286: tests: remove extra semicolon in macro c4062d6b5d debug: move helper for printing buffers into util.h f3126fdfec norm arg: remove prove edge tests which are now covered by vectors 847ed9ecb2 norm arg: add verification to prove vectors 7e977b3c50 autotools: Take VPATH builds into account when generating testvectors 2418d3260a autotools: Create src/wycheproof dir before creating file in it 8764034ed5 autotools: Make all "pregenerated" targets .PHONY e1b9ce8811 autotools: Use same conventions for all pregenerated files cf797ed2a4 norm arg: add prove test vectors 095c1e749c norm arg: add prove_const to tests ce18267b66 Merge BlockstreamResearch/secp256k1-zkp#229: musig: Fix nits left open in ElementsProject#211 78ed0e09ca Merge BlockstreamResearch/secp256k1-zkp#227: Use relative #include paths and tidy header guards (as in upstream) 3858bad2c6 tests: remove extra semicolon in macro 1f33bb2b1c Merge bitcoin-core/secp256k1#1205: field: Improve docs +tests of secp256k1_fe_set_b32 e7fc61ff16 Merge BlockstreamResearch/secp256k1-zkp#228: Simple dedicated -zkp README 162da73e9a tests: Add debug helper for printing buffers e9fd3dff76 field: Improve docs and tests of secp256k1_fe_set_b32 a0b51afc01 musig: VERIFY_CHECK preconditions of _musig_keyaggcoef_internal() da7702844e extrakeys: Clarify comparison order of compare/sort functions f6bef03c0a Merge bitcoin-core/secp256k1#1283: Get rid of secp256k1_fe_const_b 5431b9decd cmake: Make `SECP256K1_INSTALL` default depend on `PROJECT_IS_TOP_LEVEL` 5ec1333d4f Merge bitcoin-core/secp256k1#1285: bench: Make sys/time.h a system include 4d9d8f92d4 Simple dedicated -zkp README e444d24bca Fix include guards: No _ prefix/suffix but _H suffix (as in upstream) 0eea7d97ab Use relative #include paths in tests (as in upstream) c690d6df70 Use relative #include paths in benchmarks (as in upstream) c565827c1a Use relative #include paths in ctime_test (as in upstream) 4eca406f4c Use relative #include paths in library (as in upstream) 68b16a1662 bench: Make sys/time.h a system include 162608cc98 cmake: Emulate `PROJECT_IS_TOP_LEVEL` for CMake<3.21 69e1ec0331 Get rid of secp256k1_fe_const_b bf7bf8a64f norm arg: split norm_arg_zero into prove_edge and verify_zero_len a70c4d4a8a norm arg: add test vector for |n| = 0 f5e4b16f0f norm arg: add test vector for sign bit malleability c0de361fc5 norm arg: allow X and R to be the point at infinity f22834f202 norm arg: add verify vector for n = [0], l = [0] d8e7f3763b musig: move ge_{serialize,parse}_ext to module-independent file 050d9b2912 Merge BlockstreamResearch/secp256k1-zkp#226: bppp: align terminology with paper ce5ba9e24d gitignore: Add CMakeUserPresets.json 0a446a312f cmake: Add dev-mode CMake preset a6f4bcf6e1 Merge bitcoin-core/secp256k1#1231: Move `SECP256K1_INLINE` macro definition out from `include/secp256k1.h` a273d74b2e cmake: Improve version comparison 6a58b483ef cmake: Use `if(... IN_LIST ...)` command 2445808c02 cmake: Use dedicated `GENERATOR_IS_MULTI_CONFIG` property 9f8703ef17 cmake: Use dedicated `CMAKE_HOST_APPLE` variable 8c2017035a cmake: Use recommended `add_compile_definitions` command 04d4cc071a cmake: Add `DESCRIPTION` and `HOMEPAGE_URL` options to `project` command 8a8b6536ef cmake: Use `SameMinorVersion` compatibility mode 5b0444a3b5 Merge bitcoin-core/secp256k1#1263: cmake: Make installation optional 47ac3d63cd cmake: Make installation optional 2e035af251 Merge bitcoin-core/secp256k1#1273: build: Make `SECP_VALGRIND_CHECK` preserve `CPPFLAGS` 5be353d658 Merge bitcoin-core/secp256k1#1279: tests: lint wycheproof's python script 08f4b1632d autotools: Move code around to tidy Makefile 2c63d17c1e bppp: align terminology with paper (gamma) dbf2e4d3e1 bppp: align terminology with paper (mu, rho) 04bf3f6778 Merge bitcoin-core/secp256k1#1230: Build: allow static or shared but not both 9ce9984f32 Merge bitcoin-core/secp256k1#1265: Remove bits argument from secp256k1_wnaf_const{_xonly} 566faa17d3 Merge bitcoin-core/secp256k1#1267: doc: clarify process for patch releases ef49a11d29 build: allow static or shared but not both f4dd0419aa Merge BlockstreamResearch/secp256k1-zkp#225: sync-upstream: Use --autostash to handle uncommitted changes 35ada3b954 tests: lint wycheproof's python script 4258c54f4e Merge bitcoin-core/secp256k1#1276: autotools: Don't regenerate Wycheproof header automatically 529b54d922 autotools: Move Wycheproof header from EXTRA_DIST to noinst_HEADERS 06c67dea9f autotools: Don't regenerate Wycheproof header automatically dc0657c762 build: Fix C4005 "macro redefinition" MSVC warnings in examples 1ecb94ebe9 build: Make `SECP_VALGRIND_CHECK` preserve `CPPFLAGS` 13c438cdee sync-upstream: Use --autostash to handle uncommitted changes 6ec1ff6040 Merge BlockstreamResearch/secp256k1-zkp#224: Backport of "ct: Use volatile "trick" in all fe/scalar cmov implementations" 96f4853850 ct: Use volatile "trick" in all fe/scalar cmov implementations 3bab71cf05 Merge bitcoin-core/secp256k1#1268: release cleanup: bump version after 0.3.1 656c6ea8d8 release cleanup: bump version after 0.3.1 346a053d4c Merge bitcoin-core/secp256k1#1269: changelog: Fix link 6a37b2a5ea changelog: Fix link ec98fcedd5 Merge bitcoin-core/secp256k1#1266: release: Prepare for 0.3.1 1b6fb5593c doc: clarify process for patch releases 898e1c676e release: Prepare for 0.3.1 1d9a13fc26 changelog: Remove inconsistent newlines 0e091669a1 changelog: Catch up in preparation of 0.3.1 7b7503dac5 Merge bitcoin-core/secp256k1#1245: tests: Add Wycheproof ECDSA vectors a575339c02 Remove bits argument from secp256k1_wnaf_const (always 256) 145078c418 Merge bitcoin-core/secp256k1#1118: Add x-only ecmult_const version with x specified as n/d e5de454609 tests: Add Wycheproof ECDSA vectors 0f8642079b Add exhaustive tests for ecmult_const_xonly 4485926ace Add x-only ecmult_const version for x=n/d a0f4644f7e Merge bitcoin-core/secp256k1#1252: Make position of * in pointer declarations in include/ consistent 4e682626a3 Merge bitcoin-core/secp256k1#1226: Add CMake instructions to release process 2d51a454fc Merge bitcoin-core/secp256k1#1257: ct: Use volatile "trick" in all fe/scalar cmov implementations 4a496a36fb ct: Use volatile "trick" in all fe/scalar cmov implementations 3d1f430f9f Make position of * in pointer declarations in include/ consistent 2bca0a5cbf Merge bitcoin-core/secp256k1#1241: build: Improve `SECP_TRY_APPEND_DEFAULT_CFLAGS` macro afd8b23b27 Merge bitcoin-core/secp256k1#1244: Suppress `-Wunused-parameter` when building for coverage analysis 1d8f367515 Merge bitcoin-core/secp256k1#1250: No need to subtract 1 before doing a right shift 3e43041be6 No need to subtract 1 before doing a right shift 3addb4c1e8 build: Improve `SECP_TRY_APPEND_DEFAULT_CFLAGS` macro 0c07c82834 Add CMake instructions to release process 464a9115b4 Merge bitcoin-core/secp256k1#1242: Set ARM ASM symbol visibility to `hidden` f16a709fd6 Merge bitcoin-core/secp256k1#1247: Apply Checks only in VERIFY mode. 70be3cade5 Merge bitcoin-core/secp256k1#1246: Typo 4ebd82852d Apply Checks only in VERIFY mode. d1e7ca192d Typo 36b0adf1b9 build: remove warning until it's reproducible 5bb03c2911 Replace `SECP256K1_ECMULT_TABLE_VERIFY` macro by a function 9c8c4f443c Merge bitcoin-core/secp256k1#1238: build: bump CMake minimum requirement to 3.13 0cf2fb91ef Merge bitcoin-core/secp256k1#1243: build: Ensure no optimization when building for coverage analysis fd2a408647 Set ARM ASM symbol visibility to `hidden` 4429a8c218 Suppress `-Wunused-parameter` when building for coverage analysis 8e79c7ed11 build: Ensure no optimization when building for coverage analysis 96dd062511 build: bump CMake minimum requirement to 3.13 427bc3cdcf Merge bitcoin-core/secp256k1#1236: Update comment for secp256k1_modinv32_inv256 647f0a5cb1 Update comment for secp256k1_modinv32_inv256 8e142ca410 Move `SECP256K1_INLINE` macro definition out from `include/secp256k1.h` 77445898a5 Remove `SECP256K1_INLINE` usage from examples 5658209459 Merge bitcoin-core/secp256k1#1228: release cleanup: bump version after 0.3.0 bdf39000b9 Merge bitcoin-core/secp256k1#1223: release: prepare for 0.3.0 28e63f7ea7 release cleanup: bump version after 0.3.0 b40adf2360 release: prepare for 0.3.0 90b513aada Merge bitcoin-core/secp256k1#1229: cmake: Rename project to "libsecp256k1" 8be82d4362 cmake: Rename project to "libsecp256k1" ef4f8bd025 Merge bitcoin-core/secp256k1#1227: readme: Use correct build type in CMake/Windows build instructions 756b61d451 readme: Use correct build type in CMake/Windows build instructions 3295aa149b Merge bitcoin-core/secp256k1#1225: changelog: Add entry for CMake 92098d84cf changelog: Add entry for CMake df323b5c14 Merge bitcoin-core/secp256k1#1113: build: Add CMake-based build system e1eb33724c ci: Add "x86_64: Windows (VS 2022)" task 10602b0030 cmake: Export config files 5468d70964 build: Add CMake-based build system 6048e6c03e Merge bitcoin-core/secp256k1#1222: Remove redundant checks. eb8749fcd0 Merge bitcoin-core/secp256k1#1221: Update Changelog 5d8f53e312 Remove redudent checks. 9d1b458d5f Merge bitcoin-core/secp256k1#1217: Add secp256k1_fe_add_int function d232112fa7 Update Changelog 8962fc95bb Merge bitcoin-core/secp256k1#1218: Update overflow check 2ef1c9b387 Update overflow check 1d25608900 Merge BlockstreamResearch/secp256k1-zkp#223: musig: Update to BIP v1.0.0-rc.4 (Check pubnonce in NonceGen vectors) d23c23e24d musig: Update to BIP v1.0.0-rc.4 (Check pubnonce in NonceGen vectors) c4862f6869 Merge BlockstreamResearch/secp256k1-zkp#215: musig: include pubkey in secnonce and compare when signing a1ec2bb67b musig: add test for signing with wrong secnonce for a keypair bd57a017aa musig: include pubkey in secnonce and compare when signing 5757318782 Merge bitcoin-core/secp256k1#1212: Prevent dead-store elimination when clearing secrets in examples b081f7e4cb Add secp256k1_fe_add_int function 4f57024d86 Merge BlockstreamResearch/secp256k1-zkp#211: Update musig module to BIP MuSig2 v1.0.0-rc.3 5660c13755 prevent optimization in algorithms 09b1d466db Merge bitcoin-core/secp256k1#979: Native jacobi symbol algorithm ce3cfc78a6 doc: Describe Jacobi calculation in safegcd_implementation.md 6be01036c8 Add secp256k1_fe_is_square_var function 1de2a01c2b Native jacobi symbol algorithm 04c6c1b181 Make secp256k1_modinv64_det_check_pow2 support abs val 5fffb2c7af Make secp256k1_i128_check_pow2 support -(2^n) 8ec6d111c8 Merge BlockstreamResearch/secp256k1-zkp#205: Bulletproofs++: Norm argument cbd2555934 Merge bitcoin-core/secp256k1#1209: build: Add SECP256K1_API_VAR to fix importing variables from DLLs 1b21aa5175 Merge bitcoin-core/secp256k1#1078: group: Save a normalize_to_zero in gej_add_ge d7fb25c8ca Make sure that bppp_log2 isn't called with value 0 e5a01d12c6 Rename buletproof_pp* to bppp* c983186872 transcript: add tests 73edc75528 norm arg: add verification vectors 13ad32e814 norm arg: add tests for zero length and zero vectors 34c4847a6a ci: add bulletproofs 2574516483 Add testcases for bulletproofs++ norm arugment 46c7391154 Add norm argument verify API b43dd83b43 musig: add missing static keyword to function 068e6a036a musig: add test vectors from BIP MuSig 36621d13be musig: update to BIP v1.0.0-rc.2 "Add ''pk'' arg to ''NonceGen''" d717a4980b musig: update to BIP v0.8 "Switch from X-only to plain pk inputs." 304f1bc96d extrakeys: add pubkey_sort test vectors from BIP MuSig2 ae89051547 extrakeys: replace xonly_sort with pubkey_sort 98242fcdd9 extrakeys: add secp256k1_pubkey_cmp 73d5b6654d musig: update to BIP v0.7.0 (NonceGen) 060887e9d7 musig: update to BIP v0.5.1 "Rename ordinary tweaking to plain" d9145455bb Add bulletproofs++ norm argument prove API 8638f0e0ce Add internal BP++ commit API 412f8f66a0 Add utility functions required in norm argument 420353d7da Add utilities for log2 17417d44f3 Add utilities from uncompressed Bulletproofs PR 48563c8c79 bulletproofs: add API functionality to generate a large set of generators 048f9f8642 bulletproofs: add new empty module 6162d577fe generator: cleanups in Pedersen/generator code e4330341bd ci: Shutdown wineserver whenever CI script exits 9a5a611a21 build: Suppress stupid MSVC linker warning 739c53b19a examples: Extend sig examples by call that uses static context 914276e4d2 build: Add SECP256K1_API_VAR to fix importing variables from DLLs 1cca7c1744 Merge bitcoin-core/secp256k1#1206: build: Add -Wreserved-identifier supported by clang 8c7e0fc1de build: Add -Wreserved-identifier supported by clang ca92a35d01 field: Simplify code in secp256k1_fe_set_b32 d93f62e369 field: Verify field element even after secp256k1_fe_set_b32 fails 8ebe5c5205 Merge bitcoin-core/secp256k1#1201: ci: Do not set git's `user.{email,name}` config options 5596ec5c2c Merge bitcoin-core/secp256k1#1203: Do not link `bench` and `ctime_tests` to `COMMON_LIB` ef39721ccc Do not link `bench` and `ctime_tests` to `COMMON_LIB` 9b60e3148d ci: Do not set git's `user.{email,name}` config options e1817a6f54 Merge bitcoin-core/secp256k1#1199: ci: Minor improvements inspired by Bitcoin Core 1bff200588 Merge bitcoin-core/secp256k1#1200: Drop no longer used Autoheader macros 9b7d18669d Drop no longer used Autoheader macros c2415866c7 ci: Don't fetch git history 0ecf318851 ci: Use remote pull/merge ref instead of local git merge 0a6006989f Revert "Remove unused scalar_sqr" 87373f5145 MOVE ONLY: move Pedersen commitment stuff to generator module from rangeproof module b1f1675375 Merge BlockstreamResearch/secp256k1-zkp#214: sync-upstream: Fix $REPRODUCE_COMMAND for "select" cbe2815633 musig: update to BIP v0.4 "Allow the output of NonceAgg to be inf" 206017d67d musig: update to BIP v0.3 (NonceGen) d800dd55db musig: remove test vectors a58c7d29bd Merge BlockstreamResearch/secp256k1-zkp#213: Update macOS image for CI e04c660b11 sync-upstream: Fix $REPRODUCE_COMMAND for "select" 3b2c675955 Update macOS image for CI 2b77240b3b Merge bitcoin-core/secp256k1#1172: benchmarks: fix bench_scalar_split eb6bebaee3 scalar: restrict split_lambda args, improve doc and VERIFY_CHECKs 7f49aa7f2d ci: add test job with -DVERIFY 620ba3d74b benchmarks: fix bench_scalar_split 5fbff5d348 Merge bitcoin-core/secp256k1#1170: contexts: Forbid destroying, cloning and randomizing the static context 233822d849 Merge bitcoin-core/secp256k1#1195: ctime_tests: improve output when CHECKMEM_RUNNING is not defined ad7433b140 Merge bitcoin-core/secp256k1#1196: Drop no longer used variables from the build system e39d954f11 tests: Add CHECK_ILLEGAL(_VOID) macros and use in static ctx tests 2cd4e3c0a9 Drop no longer used `SECP_{LIBS,INCLUDE}` variables 613626f94c Drop no longer used `SECP_TEST_{LIBS,INCLUDE}` variables 61841fc9ee contexts: Forbid randomizing secp256k1_context_static 4b6df5e33e contexts: Forbid cloning/destroying secp256k1_context_static b1579cf5fb Merge bitcoin-core/secp256k1#1194: Ensure safety of ctz_debruijn implementation. 8f51229e03 ctime_tests: improve output when CHECKMEM_RUNNING is not defined d6ff738d5b Ensure safety of ctz_debruijn implementation. a01a7d86dc Merge bitcoin-core/secp256k1#1192: Switch to exhaustive groups with small B coefficient a7a7bfaf3d Merge bitcoin-core/secp256k1#1190: Make all non-API functions (except main) static f29a327092 Merge bitcoin-core/secp256k1#1169: Add support for msan instead of valgrind (for memcheck and ctime test) ff8edf89e2 Merge bitcoin-core/secp256k1#1193: Add `noverify_tests` to `.gitignore` ce60785b26 Introduce SECP256K1_B macro for curve b coefficient 4934aa7995 Switch to exhaustive groups with small B coefficient d4a6b58df7 Add `noverify_tests` to `.gitignore` 88e80722d2 Merge bitcoin-core/secp256k1#1160: Makefile: add `-I$(top_srcdir)/{include,src}` to `CPPFLAGS` for precomputed 0f088ec112 Rename CTIMETEST -> CTIMETESTS 74b026f05d Add runtime checking for DECLASSIFY flag 5e2e6fcfc0 Run ctime test in Linux MSan CI job 18974061a3 Make ctime tests building configurable 5048be17e9 Rename valgrind_ctime_test -> ctime_tests 6eed6c18de Update error messages to suggest msan as well 8e11f89a68 Add support for msan integration to checkmem.h 8dc64079eb Add compile-time error to valgrind_ctime_test 0db05a770e Abstract interactions with valgrind behind new checkmem.h 4f1a54e41d Move valgrind CPPFLAGS into SECP_CONFIG_DEFINES cc3b8a4f40 Merge bitcoin-core/secp256k1#1187: refactor: Rename global variables in tests 9a93f48f50 refactor: Rename STTC to STATIC_CTX in tests 3385a2648d refactor: Rename global variables to uppercase in tests e03ef86559 Make all non-API functions (except main) static cbe41ac138 Merge bitcoin-core/secp256k1#1188: tests: Add noverify_tests which is like tests but without VERIFY 203760023c tests: Add noverify_tests which is like tests but without VERIFY e862c4af0c Makefile: add -I$(top_srcdir)/src to CPPFLAGS for precomputed 0eb3000417 Merge bitcoin-core/secp256k1#1186: tests: Tidy context tests 39e8f0e3d7 refactor: Separate run_context_tests into static vs proper contexts a4a09379b1 tests: Clean up and improve run_context_tests() further fc90bb5695 refactor: Tidy up main() f32a36f620 tests: Don't use global context for context tests ce4f936c4f tests: Tidy run_context_tests() by extracting functions 18e0db30cb tests: Don't recreate global context in scratch space test b19806122e tests: Use global copy of secp256k1_context_static instead of clone 2a39ac162e Merge bitcoin-core/secp256k1#1185: Drop `SECP_CONFIG_DEFINES` from examples 2f9ca284e2 Drop `SECP_CONFIG_DEFINES` from examples 31ed5386e8 Merge bitcoin-core/secp256k1#1183: Bugfix: pass SECP_CONFIG_DEFINES to bench compilation c0a555b2ae Bugfix: pass SECP_CONFIG_DEFINES to bench compilation 01b819a8c7 Merge bitcoin-core/secp256k1#1158: Add a secp256k1_i128_to_u64 function. eacad90f69 Merge bitcoin-core/secp256k1#1171: Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) 3f57b9f774 Merge bitcoin-core/secp256k1#1177: Some improvements to the changelog c30b889f17 Clarify that the ABI-incompatible versions are earlier 881fc33d0c Consistency in naming of modules 665ba77e79 Merge bitcoin-core/secp256k1#1178: Drop `src/libsecp256k1-config.h` 75d7b7f5ba Merge bitcoin-core/secp256k1#1154: ci: set -u in cirrus.sh to treat unset variables as an error 7a74688201 ci: add missing CFLAGS & CPPFLAGS variable to print_environment c2e0fdadeb ci: set -u in cirrus.sh to treat unset variables as an error 9c5a4d21bb Do not define unused `HAVE_VALGRIND` macro ad8647f548 Drop no longer relevant files from `.gitignore` b627ba7050 Remove dependency on `src/libsecp256k1-config.h` 9ecf8149a1 Reduce font size in changelog 2dc133a67f Add more changelog entries ac233e181a Add links to diffs to changelog cee8223ef6 Mention semantic versioning in changelog 9a8d65f07f Merge bitcoin-core/secp256k1#1174: release cleanup: bump version after 0.2.0 02ebc290f7 release cleanup: bump version after 0.2.0 b6b360efaf doc: improve message of cleanup commit 21ffe4b22a Merge bitcoin-core/secp256k1#1055: Prepare initial release e025ccdf74 release: prepare for initial release 0.2.0 6d1784a2e2 build: add missing files to EXTRA_DIST 8c949f56da Merge bitcoin-core/secp256k1#1173: Don't use compute credits for now 13bf1b6b32 changelog: make order of change types match keepachangelog.com b1f992a552 doc: improve release process 7e5b22684f Don't use compute credits for now a49e0940ad docs: Fix typo 2551cdac90 tests: Fix code formatting c635c1bfd5 Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) cf66f2357c refactor: Add helper function secp256k1_context_is_proper() ad39e2dc41 build: change package version to 0.1.0-dev 5c789dcd73 Merge bitcoin-core/secp256k1#1168: Replace deprecated context flags with NONE in benchmarks and tests d6dc0f4ae3 tests: Switch to NONE contexts in module tests 0c8a5caddd tests: Switch to NONE contexts in tests.c 86540e9e1f tests: add test for deprecated flags and rm them from run_context caa0ad631e group: add gej_eq_var 37ba744f5b tests: Switch to NONE contexts in exhaustive and ctime tests 8d7a9a8eda benchmarks: Switch to NONE contexts 90618e9263 doc: move CHANGELOG from doc/ to root directory e3f84777eb Merge bitcoin-core/secp256k1#1126: API cleanup with respect to contexts 4386a2306c examples: Switch to NONE contexts 7289b51d31 docs: Use doxygen style if and only if comment is user-facing e7d0185c90 docs: Get rid of "initialized for signing" terminology 06126364ad docs: Tidy and improve docs about contexts and randomization e02d6862bd selftest: Expose in public API e383fbfa66 selftest: Rename internal function to make name available for API d2c6d48de3 tests: Use new name of static context 53796d2b24 contexts: Rename static context 72fedf8a6c docs: Improve docs for static context 316ac7625a contexts: Deprecate all context flags except SECP256K1_CONTEXT_NONE 477f02c4de Merge bitcoin-core/secp256k1#1165: gitignore: Add *.sage.py files autogenerated by sage [skip ci] 092be61c5e gitignore: Add *.sage.py files autogenerated by sage 1a553ee8be docs: Change signature "validation" to "verification" ee7341fbac docs: Never require a verification context 751c4354d5 Merge bitcoin-core/secp256k1#1152: Update macOS image for CI 2286f80902 Merge bitcoin-core/secp256k1#993: Enable non-experimental modules by default d216475205 test secp256k1_i128_to_i64 4bc429019d Add a secp256k1_i128_to_u64 function. e40fd277b7 Merge bitcoin-core/secp256k1#1156: Followups to int128_struct arithmetic 99bd335599 Make int128 overflow test use secp256k1_[ui]128_mul a8494b02bf Use compute credits for macOS jobs 3afce0af7c Avoid signed overflow in MSVC AMR64 secp256k1_mul128 c0ae48c995 Update macOS image for CI 9b5f589d30 Heuristically decide whether to use int128_struct 63ff064d2f int128: Add test override for testing __(u)mulh on MSVC X64 f2b7e88768 Add int128 randomized tests 6138d73be4 Merge bitcoin-core/secp256k1#1155: Add MSan CI jobs ddf2b2910e Merge bitcoin-core/secp256k1#1000: Synthetic int128 type. 86e3b38a4a Merge bitcoin-core/secp256k1#1149: Remove usage of CHECK from non-test file 00a42b91b3 Add MSan CI job 44916ae915 Merge bitcoin-core/secp256k1#1147: ci: print env to allow reproducing the job outside of CI c2ee9175e9 Merge bitcoin-core/secp256k1#1146: ci: prevent "-v/--version: not found" irrelevant error e13fae487e Merge bitcoin-core/secp256k1#1150: ci: always cat test_env.log a340d9500a ci: add int128_struct tests dceaa1f579 int128: Tidy #includes of int128.h and int128_impl.h 2914bccbc0 Simulated int128 type. 6a965b6b98 Remove usage of CHECK from non-test file 5c9f1a5c37 ci: always cat all logs_snippets 49ae843592 ci: mostly prevent "-v/--version: not found" irrelevant error 4e54c03153 ci: print env to allow reproducing the job outside of CI a43e982bca Merge bitcoin-core/secp256k1#1144: Cleanup `.gitignore` file f5039cb66c Cleanup `.gitignore` file 798727ae1e Revert "Add test logs to gitignore" d22774e248 Merge BlockstreamResearch/secp256k1-zkp#203: MuSig doc fixes dd83e72d52 Add ordinary tweak info d26100cab2 Exclude nonce_process from pre-processing steps b7607f93f2 Fix reference to xonly_tweak_add f7e9a8544f Merge BlockstreamResearch/secp256k1-zkp#201: rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size 6b6ced9839 rangeproof: add more max_size tests 34876ecb5f rangeproof: add more static test vectors 310e517061 rangeproof: add a bunch more testing f1410cb67a rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size c137ddbdff Merge BlockstreamResearch/secp256k1-zkp#200: build: automatically enable module dependencies 0202d839fb Merge BlockstreamResearch/secp256k1-zkp#199: surjectionproof: make sure that n_used_pubkeys > 0 in generate 5ac8fb035e surjectionproof: make sure that n_used_pubkeys > 0 in generate 7ff446df8b Merge BlockstreamResearch/secp256k1-zkp#198: rangeproof: add a test for all-zero blinding factors 5a40f3d99b replace memcmp with secp256k1_memcmp_var throughout the codebase 92820d944b rangeproof: add a test for all-zero blinding factors 171b294a1c build: improve error message if --enable-experimental is missed 58ab152bb4 build: move all output concerning enabled modules at single place 1493113e61 build: automatically enable module dependencies 4fd7e1eabd Merge BlockstreamResearch/secp256k1-zkp#197: fix include paths in all the -zkp modules 347f96d94a fix include paths in all the -zkp modules 41e8704b48 build: Enable some modules by default 694ce8fb2d Merge bitcoin-core/secp256k1#1131: readme: Misc improvements 88b00897e7 readme: Fix line break 78f5296da4 readme: Sell "no runtime dependencies" ef48f088ad readme: Add IRC channel d1d6e47c17 Merge BlockstreamResearch/secp256k1-zkp#196: surjectionproof: fail to generate proofs when an input equals the output d1175d265d surjectionproof: use secp256k1_memcmp_var rather than bare memcmp bf18ff5a8c surjectionproof: fix generation to fail when any input == the output 4ff6e4274d surjectionproof: add test for existing behavior on input=output proofs 9f8a13dc8e Merge bitcoin-core/secp256k1#1128: configure: Remove pkgconfig macros again (reintroduced by mismerge) cabe085bb4 configure: Remove pkgconfig macros again (reintroduced by mismerge) 71a206fa5b Merge BlockstreamResearch/secp256k1-zkp#194: extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation db648478c3 extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation 3efeb9da21 Merge bitcoin-core/secp256k1#1121: config: Set preprocessor defaults for ECMULT_* config values 6a873cc4a9 Merge bitcoin-core/secp256k1#1122: tests: Randomize the context with probability 15/16 instead of 1/4 17065f48ae tests: Randomize the context with probability 15/16 instead of 1/4 c27ae45144 config: Remove basic-config.h da6514a04a config: Introduce DEBUG_CONFIG macro for debug output of config 63a3565e97 Merge bitcoin-core/secp256k1#1120: ecmult_gen: Skip RNG when creating blinding if no seed is available d0cf55e13a config: Set preprocessor defaults for ECMULT_* config values 55f8bc99dc ecmult_gen: Improve comments about projective blinding 7a86955800 ecmult_gen: Simplify code (no observable change) 4cc0b1b669 ecmult_gen: Skip RNG when creating blinding if no seed is available af65d30cc8 Merge bitcoin-core/secp256k1#1116: build: Fix #include "..." paths to get rid of further -I arguments 40a3473a9d build: Fix #include "..." paths to get rid of further -I arguments 43756da819 Merge bitcoin-core/secp256k1#1115: Fix sepc256k1 -> secp256k1 typo in group.h 069aba8125 Fix sepc256k1 -> secp256k1 typo in group.h accadc94df Merge bitcoin-core/secp256k1#1114: `_scratch_destroy`: move `VERIFY_CHECK` after invalid scrach space check cd47033335 Merge bitcoin-core/secp256k1#1084: ci: Add MSVC builds 1827c9bf2b scratch_destroy: move VERIFY_CHECK after invalid scrach space check 49e2acd927 configure: Improve rationale for WERROR_CFLAGS 8dc4b03341 ci: Add a C++ job that compiles the public headers without -fpermissive 51f296a46c ci: Run persistent wineserver to speed up wine 3fb3269c22 ci: Add 32-bit MinGW64 build 9efc2e5221 ci: Add MSVC builds 2be6ba0fed configure: Convince autotools to work with MSVC's archiver lib.exe bd81f4140a schnorrsig bench: Suppress a stupid warning in MSVC 44c2452fd3 Merge bitcoin-core/secp256k1#1105: Don't export symbols in static libraries 6f6cab9989 abi: Don't export symbols in static Windows libraries 485f608fa9 Merge bitcoin-core/secp256k1#1104: Fix the false positive of `SECP_64BIT_ASM_CHECK` 8b013fce51 Merge bitcoin-core/secp256k1#1056: Save negations in var-time group addition 7efc9835a9 Fix the false positive of `SECP_64BIT_ASM_CHECK` 2f984ffc45 Save negations in var-time group addition 09f3d71c51 configure: Add a few CFLAGS for MSVC 3b4f3d0d46 build: Reject C++ compilers in the preprocessor 1cc0941414 configure: Don't abort if the compiler does not define __STDC__ cca8cbbac8 configure: Output message when checking for valgrind 1a6be5745f bench: Make benchmarks compile on MSVC e089eecc1e group: Further simply gej_add_ge ac71020ebe group: Save a normalize_to_zero in gej_add_ge git-subtree-dir: src/secp256k1 git-subtree-split: b911b3cbd5814aed69d97144eb3093fa806d3a7f
delta1
added a commit
to delta1/elements
that referenced
this pull request
Aug 31, 2023
b2ccc8d9fd Merge BlockstreamResearch/secp256k1-zkp#260: Finish sync to upstream 395e65e9f1 Merge branch 'master' into sync-upstream 394e09ee84 musig: change test vector generation code shebang from python to python3 aa3edea119 scalar: Remove unused secp256k1_scalar_chacha20 167194bede rangeproof: Use util functions for writing big endian 82777bba34 bppp: Fix test for invalid sign byte 54b37db953 build: Fix linkage of extra binaries in -zkp modules 9e96a2e9d8 hsort tests: Don't call secp256k1_testrand_int(0) 80187089ff Merge commits '4494a369 3aef6ab8 0fa84f86 249c81ea 7966aee3 fb758fe8 3fc1de5c 0aacf643 9e6d1b0e 332af315 afd7eb4a c9ebca95 cc557575 0f7657d5 907a6721 b40e2d30 c545fdc3 2bd5f3e6 0e00fc7d c734c642 26392da2 ' into temp-merge-1386 50e20fa7d4 Merge BlockstreamResearch/secp256k1-zkp#257: Upstream PRs 1314, 1317, 1318, 1316, 1327, 1310, 1328, 1333, 1330, 1334, 1337, 1341, 1339, 1350, 1349, 1338, 1129, 1347, 1336, 1295, 1354, 1355, 1356 525b661f83 bppp/build: Fix linkage of benchmark 4c70cc9bf5 Suppress wrong/buggy warning in MSVC <19.33 579999b425 scalar: adjust muladd2 to new int128 interface b160486766 ecdsa_adaptor: add missing include 74d9073414 Merge commits '83186db3 e9e4526a 5f7903c7 d373a721 09df0bfb 20a5da5f 908e02d5 d75dc59b debf3e5c bf29f8d0 60556c9f cb1a5927 67214f5f 45c5ca76 30574f22 0702ecb0 705ce7ed 3c1a0fd3 10836832 926dd3e9 ac43613d fd491ea1 799f4eec ' into temp-merge-1356 26392da2fb Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh 4692478853 ci: print $ELLSWIFT in cirrus.sh c734c64278 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES 78ca880788 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7d10 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a466c1 util: remove unused checked_realloc e593ed5685 musig: ensure point_load output is normalized 7a07f3d33f Merge commits '3bab71cf 4258c54f 566faa17 9ce9984f 04bf3f67 5be353d6 2e035af2 5b0444a3 a6f4bcf6 5ec1333d f6bef03c 1f33bb2b 1c895367 6b7e5b71 596b336f 4b84f4bf 024a4094 222ecaf6 4b0f711d 3c818388 f30c7486 1cf15ebd 24c768ae 341cc197 c63ec88e 54d34b6c 073d98a0 9eb6934f ab5a9171 fb3a8063 006ddc1f 3353d3c7 b54a0672 7d4f86d2 e8295d07 3e3d125b acf5c55a ' into temp-merge-1312 2bd5f3e618 Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast a9a5c24de2 Merge commits '56582094 427bc3cd 0cf2fb91 9c8c4f44 70be3cad f16a709f 464a9115 1d8f3675 afd8b23b 2bca0a5c 2d51a454 4e682626 a0f4644f 145078c4 7b7503da ec98fced 346a053d ' into temp-merge-1269 4f8c5bd761 refactor: Drop unused cast bfeae121fb Merge BlockstreamResearch/secp256k1-zkp#255: musig: change test vector generation code shebang from python to python3 ea478beec6 musig: change test vector generation code shebang from python to python3 d47e4d40ca Merge BlockstreamResearch/secp256k1-zkp#252: Upstream PRs 1113, 1225, 1227, 1229, 1223 dc733595b0 Merge commits 'df323b5c 3295aa14 ef4f8bd0 90b513aa bdf39000 ' into temp-merge-1223 3937cefce6 Merge BlockstreamResearch/secp256k1-zkp#249: Upstream PRs 1160, 1193, 1169, 1190, 1192, 1194, 1196, 1195, 1170, 1172, 1200, 1199, 1203, 1201, 1206, 1078, 1209, 979, 1212, 1218, 1217, 1221, 1222 897c765a49 Merge BlockstreamResearch/secp256k1-zkp#251: Update sync-upstream with master 53bc63f9f9 Merge BlockstreamResearch/secp256k1-zkp#245: scalar: Remove unused secp256k1_scalar_chacha20 860360eed4 scalar: Remove unused secp256k1_scalar_chacha20 3970a7292a rangeproof: Use util functions for writing big endian afe7e649ee Merge BlockstreamResearch/secp256k1-zkp#248: bppp: Fix and improve test for invalid sign byte 1a6d93f8b6 Merge BlockstreamResearch/secp256k1-zkp#250: ci: Always define EXPERIMENTAL variable 3372993060 bppp: Fix test for invalid sign byte 7e9193666f ci: Always define EXPERIMENTAL variable 0d540ec942 Merge commits '88e80722 ff8edf89 f29a3270 a7a7bfaf a01a7d86 b1579cf5 ad7433b1 233822d8 5fbff5d3 2b77240b 1bff2005 e1817a6f 5596ec5c 8ebe5c52 1cca7c17 1b21aa51 cbd25559 09b1d466 57573187 8962fc95 9d1b458d eb8749fc 6048e6c0 ' into temp-merge-1222 7aa9887128 Merge pull request ElementsProject#246 from jonasnick/temp-merge-1187 304fc88557 Merge commits '9a8d65f0 75d7b7f5 665ba77e 3f57b9f7 eacad90f 01b819a8 31ed5386 2a39ac16 0eb30004 cbe41ac1 cc3b8a4f ' into temp-merge-1187 58e27bc2d2 Merge BlockstreamResearch/secp256k1-zkp#244: sync-upstream.sh: Add "git show --remerge-diff" tip c545fdc374 Merge bitcoin-core/secp256k1#1298: Remove randomness tests 0a99156871 sync-upstream.sh: Add "git show --remerge-diff" tip 6c54db1987 Merge commits '2286f809 751c4354 477f02c4 e3f84777 5c789dcd 8c949f56 21ffe4b2 ' into temp-merge-1055 30fc9d6551 Merge BlockstreamResearch/secp256k1-zkp#242: sync-upstream.sh: Fix position of "-b" option in reproduce command 9b6a1c384d sync-upstream.sh: Fix position of "-b" option in reproduce command b40e2d30b7 Merge bitcoin-core/secp256k1#1378: ellswift: fix probabilistic test failure when swapping sides e996d076da Merge commits '44916ae9 86e3b38a ddf2b291 6138d73b e40fd277 ' into temp-merge-1156 533571d6cf Merge BlockstreamResearch/secp256k1-zkp#239: sync-upstream: allows providing the local branch via cli 05b207e969 sync-upstream: allows providing the local branch via cli 64717a7b16 Merge commits '8b013fce 485f608f 44c2452f cd470333 accadc94 43756da8 af65d30c 63a3565e 6a873cc4 3efeb9da 9f8a13dc 694ce8fb a43e982b e13fae48 c2ee9175 ' into temp-merge-1146 9a981068ce Merge commits '8b013fce 485f608f 44c2452f cd470333 accadc94 43756da8 ' into temp-merge-1115 c424e2fb43 ellswift: fix probabilistic test failure when swapping sides 907a67212e Merge bitcoin-core/secp256k1#1313: ci: Test on development snapshots of GCC and Clang 0f7657d59c Merge bitcoin-core/secp256k1#1366: field: Use `restrict` consistently in fe_sqrt cc55757552 Merge bitcoin-core/secp256k1#1340: clean up in-comment Sage code (refer to secp256k1_params.sage, update to Python3) 600c5adcd5 clean up in-comment Sage code (refer to secp256k1_params.sage, update to Python3) 981e5be38c ci: Fix typo in comment e9e9648219 ci: Reduce number of macOS tasks from 28 to 8 609093b387 ci: Add x86_64 Linux tasks for gcc and clang snapshots 1deecaaf3b ci: Install development snapshots of gcc and clang b79ba8aa4c field: Use `restrict` consistently in fe_sqrt c9ebca95f9 Merge bitcoin-core/secp256k1#1363: doc: minor ellswift.md updates afd7eb4a55 Merge bitcoin-core/secp256k1#1371: Add exhaustive tests for ellswift (with create+decode roundtrip) 2792119278 Add exhaustive test for ellswift (create+decode roundtrip) c7d900ffd1 doc: minor ellswift.md updates 332af315fc Merge bitcoin-core/secp256k1#1344: group: save normalize_weak calls in `secp256k1_ge_is_valid_var`/`secp256k1_gej_eq_x_var` 9e6d1b0e9b Merge bitcoin-core/secp256k1#1367: build: Improvements to symbol visibility logic on Windows (attempt 3) 0aacf64352 Merge bitcoin-core/secp256k1#1370: Corrected some typos b6b9834e8d small fixes 07c0e8b82e group: remove unneeded normalize_weak in `secp256k1_gej_eq_x_var` 3fc1de5c55 Merge bitcoin-core/secp256k1#1364: Avoid `-Wmaybe-uninitialized` when compiling with `gcc -O1` fb758fe8d6 Merge bitcoin-core/secp256k1#1323: tweak_add: fix API doc for tweak=0 c6cd2b15a0 ci: Add task for static library on Windows + CMake 020bf69a44 build: Add extensive docs on visibility issues 0196e8ade1 build: Introduce `SECP256k1_DLL_EXPORT` macro 9f1b1904a3 refactor: Replace `SECP256K1_API_VAR` with `SECP256K1_API` ae9db95cea build: Introduce `SECP256K1_STATIC` macro for Windows users 7966aee31d Merge bitcoin-core/secp256k1#1369: ci: Print commit in Windows container a7bec34231 ci: Print commit in Windows container 249c81eaa3 Merge bitcoin-core/secp256k1#1368: ci: Drop manual checkout of merge commit 98579e297b ci: Drop manual checkout of merge commit 5b9f37f136 ci: Add `CFLAGS: -O1` to task matrix a6ca76cdf2 Avoid `-Wmaybe-uninitialized` when compiling with `gcc -O1` 0fa84f869d Merge bitcoin-core/secp256k1#1358: tests: introduce helper for non-zero `random_fe_test()` results 5a95a268b9 tests: introduce helper for non-zero `random_fe_test` results 304421d57b tests: refactor: remove duplicate function `random_field_element_test` 3aef6ab8e1 Merge bitcoin-core/secp256k1#1345: field: Static-assert that int args affecting magnitude are constant 4494a369b6 Merge bitcoin-core/secp256k1#1357: tests: refactor: take use of `secp256k1_ge_x_on_curve_var` 799f4eec27 Merge bitcoin-core/secp256k1#1356: ci: Adjust Docker image to Debian 12 "bookworm" c862a9fb49 ci: Adjust Docker image to Debian 12 "bookworm" a1782098a9 ci: Force DWARF v4 for Clang when Valgrind tests are expected 7d8d5c86df tests: refactor: take use of `secp256k1_ge_x_on_curve_var` 8a7273465b Help the compiler prove that a loop is entered fd491ea1bb Merge bitcoin-core/secp256k1#1355: Fix a typo in the error message ac43613d25 Merge bitcoin-core/secp256k1#1354: Add ellswift to CHANGELOG 67887ae65c Fix a typo in the error message 926dd3e962 Merge bitcoin-core/secp256k1#1295: abi: Use dllexport for mingw builds 10836832e7 Merge bitcoin-core/secp256k1#1336: Use `__shiftright128` intrinsic in `secp256k1_u128_rshift` on MSVC 7c7467ab7f Refer to ellswift.md in API docs c32ffd8d8c Add ellswift to CHANGELOG 3c1a0fd37f Merge bitcoin-core/secp256k1#1347: field: Document return value of fe_sqrt() 705ce7ed8c Merge bitcoin-core/secp256k1#1129: ElligatorSwift + integrated x-only DH 0702ecb061 Merge bitcoin-core/secp256k1#1338: Drop no longer needed `#include "../include/secp256k1.h"` 5779137457 field: Document return value of fe_sqrt() 90e360acc2 Add doc/ellswift.md with ElligatorSwift explanation 4f091847c2 Add ellswift testing to CI 1bcea8c57f Add benchmarks for ellswift module 2d1d41acf8 Add ctime tests for ellswift module df633cdeba Add _prefix and _bip324 ellswift_xdh hash functions 9695deb351 Add tests for ellswift module c47917bbd6 Add ellswift module implementing ElligatorSwift 79e5b2a8b8 Add functions to test if X coordinate is valid a597a5a9ce Add benchmark for key generation 30574f22ea Merge bitcoin-core/secp256k1#1349: Normalize ge produced from secp256k1_pubkey_load 45c5ca7675 Merge bitcoin-core/secp256k1#1350: scalar: introduce and use `secp256k1_{read,write}_be64` helpers f1652528be Normalize ge produced from secp256k1_pubkey_load 7067ee54b4 tests: add tests for `secp256k1_{read,write}_be64` 740528caad scalar: use newly introduced `secp256k1_{read,write}_be64` helpers (4x64 impl.) be8ff3a02a field: Static-assert that int args affecting magnitude are constant efa76c4bf7 group: remove unneeded normalize_weak in `secp256k1_ge_is_valid_var` 67214f5f7d Merge bitcoin-core/secp256k1#1339: scalar: refactor: use `secp256k1_{read,write}_be32` helpers cb1a59275c Merge bitcoin-core/secp256k1#1341: docs: correct `pubkey` param descriptions for `secp256k1_keypair_{xonly_,}pub` f3644287b1 docs: correct `pubkey` param descriptions for `secp256k1_keypair_{xonly_,}pub` 887183e7de scalar: use `secp256k1_{read,write}_be32` helpers (4x64 impl.) 52b84238de scalar: use `secp256k1_{read,write}_be32` helpers (8x32 impl.) e449af6872 Drop no longer needed `#include "../include/secp256k1.h"` 5b7bf2e9d4 Use `__shiftright128` intrinsic in `secp256k1_u128_rshift` on MSVC 60556c9f49 Merge bitcoin-core/secp256k1#1337: ci: Fix error D8037 in `cl.exe` (attempt 2) db29bf220c ci: Remove quirk that runs dummy command after wineserver c7db4942b3 ci: Fix error D8037 in `cl.exe` 7dae115861 Revert "ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe" bf29f8d0a6 Merge bitcoin-core/secp256k1#1334: fix input range comment for `secp256k1_fe_add_int` 605e07e365 fix input range comment for `secp256k1_fe_add_int` debf3e5c08 Merge bitcoin-core/secp256k1#1330: refactor: take use of `secp256k1_scalar_{zero,one}` constants d75dc59b58 Merge bitcoin-core/secp256k1#1333: test: Warn if both `VERIFY` and `COVERAGE` are defined ade5b36701 tests: add checks for scalar constants `secp256k1_scalar_{zero,one}` e83801f5db test: Warn if both `VERIFY` and `COVERAGE` are defined 654246c635 refactor: take use of `secp256k1_scalar_{zero,one}` constants 908e02d596 Merge bitcoin-core/secp256k1#1328: build: Bump MSVC warning level up to W3 1549db0ca5 build: Level up MSVC warnings 20a5da5fb1 Merge bitcoin-core/secp256k1#1310: Refine release process 05873bb6b1 tweak_add: fix API doc for tweak=0 ad84603297 release process: clarify change log updates 6348bc7eee release process: fix process for maintenance release 79fa50b082 release process: mention targeted release schedule 165206789b release process: add sanity checks 09df0bfb23 Merge bitcoin-core/secp256k1#1327: ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe 27504d5c94 ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe d373a7215b Merge bitcoin-core/secp256k1#1316: Do not invoke fe_is_zero on failed set_b32_limit 6433175ffe Do not invoke fe_is_zero on failed set_b32_limit 5f7903c73c Merge bitcoin-core/secp256k1#1318: build: Enable -DVERIFY for precomputation binaries e9e4526a4e Merge bitcoin-core/secp256k1#1317: Make fe_cmov take max of magnitudes 5768b50229 build: Enable -DVERIFY for precomputation binaries 31b4bbee1e Make fe_cmov take max of magnitudes ff33018fe7 Merge BlockstreamResearch/secp256k1-zkp#232: Backports from libsecp256k1 v0.3.2 39407c3f59 Mark stack variables as early clobber for technical correctness 56a5d41429 Bugfix: mark outputs as early clobber in scalar x86_64 asm c8c0f55a11 ct: Be cautious and use volatile trick in more "conditional" paths 3e94289966 ct: Use volatile trick in scalar_cond_negate 83186db34a Merge bitcoin-core/secp256k1#1314: release cleanup: bump version after 0.3.2 95448ef2f8 release cleanup: bump version after 0.3.2 acf5c55ae6 Merge bitcoin-core/secp256k1#1312: release: Prepare for 0.3.2 d490ca2046 release: Prepare for 0.3.2 3e3d125b83 Merge bitcoin-core/secp256k1#1309: changelog: Catch up e8295d07ab Merge bitcoin-core/secp256k1#1311: Revert "Remove unused scratch space from API" 697e1ccf4a changelog: Catch up 3ad1027a40 Revert "Remove unused scratch space from API" 76b43f3443 changelog: Add entry for ElementsProject#1303 7d4f86d242 Merge bitcoin-core/secp256k1#1307: Mark more assembly outputs as early clobber b54a0672ef Merge bitcoin-core/secp256k1#1304: build: Rename arm to arm32 and check if it's really supported c6bb29b303 build: Rename `64bit` to `x86_64` 8c9ae37a5a Add release note edcba04c28 Merge BlockstreamResearch/secp256k1-zkp#231: musig: add note about missing verification to partial_sign to doc 03246457a8 autotools: Add `SECP_ARM32_ASM_CHECK` macro ed4ba238e2 cmake: Add `check_arm32_assembly` function 350b4bd6e6 Mark stack variables as early clobber for technical correctness 0c729ba70d Bugfix: mark outputs as early clobber in scalar x86_64 asm 3353d3c753 Merge bitcoin-core/secp256k1#1207: Split fe_set_b32 into reducing and normalizing variants 4ab4ec38a0 musig: add note about missing verification to partial_sign to doc f50ad76004 musig: update version number of BIP 5b32602295 Split fe_set_b32 into reducing and normalizing variants 006ddc1f42 Merge bitcoin-core/secp256k1#1306: build: Make tests work with external default callbacks 1907f0f166 build: Make tests work with external default callbacks fb3a806365 Merge bitcoin-core/secp256k1#1133: schnorrsig: Add test vectors for variable-length messages cd54ac7c1c schnorrsig: Improve docs of schnorrsig_sign_custom 28687b0312 schnorrsig: Add BIP340 varlen test vectors 97a98bed1e schnorrsig: Refactor test vector code to allow varlen messages ab5a917128 Merge bitcoin-core/secp256k1#1303: ct: Use more volatile 9eb6934f69 Merge bitcoin-core/secp256k1#1305: Remove unused scratch space from API 073d98a076 Merge bitcoin-core/secp256k1#1292: refactor: Make 64-bit shift explicit 17fa21733a ct: Be cautious and use volatile trick in more "conditional" paths 5fb336f9ce ct: Use volatile trick in scalar_cond_negate 712e7f8722 Remove unused scratch space from API 54d34b6c24 Merge bitcoin-core/secp256k1#1300: Avoid normalize conditional on VERIFY c63ec88ebf Merge bitcoin-core/secp256k1#1066: Abstract out and merge all the magnitude/normalized logic 7fc642fa25 Simplify secp256k1_fe_{impl_,}verify 4e176ad5b9 Abstract out verify logic for fe_is_square_var 4371f98346 Abstract out verify logic for fe_add_int 89e324c6b9 Abstract out verify logic for fe_half 283cd80ab4 Abstract out verify logic for fe_get_bounds d5aa2f0358 Abstract out verify logic for fe_inv{,_var} 3167646072 Abstract out verify logic for fe_from_storage 76d31e5047 Abstract out verify logic for fe_to_storage 1e6894bdd7 Abstract out verify logic for fe_cmov be82bd8e03 Improve comments/checks for fe_sqrt 6ab35082ef Abstract out verify logic for fe_sqr 4c25f6efbd Abstract out verify logic for fe_mul e179e651cb Abstract out verify logic for fe_add 7e7ad7ff57 Abstract out verify logic for fe_mul_int 65d82a3445 Abstract out verify logic for fe_negate 144670893e Abstract out verify logic for fe_get_b32 f7a7666aeb Abstract out verify logic for fe_set_b32 ce4d2093e8 Abstract out verify logic for fe_cmp_var 7d7d43c6dd Improve comments/check for fe_equal{,_var} c5e788d672 Abstract out verify logic for fe_is_odd d3f3fe8616 Abstract out verify logic for fe_is_zero c701d9a471 Abstract out verify logic for fe_clear 19a2bfeeea Abstract out verify logic for fe_set_int 864f9db491 Abstract out verify logic for fe_normalizes_to_zero{,_var} 6c31371120 Abstract out verify logic for fe_normalize_var e28b51f522 Abstract out verify logic for fe_normalize_weak b6b6f9cb97 Abstract out verify logic for fe_normalize 7fa5195559 Bugfix: correct SECP256K1_FE_CONST mag/norm fields e5cf4bf3ff build: Rename `arm` to `arm32` b29566c51b Merge magnitude/normalized fields, move/improve comments 97c63b9039 Avoid normalize conditional on VERIFY 341cc19726 Merge bitcoin-core/secp256k1#1299: Infinity handling: ecmult_const(infinity) works, and group verification 6ec3731e8c Simplify test PRNG implementation bbc834467c Avoid secp256k1_ge_set_gej_zinv with uninitialized z 0a2e0b2ae4 Make secp256k1_{fe,ge,gej}_verify work as no-op if non-VERIFY f20266722a Add invariant checking to group elements a18821d5b1 Always initialize output coordinates in secp256k1_ge_set_gej 3086cb90ac Expose secp256k1_fe_verify to other modules a0e696fd4d Make secp256k1_ecmult_const handle infinity 24c768ae09 Merge bitcoin-core/secp256k1#1301: Avoid using bench_verify_data as bench_sign_data; merge them 2e65f1fdbc Avoid using bench_verify_data as bench_sign_data; merge them fb5bfa4eed Add static test vector for Xoshiro256++ 1cf15ebd94 Merge bitcoin-core/secp256k1#1296: docs: complete interface description for `secp256k1_schnorrsig_sign_custom` 4eab2c2fd8 Merge BlockstreamResearch/secp256k1-zkp#230: norm arg: add prove test vectors 723e8ca8f7 Remove randomness tests bc7c8db179 abi: Use dllexport for mingw builds 149c41cee1 docs: complete interface description for `secp256k1_schnorrsig_sign_custom` f30c74866b Merge bitcoin-core/secp256k1#1270: cmake: Fix library ABI versioning d1e48e5474 refactor: Make 64-bit shift explicit b2e29e43d0 ci: Treat all compiler warnings as errors in "Windows (VS 2022)" task 3c81838856 Merge bitcoin-core/secp256k1#1289: cmake: Use full signature of `add_test()` command 755629bc03 cmake: Use full signature of `add_test()` command bef448f9af cmake: Fix library ABI versioning 4b0f711d46 Merge bitcoin-core/secp256k1#1277: autotools: Clean up after adding Wycheproof 222ecaf661 Merge bitcoin-core/secp256k1#1284: cmake: Some improvements using `PROJECT_IS_TOP_LEVEL` variable 71f746c057 cmake: Include `include` directory for subtree builds 024a409484 Merge bitcoin-core/secp256k1#1240: cmake: Improve and document compiler flag checks a8d059f76c cmake, doc: Document compiler flags 6ece1507cb cmake, refactor: Rename `try_add_compile_option` to `try_append_cflags` 19516ed3e9 cmake: Use `add_compile_options()` in `try_add_compile_option()` 4b84f4bf0f Merge bitcoin-core/secp256k1#1239: cmake: Bugfix and other improvements after bumping CMake up to 3.13 596b336ff6 Merge bitcoin-core/secp256k1#1234: cmake: Add dev-mode 6b7e5b717d Merge bitcoin-core/secp256k1#1275: build: Fix C4005 "macro redefinition" MSVC warnings in examples 1c89536718 Merge bitcoin-core/secp256k1#1286: tests: remove extra semicolon in macro c4062d6b5d debug: move helper for printing buffers into util.h f3126fdfec norm arg: remove prove edge tests which are now covered by vectors 847ed9ecb2 norm arg: add verification to prove vectors 7e977b3c50 autotools: Take VPATH builds into account when generating testvectors 2418d3260a autotools: Create src/wycheproof dir before creating file in it 8764034ed5 autotools: Make all "pregenerated" targets .PHONY e1b9ce8811 autotools: Use same conventions for all pregenerated files cf797ed2a4 norm arg: add prove test vectors 095c1e749c norm arg: add prove_const to tests ce18267b66 Merge BlockstreamResearch/secp256k1-zkp#229: musig: Fix nits left open in ElementsProject#211 78ed0e09ca Merge BlockstreamResearch/secp256k1-zkp#227: Use relative #include paths and tidy header guards (as in upstream) 3858bad2c6 tests: remove extra semicolon in macro 1f33bb2b1c Merge bitcoin-core/secp256k1#1205: field: Improve docs +tests of secp256k1_fe_set_b32 e7fc61ff16 Merge BlockstreamResearch/secp256k1-zkp#228: Simple dedicated -zkp README 162da73e9a tests: Add debug helper for printing buffers e9fd3dff76 field: Improve docs and tests of secp256k1_fe_set_b32 a0b51afc01 musig: VERIFY_CHECK preconditions of _musig_keyaggcoef_internal() da7702844e extrakeys: Clarify comparison order of compare/sort functions f6bef03c0a Merge bitcoin-core/secp256k1#1283: Get rid of secp256k1_fe_const_b 5431b9decd cmake: Make `SECP256K1_INSTALL` default depend on `PROJECT_IS_TOP_LEVEL` 5ec1333d4f Merge bitcoin-core/secp256k1#1285: bench: Make sys/time.h a system include 4d9d8f92d4 Simple dedicated -zkp README e444d24bca Fix include guards: No _ prefix/suffix but _H suffix (as in upstream) 0eea7d97ab Use relative #include paths in tests (as in upstream) c690d6df70 Use relative #include paths in benchmarks (as in upstream) c565827c1a Use relative #include paths in ctime_test (as in upstream) 4eca406f4c Use relative #include paths in library (as in upstream) 68b16a1662 bench: Make sys/time.h a system include 162608cc98 cmake: Emulate `PROJECT_IS_TOP_LEVEL` for CMake<3.21 69e1ec0331 Get rid of secp256k1_fe_const_b bf7bf8a64f norm arg: split norm_arg_zero into prove_edge and verify_zero_len a70c4d4a8a norm arg: add test vector for |n| = 0 f5e4b16f0f norm arg: add test vector for sign bit malleability c0de361fc5 norm arg: allow X and R to be the point at infinity f22834f202 norm arg: add verify vector for n = [0], l = [0] d8e7f3763b musig: move ge_{serialize,parse}_ext to module-independent file 050d9b2912 Merge BlockstreamResearch/secp256k1-zkp#226: bppp: align terminology with paper ce5ba9e24d gitignore: Add CMakeUserPresets.json 0a446a312f cmake: Add dev-mode CMake preset a6f4bcf6e1 Merge bitcoin-core/secp256k1#1231: Move `SECP256K1_INLINE` macro definition out from `include/secp256k1.h` a273d74b2e cmake: Improve version comparison 6a58b483ef cmake: Use `if(... IN_LIST ...)` command 2445808c02 cmake: Use dedicated `GENERATOR_IS_MULTI_CONFIG` property 9f8703ef17 cmake: Use dedicated `CMAKE_HOST_APPLE` variable 8c2017035a cmake: Use recommended `add_compile_definitions` command 04d4cc071a cmake: Add `DESCRIPTION` and `HOMEPAGE_URL` options to `project` command 8a8b6536ef cmake: Use `SameMinorVersion` compatibility mode 5b0444a3b5 Merge bitcoin-core/secp256k1#1263: cmake: Make installation optional 47ac3d63cd cmake: Make installation optional 2e035af251 Merge bitcoin-core/secp256k1#1273: build: Make `SECP_VALGRIND_CHECK` preserve `CPPFLAGS` 5be353d658 Merge bitcoin-core/secp256k1#1279: tests: lint wycheproof's python script 08f4b1632d autotools: Move code around to tidy Makefile 2c63d17c1e bppp: align terminology with paper (gamma) dbf2e4d3e1 bppp: align terminology with paper (mu, rho) 04bf3f6778 Merge bitcoin-core/secp256k1#1230: Build: allow static or shared but not both 9ce9984f32 Merge bitcoin-core/secp256k1#1265: Remove bits argument from secp256k1_wnaf_const{_xonly} 566faa17d3 Merge bitcoin-core/secp256k1#1267: doc: clarify process for patch releases ef49a11d29 build: allow static or shared but not both f4dd0419aa Merge BlockstreamResearch/secp256k1-zkp#225: sync-upstream: Use --autostash to handle uncommitted changes 35ada3b954 tests: lint wycheproof's python script 4258c54f4e Merge bitcoin-core/secp256k1#1276: autotools: Don't regenerate Wycheproof header automatically 529b54d922 autotools: Move Wycheproof header from EXTRA_DIST to noinst_HEADERS 06c67dea9f autotools: Don't regenerate Wycheproof header automatically dc0657c762 build: Fix C4005 "macro redefinition" MSVC warnings in examples 1ecb94ebe9 build: Make `SECP_VALGRIND_CHECK` preserve `CPPFLAGS` 13c438cdee sync-upstream: Use --autostash to handle uncommitted changes 6ec1ff6040 Merge BlockstreamResearch/secp256k1-zkp#224: Backport of "ct: Use volatile "trick" in all fe/scalar cmov implementations" 96f4853850 ct: Use volatile "trick" in all fe/scalar cmov implementations 3bab71cf05 Merge bitcoin-core/secp256k1#1268: release cleanup: bump version after 0.3.1 656c6ea8d8 release cleanup: bump version after 0.3.1 346a053d4c Merge bitcoin-core/secp256k1#1269: changelog: Fix link 6a37b2a5ea changelog: Fix link ec98fcedd5 Merge bitcoin-core/secp256k1#1266: release: Prepare for 0.3.1 1b6fb5593c doc: clarify process for patch releases 898e1c676e release: Prepare for 0.3.1 1d9a13fc26 changelog: Remove inconsistent newlines 0e091669a1 changelog: Catch up in preparation of 0.3.1 7b7503dac5 Merge bitcoin-core/secp256k1#1245: tests: Add Wycheproof ECDSA vectors a575339c02 Remove bits argument from secp256k1_wnaf_const (always 256) 145078c418 Merge bitcoin-core/secp256k1#1118: Add x-only ecmult_const version with x specified as n/d e5de454609 tests: Add Wycheproof ECDSA vectors 0f8642079b Add exhaustive tests for ecmult_const_xonly 4485926ace Add x-only ecmult_const version for x=n/d a0f4644f7e Merge bitcoin-core/secp256k1#1252: Make position of * in pointer declarations in include/ consistent 4e682626a3 Merge bitcoin-core/secp256k1#1226: Add CMake instructions to release process 2d51a454fc Merge bitcoin-core/secp256k1#1257: ct: Use volatile "trick" in all fe/scalar cmov implementations 4a496a36fb ct: Use volatile "trick" in all fe/scalar cmov implementations 3d1f430f9f Make position of * in pointer declarations in include/ consistent 2bca0a5cbf Merge bitcoin-core/secp256k1#1241: build: Improve `SECP_TRY_APPEND_DEFAULT_CFLAGS` macro afd8b23b27 Merge bitcoin-core/secp256k1#1244: Suppress `-Wunused-parameter` when building for coverage analysis 1d8f367515 Merge bitcoin-core/secp256k1#1250: No need to subtract 1 before doing a right shift 3e43041be6 No need to subtract 1 before doing a right shift 3addb4c1e8 build: Improve `SECP_TRY_APPEND_DEFAULT_CFLAGS` macro 0c07c82834 Add CMake instructions to release process 464a9115b4 Merge bitcoin-core/secp256k1#1242: Set ARM ASM symbol visibility to `hidden` f16a709fd6 Merge bitcoin-core/secp256k1#1247: Apply Checks only in VERIFY mode. 70be3cade5 Merge bitcoin-core/secp256k1#1246: Typo 4ebd82852d Apply Checks only in VERIFY mode. d1e7ca192d Typo 36b0adf1b9 build: remove warning until it's reproducible 5bb03c2911 Replace `SECP256K1_ECMULT_TABLE_VERIFY` macro by a function 9c8c4f443c Merge bitcoin-core/secp256k1#1238: build: bump CMake minimum requirement to 3.13 0cf2fb91ef Merge bitcoin-core/secp256k1#1243: build: Ensure no optimization when building for coverage analysis fd2a408647 Set ARM ASM symbol visibility to `hidden` 4429a8c218 Suppress `-Wunused-parameter` when building for coverage analysis 8e79c7ed11 build: Ensure no optimization when building for coverage analysis 96dd062511 build: bump CMake minimum requirement to 3.13 427bc3cdcf Merge bitcoin-core/secp256k1#1236: Update comment for secp256k1_modinv32_inv256 647f0a5cb1 Update comment for secp256k1_modinv32_inv256 8e142ca410 Move `SECP256K1_INLINE` macro definition out from `include/secp256k1.h` 77445898a5 Remove `SECP256K1_INLINE` usage from examples 5658209459 Merge bitcoin-core/secp256k1#1228: release cleanup: bump version after 0.3.0 bdf39000b9 Merge bitcoin-core/secp256k1#1223: release: prepare for 0.3.0 28e63f7ea7 release cleanup: bump version after 0.3.0 b40adf2360 release: prepare for 0.3.0 90b513aada Merge bitcoin-core/secp256k1#1229: cmake: Rename project to "libsecp256k1" 8be82d4362 cmake: Rename project to "libsecp256k1" ef4f8bd025 Merge bitcoin-core/secp256k1#1227: readme: Use correct build type in CMake/Windows build instructions 756b61d451 readme: Use correct build type in CMake/Windows build instructions 3295aa149b Merge bitcoin-core/secp256k1#1225: changelog: Add entry for CMake 92098d84cf changelog: Add entry for CMake df323b5c14 Merge bitcoin-core/secp256k1#1113: build: Add CMake-based build system e1eb33724c ci: Add "x86_64: Windows (VS 2022)" task 10602b0030 cmake: Export config files 5468d70964 build: Add CMake-based build system 6048e6c03e Merge bitcoin-core/secp256k1#1222: Remove redundant checks. eb8749fcd0 Merge bitcoin-core/secp256k1#1221: Update Changelog 5d8f53e312 Remove redudent checks. 9d1b458d5f Merge bitcoin-core/secp256k1#1217: Add secp256k1_fe_add_int function d232112fa7 Update Changelog 8962fc95bb Merge bitcoin-core/secp256k1#1218: Update overflow check 2ef1c9b387 Update overflow check 1d25608900 Merge BlockstreamResearch/secp256k1-zkp#223: musig: Update to BIP v1.0.0-rc.4 (Check pubnonce in NonceGen vectors) d23c23e24d musig: Update to BIP v1.0.0-rc.4 (Check pubnonce in NonceGen vectors) c4862f6869 Merge BlockstreamResearch/secp256k1-zkp#215: musig: include pubkey in secnonce and compare when signing a1ec2bb67b musig: add test for signing with wrong secnonce for a keypair bd57a017aa musig: include pubkey in secnonce and compare when signing 5757318782 Merge bitcoin-core/secp256k1#1212: Prevent dead-store elimination when clearing secrets in examples b081f7e4cb Add secp256k1_fe_add_int function 4f57024d86 Merge BlockstreamResearch/secp256k1-zkp#211: Update musig module to BIP MuSig2 v1.0.0-rc.3 5660c13755 prevent optimization in algorithms 09b1d466db Merge bitcoin-core/secp256k1#979: Native jacobi symbol algorithm ce3cfc78a6 doc: Describe Jacobi calculation in safegcd_implementation.md 6be01036c8 Add secp256k1_fe_is_square_var function 1de2a01c2b Native jacobi symbol algorithm 04c6c1b181 Make secp256k1_modinv64_det_check_pow2 support abs val 5fffb2c7af Make secp256k1_i128_check_pow2 support -(2^n) 8ec6d111c8 Merge BlockstreamResearch/secp256k1-zkp#205: Bulletproofs++: Norm argument cbd2555934 Merge bitcoin-core/secp256k1#1209: build: Add SECP256K1_API_VAR to fix importing variables from DLLs 1b21aa5175 Merge bitcoin-core/secp256k1#1078: group: Save a normalize_to_zero in gej_add_ge d7fb25c8ca Make sure that bppp_log2 isn't called with value 0 e5a01d12c6 Rename buletproof_pp* to bppp* c983186872 transcript: add tests 73edc75528 norm arg: add verification vectors 13ad32e814 norm arg: add tests for zero length and zero vectors 34c4847a6a ci: add bulletproofs 2574516483 Add testcases for bulletproofs++ norm arugment 46c7391154 Add norm argument verify API b43dd83b43 musig: add missing static keyword to function 068e6a036a musig: add test vectors from BIP MuSig 36621d13be musig: update to BIP v1.0.0-rc.2 "Add ''pk'' arg to ''NonceGen''" d717a4980b musig: update to BIP v0.8 "Switch from X-only to plain pk inputs." 304f1bc96d extrakeys: add pubkey_sort test vectors from BIP MuSig2 ae89051547 extrakeys: replace xonly_sort with pubkey_sort 98242fcdd9 extrakeys: add secp256k1_pubkey_cmp 73d5b6654d musig: update to BIP v0.7.0 (NonceGen) 060887e9d7 musig: update to BIP v0.5.1 "Rename ordinary tweaking to plain" d9145455bb Add bulletproofs++ norm argument prove API 8638f0e0ce Add internal BP++ commit API 412f8f66a0 Add utility functions required in norm argument 420353d7da Add utilities for log2 17417d44f3 Add utilities from uncompressed Bulletproofs PR 48563c8c79 bulletproofs: add API functionality to generate a large set of generators 048f9f8642 bulletproofs: add new empty module 6162d577fe generator: cleanups in Pedersen/generator code e4330341bd ci: Shutdown wineserver whenever CI script exits 9a5a611a21 build: Suppress stupid MSVC linker warning 739c53b19a examples: Extend sig examples by call that uses static context 914276e4d2 build: Add SECP256K1_API_VAR to fix importing variables from DLLs 1cca7c1744 Merge bitcoin-core/secp256k1#1206: build: Add -Wreserved-identifier supported by clang 8c7e0fc1de build: Add -Wreserved-identifier supported by clang ca92a35d01 field: Simplify code in secp256k1_fe_set_b32 d93f62e369 field: Verify field element even after secp256k1_fe_set_b32 fails 8ebe5c5205 Merge bitcoin-core/secp256k1#1201: ci: Do not set git's `user.{email,name}` config options 5596ec5c2c Merge bitcoin-core/secp256k1#1203: Do not link `bench` and `ctime_tests` to `COMMON_LIB` ef39721ccc Do not link `bench` and `ctime_tests` to `COMMON_LIB` 9b60e3148d ci: Do not set git's `user.{email,name}` config options e1817a6f54 Merge bitcoin-core/secp256k1#1199: ci: Minor improvements inspired by Bitcoin Core 1bff200588 Merge bitcoin-core/secp256k1#1200: Drop no longer used Autoheader macros 9b7d18669d Drop no longer used Autoheader macros c2415866c7 ci: Don't fetch git history 0ecf318851 ci: Use remote pull/merge ref instead of local git merge 0a6006989f Revert "Remove unused scalar_sqr" 87373f5145 MOVE ONLY: move Pedersen commitment stuff to generator module from rangeproof module b1f1675375 Merge BlockstreamResearch/secp256k1-zkp#214: sync-upstream: Fix $REPRODUCE_COMMAND for "select" cbe2815633 musig: update to BIP v0.4 "Allow the output of NonceAgg to be inf" 206017d67d musig: update to BIP v0.3 (NonceGen) d800dd55db musig: remove test vectors a58c7d29bd Merge BlockstreamResearch/secp256k1-zkp#213: Update macOS image for CI e04c660b11 sync-upstream: Fix $REPRODUCE_COMMAND for "select" 3b2c675955 Update macOS image for CI 2b77240b3b Merge bitcoin-core/secp256k1#1172: benchmarks: fix bench_scalar_split eb6bebaee3 scalar: restrict split_lambda args, improve doc and VERIFY_CHECKs 7f49aa7f2d ci: add test job with -DVERIFY 620ba3d74b benchmarks: fix bench_scalar_split 5fbff5d348 Merge bitcoin-core/secp256k1#1170: contexts: Forbid destroying, cloning and randomizing the static context 233822d849 Merge bitcoin-core/secp256k1#1195: ctime_tests: improve output when CHECKMEM_RUNNING is not defined ad7433b140 Merge bitcoin-core/secp256k1#1196: Drop no longer used variables from the build system e39d954f11 tests: Add CHECK_ILLEGAL(_VOID) macros and use in static ctx tests 2cd4e3c0a9 Drop no longer used `SECP_{LIBS,INCLUDE}` variables 613626f94c Drop no longer used `SECP_TEST_{LIBS,INCLUDE}` variables 61841fc9ee contexts: Forbid randomizing secp256k1_context_static 4b6df5e33e contexts: Forbid cloning/destroying secp256k1_context_static b1579cf5fb Merge bitcoin-core/secp256k1#1194: Ensure safety of ctz_debruijn implementation. 8f51229e03 ctime_tests: improve output when CHECKMEM_RUNNING is not defined d6ff738d5b Ensure safety of ctz_debruijn implementation. a01a7d86dc Merge bitcoin-core/secp256k1#1192: Switch to exhaustive groups with small B coefficient a7a7bfaf3d Merge bitcoin-core/secp256k1#1190: Make all non-API functions (except main) static f29a327092 Merge bitcoin-core/secp256k1#1169: Add support for msan instead of valgrind (for memcheck and ctime test) ff8edf89e2 Merge bitcoin-core/secp256k1#1193: Add `noverify_tests` to `.gitignore` ce60785b26 Introduce SECP256K1_B macro for curve b coefficient 4934aa7995 Switch to exhaustive groups with small B coefficient d4a6b58df7 Add `noverify_tests` to `.gitignore` 88e80722d2 Merge bitcoin-core/secp256k1#1160: Makefile: add `-I$(top_srcdir)/{include,src}` to `CPPFLAGS` for precomputed 0f088ec112 Rename CTIMETEST -> CTIMETESTS 74b026f05d Add runtime checking for DECLASSIFY flag 5e2e6fcfc0 Run ctime test in Linux MSan CI job 18974061a3 Make ctime tests building configurable 5048be17e9 Rename valgrind_ctime_test -> ctime_tests 6eed6c18de Update error messages to suggest msan as well 8e11f89a68 Add support for msan integration to checkmem.h 8dc64079eb Add compile-time error to valgrind_ctime_test 0db05a770e Abstract interactions with valgrind behind new checkmem.h 4f1a54e41d Move valgrind CPPFLAGS into SECP_CONFIG_DEFINES cc3b8a4f40 Merge bitcoin-core/secp256k1#1187: refactor: Rename global variables in tests 9a93f48f50 refactor: Rename STTC to STATIC_CTX in tests 3385a2648d refactor: Rename global variables to uppercase in tests e03ef86559 Make all non-API functions (except main) static cbe41ac138 Merge bitcoin-core/secp256k1#1188: tests: Add noverify_tests which is like tests but without VERIFY 203760023c tests: Add noverify_tests which is like tests but without VERIFY e862c4af0c Makefile: add -I$(top_srcdir)/src to CPPFLAGS for precomputed 0eb3000417 Merge bitcoin-core/secp256k1#1186: tests: Tidy context tests 39e8f0e3d7 refactor: Separate run_context_tests into static vs proper contexts a4a09379b1 tests: Clean up and improve run_context_tests() further fc90bb5695 refactor: Tidy up main() f32a36f620 tests: Don't use global context for context tests ce4f936c4f tests: Tidy run_context_tests() by extracting functions 18e0db30cb tests: Don't recreate global context in scratch space test b19806122e tests: Use global copy of secp256k1_context_static instead of clone 2a39ac162e Merge bitcoin-core/secp256k1#1185: Drop `SECP_CONFIG_DEFINES` from examples 2f9ca284e2 Drop `SECP_CONFIG_DEFINES` from examples 31ed5386e8 Merge bitcoin-core/secp256k1#1183: Bugfix: pass SECP_CONFIG_DEFINES to bench compilation c0a555b2ae Bugfix: pass SECP_CONFIG_DEFINES to bench compilation 01b819a8c7 Merge bitcoin-core/secp256k1#1158: Add a secp256k1_i128_to_u64 function. eacad90f69 Merge bitcoin-core/secp256k1#1171: Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) 3f57b9f774 Merge bitcoin-core/secp256k1#1177: Some improvements to the changelog c30b889f17 Clarify that the ABI-incompatible versions are earlier 881fc33d0c Consistency in naming of modules 665ba77e79 Merge bitcoin-core/secp256k1#1178: Drop `src/libsecp256k1-config.h` 75d7b7f5ba Merge bitcoin-core/secp256k1#1154: ci: set -u in cirrus.sh to treat unset variables as an error 7a74688201 ci: add missing CFLAGS & CPPFLAGS variable to print_environment c2e0fdadeb ci: set -u in cirrus.sh to treat unset variables as an error 9c5a4d21bb Do not define unused `HAVE_VALGRIND` macro ad8647f548 Drop no longer relevant files from `.gitignore` b627ba7050 Remove dependency on `src/libsecp256k1-config.h` 9ecf8149a1 Reduce font size in changelog 2dc133a67f Add more changelog entries ac233e181a Add links to diffs to changelog cee8223ef6 Mention semantic versioning in changelog 9a8d65f07f Merge bitcoin-core/secp256k1#1174: release cleanup: bump version after 0.2.0 02ebc290f7 release cleanup: bump version after 0.2.0 b6b360efaf doc: improve message of cleanup commit 21ffe4b22a Merge bitcoin-core/secp256k1#1055: Prepare initial release e025ccdf74 release: prepare for initial release 0.2.0 6d1784a2e2 build: add missing files to EXTRA_DIST 8c949f56da Merge bitcoin-core/secp256k1#1173: Don't use compute credits for now 13bf1b6b32 changelog: make order of change types match keepachangelog.com b1f992a552 doc: improve release process 7e5b22684f Don't use compute credits for now a49e0940ad docs: Fix typo 2551cdac90 tests: Fix code formatting c635c1bfd5 Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) cf66f2357c refactor: Add helper function secp256k1_context_is_proper() ad39e2dc41 build: change package version to 0.1.0-dev 5c789dcd73 Merge bitcoin-core/secp256k1#1168: Replace deprecated context flags with NONE in benchmarks and tests d6dc0f4ae3 tests: Switch to NONE contexts in module tests 0c8a5caddd tests: Switch to NONE contexts in tests.c 86540e9e1f tests: add test for deprecated flags and rm them from run_context caa0ad631e group: add gej_eq_var 37ba744f5b tests: Switch to NONE contexts in exhaustive and ctime tests 8d7a9a8eda benchmarks: Switch to NONE contexts 90618e9263 doc: move CHANGELOG from doc/ to root directory e3f84777eb Merge bitcoin-core/secp256k1#1126: API cleanup with respect to contexts 4386a2306c examples: Switch to NONE contexts 7289b51d31 docs: Use doxygen style if and only if comment is user-facing e7d0185c90 docs: Get rid of "initialized for signing" terminology 06126364ad docs: Tidy and improve docs about contexts and randomization e02d6862bd selftest: Expose in public API e383fbfa66 selftest: Rename internal function to make name available for API d2c6d48de3 tests: Use new name of static context 53796d2b24 contexts: Rename static context 72fedf8a6c docs: Improve docs for static context 316ac7625a contexts: Deprecate all context flags except SECP256K1_CONTEXT_NONE 477f02c4de Merge bitcoin-core/secp256k1#1165: gitignore: Add *.sage.py files autogenerated by sage [skip ci] 092be61c5e gitignore: Add *.sage.py files autogenerated by sage 1a553ee8be docs: Change signature "validation" to "verification" ee7341fbac docs: Never require a verification context 751c4354d5 Merge bitcoin-core/secp256k1#1152: Update macOS image for CI 2286f80902 Merge bitcoin-core/secp256k1#993: Enable non-experimental modules by default d216475205 test secp256k1_i128_to_i64 4bc429019d Add a secp256k1_i128_to_u64 function. e40fd277b7 Merge bitcoin-core/secp256k1#1156: Followups to int128_struct arithmetic 99bd335599 Make int128 overflow test use secp256k1_[ui]128_mul a8494b02bf Use compute credits for macOS jobs 3afce0af7c Avoid signed overflow in MSVC AMR64 secp256k1_mul128 c0ae48c995 Update macOS image for CI 9b5f589d30 Heuristically decide whether to use int128_struct 63ff064d2f int128: Add test override for testing __(u)mulh on MSVC X64 f2b7e88768 Add int128 randomized tests 6138d73be4 Merge bitcoin-core/secp256k1#1155: Add MSan CI jobs ddf2b2910e Merge bitcoin-core/secp256k1#1000: Synthetic int128 type. 86e3b38a4a Merge bitcoin-core/secp256k1#1149: Remove usage of CHECK from non-test file 00a42b91b3 Add MSan CI job 44916ae915 Merge bitcoin-core/secp256k1#1147: ci: print env to allow reproducing the job outside of CI c2ee9175e9 Merge bitcoin-core/secp256k1#1146: ci: prevent "-v/--version: not found" irrelevant error e13fae487e Merge bitcoin-core/secp256k1#1150: ci: always cat test_env.log a340d9500a ci: add int128_struct tests dceaa1f579 int128: Tidy #includes of int128.h and int128_impl.h 2914bccbc0 Simulated int128 type. 6a965b6b98 Remove usage of CHECK from non-test file 5c9f1a5c37 ci: always cat all logs_snippets 49ae843592 ci: mostly prevent "-v/--version: not found" irrelevant error 4e54c03153 ci: print env to allow reproducing the job outside of CI a43e982bca Merge bitcoin-core/secp256k1#1144: Cleanup `.gitignore` file f5039cb66c Cleanup `.gitignore` file 798727ae1e Revert "Add test logs to gitignore" d22774e248 Merge BlockstreamResearch/secp256k1-zkp#203: MuSig doc fixes dd83e72d52 Add ordinary tweak info d26100cab2 Exclude nonce_process from pre-processing steps b7607f93f2 Fix reference to xonly_tweak_add f7e9a8544f Merge BlockstreamResearch/secp256k1-zkp#201: rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size 6b6ced9839 rangeproof: add more max_size tests 34876ecb5f rangeproof: add more static test vectors 310e517061 rangeproof: add a bunch more testing f1410cb67a rangeproof: add secp256k1_rangeproof_max_size function to estimate rangeproof size c137ddbdff Merge BlockstreamResearch/secp256k1-zkp#200: build: automatically enable module dependencies 0202d839fb Merge BlockstreamResearch/secp256k1-zkp#199: surjectionproof: make sure that n_used_pubkeys > 0 in generate 5ac8fb035e surjectionproof: make sure that n_used_pubkeys > 0 in generate 7ff446df8b Merge BlockstreamResearch/secp256k1-zkp#198: rangeproof: add a test for all-zero blinding factors 5a40f3d99b replace memcmp with secp256k1_memcmp_var throughout the codebase 92820d944b rangeproof: add a test for all-zero blinding factors 171b294a1c build: improve error message if --enable-experimental is missed 58ab152bb4 build: move all output concerning enabled modules at single place 1493113e61 build: automatically enable module dependencies 4fd7e1eabd Merge BlockstreamResearch/secp256k1-zkp#197: fix include paths in all the -zkp modules 347f96d94a fix include paths in all the -zkp modules 41e8704b48 build: Enable some modules by default 694ce8fb2d Merge bitcoin-core/secp256k1#1131: readme: Misc improvements 88b00897e7 readme: Fix line break 78f5296da4 readme: Sell "no runtime dependencies" ef48f088ad readme: Add IRC channel d1d6e47c17 Merge BlockstreamResearch/secp256k1-zkp#196: surjectionproof: fail to generate proofs when an input equals the output d1175d265d surjectionproof: use secp256k1_memcmp_var rather than bare memcmp bf18ff5a8c surjectionproof: fix generation to fail when any input == the output 4ff6e4274d surjectionproof: add test for existing behavior on input=output proofs 9f8a13dc8e Merge bitcoin-core/secp256k1#1128: configure: Remove pkgconfig macros again (reintroduced by mismerge) cabe085bb4 configure: Remove pkgconfig macros again (reintroduced by mismerge) 71a206fa5b Merge BlockstreamResearch/secp256k1-zkp#194: extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation db648478c3 extrakeys: rename swap/swap64 to fix OpenBSD 7.1 compilation 3efeb9da21 Merge bitcoin-core/secp256k1#1121: config: Set preprocessor defaults for ECMULT_* config values 6a873cc4a9 Merge bitcoin-core/secp256k1#1122: tests: Randomize the context with probability 15/16 instead of 1/4 17065f48ae tests: Randomize the context with probability 15/16 instead of 1/4 c27ae45144 config: Remove basic-config.h da6514a04a config: Introduce DEBUG_CONFIG macro for debug output of config 63a3565e97 Merge bitcoin-core/secp256k1#1120: ecmult_gen: Skip RNG when creating blinding if no seed is available d0cf55e13a config: Set preprocessor defaults for ECMULT_* config values 55f8bc99dc ecmult_gen: Improve comments about projective blinding 7a86955800 ecmult_gen: Simplify code (no observable change) 4cc0b1b669 ecmult_gen: Skip RNG when creating blinding if no seed is available af65d30cc8 Merge bitcoin-core/secp256k1#1116: build: Fix #include "..." paths to get rid of further -I arguments 40a3473a9d build: Fix #include "..." paths to get rid of further -I arguments 43756da819 Merge bitcoin-core/secp256k1#1115: Fix sepc256k1 -> secp256k1 typo in group.h 069aba8125 Fix sepc256k1 -> secp256k1 typo in group.h accadc94df Merge bitcoin-core/secp256k1#1114: `_scratch_destroy`: move `VERIFY_CHECK` after invalid scrach space check cd47033335 Merge bitcoin-core/secp256k1#1084: ci: Add MSVC builds 1827c9bf2b scratch_destroy: move VERIFY_CHECK after invalid scrach space check 49e2acd927 configure: Improve rationale for WERROR_CFLAGS 8dc4b03341 ci: Add a C++ job that compiles the public headers without -fpermissive 51f296a46c ci: Run persistent wineserver to speed up wine 3fb3269c22 ci: Add 32-bit MinGW64 build 9efc2e5221 ci: Add MSVC builds 2be6ba0fed configure: Convince autotools to work with MSVC's archiver lib.exe bd81f4140a schnorrsig bench: Suppress a stupid warning in MSVC 44c2452fd3 Merge bitcoin-core/secp256k1#1105: Don't export symbols in static libraries 6f6cab9989 abi: Don't export symbols in static Windows libraries 485f608fa9 Merge bitcoin-core/secp256k1#1104: Fix the false positive of `SECP_64BIT_ASM_CHECK` 8b013fce51 Merge bitcoin-core/secp256k1#1056: Save negations in var-time group addition 7efc9835a9 Fix the false positive of `SECP_64BIT_ASM_CHECK` 2f984ffc45 Save negations in var-time group addition 09f3d71c51 configure: Add a few CFLAGS for MSVC 3b4f3d0d46 build: Reject C++ compilers in the preprocessor 1cc0941414 configure: Don't abort if the compiler does not define __STDC__ cca8cbbac8 configure: Output message when checking for valgrind 1a6be5745f bench: Make benchmarks compile on MSVC e089eecc1e group: Further simply gej_add_ge ac71020ebe group: Save a normalize_to_zero in gej_add_ge git-subtree-dir: src/secp256k1 git-subtree-split: b2ccc8d9fdb91de6d00695acfdedaa80ebf66b35
sipa
added a commit
to sipa/bitcoin
that referenced
this pull request
Sep 4, 2023
199d27c Merge bitcoin-core/secp256k1#1415: release: Prepare for 0.4.0 1633980 release: Prepare for 0.4.0 d9a8506 changelog: Catch up in preparation of release 0b4640a Merge bitcoin-core/secp256k1#1413: ci: Add `release` job 8659a01 ci: Add `release` job f9b3889 ci: Update `actions/checkout` version 727bec5 Merge bitcoin-core/secp256k1#1414: ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 2635068 ci/gha: Let MSan continue checking after errors in all jobs e78c7b6 ci/Dockerfile: Reduce size of Docker image further 2f0d3bb ci/Dockerfile: Warn if `ulimit -n` is too high when running Docker 4b8a647 ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 6ebe7d2 ci/Dockerfile: Always use versioned clang packages 65c79fe Merge bitcoin-core/secp256k1#1412: ci: Switch macOS from Ventura to Monterey and add Valgrind c223d7e ci: Switch macOS from Ventura to Monterey and add Valgrind ea26b71 Merge bitcoin-core/secp256k1#1411: ci: Make repetitive command the default one cce0456 ci: Make repetitive command the default one 317a4c4 ci: Move `git config ...` to `run-in-docker-action` 4d7fe60 Merge bitcoin-core/secp256k1#1409: ci: Move remained task from Cirrus to GitHub Actions 676ed8f ci: Move "C++ (public headers)" from Cirrus to GitHub Actions 61fc3a2 ci: Move "C++ -fpermissive..." from Cirrus to GitHub Actions d51fb0a ci: Move "MSan" from Cirrus to GitHub Actions c22ac27 ci: Move sanitizers task from Cirrus to GitHub Actions 26a9899 Merge bitcoin-core/secp256k1#1410: ci: Use concurrency for pull requests only ee1be62 ci: Use concurrency for pull requests only 6ee1455 Merge bitcoin-core/secp256k1#1406: ci, gha: Move more non-x86_64 tasks from Cirrus CI to GitHub Actions fc3dea2 ci: Move "ppc64le: Linux..." from Cirrus to GitHub Actions 7782dc8 ci: Move "ARM64: Linux..." from Cirrus to GitHub Actions 0a16de6 ci: Move "ARM32: Linux..." from Cirrus to GitHub Actions ea33914 ci: Move "s390x (big-endian): Linux..." from Cirrus to GitHub Actions 880be8a ci: Move "i686: Linux (Debian stable)" from Cirrus to GiHub Actions 2e6cf9b Merge bitcoin-core/secp256k1#1396: ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job 5373693 Merge bitcoin-core/secp256k1#1405: ci: Drop no longer needed workaround ef9fe95 ci: Drop no longer needed workaround e10878f ci, gha: Drop `driver-opts.network` input for `setup-buildx-action` 4ad4914 ci, gha: Add `retry_builder` Docker image builder 6617a62 ci: Remove "x86_64: Linux (Debian stable)" task from Cirrus CI 03c9e65 ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job ad3e65d ci: Remove GCC build files and sage to reduce size of Docker image 6b9507a Merge bitcoin-core/secp256k1#1398: ci, gha: Add Windows jobs based on Linux image 87d35f3 ci: Rename `cirrus.sh` to more general `ci.sh` d6281dd ci: Remove Windows tasks from Cirrus CI 2b6f9cd ci, gha: Add Windows jobs based on Linux image 48b1d93 Merge bitcoin-core/secp256k1#1403: ci, gha: Ensure only a single workflow processes `github.ref` at a time 0ba2b94 Merge bitcoin-core/secp256k1#1373: Add invariant checking for scalars 060e32c Merge bitcoin-core/secp256k1#1401: ci, gha: Run all MSVC tests on Windows natively de657c2 Merge bitcoin-core/secp256k1#1062: Removes `_fe_equal_var`, and unwanted `_fe_normalize_weak` calls (in tests) bcffeb1 Merge bitcoin-core/secp256k1#1404: ci: Remove "arm64: macOS Ventura" task from Cirrus CI c2f6435 ci: Add comment about switching macOS to M1 on GHA later 4a24fae ci: Remove "arm64: macOS Ventura" task from Cirrus CI b0886fd ci, gha: Ensure only a single workflow processes `github.ref` at a time 3d05c86 Merge bitcoin-core/secp256k1#1394: ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions d78bec7 ci: Remove Windows MSVC tasks from Cirrus CI 3545dc2 ci, gha: Run all MSVC tests on Windows natively 5d8fa82 Merge bitcoin-core/secp256k1#1274: test: Silent noisy clang warnings about Valgrind code on macOS x86_64 8e54a34 ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions b327abf Merge bitcoin-core/secp256k1#1402: ci: Use Homebrew's gcc in native macOS task d62db57 ci: Use Homebrew's gcc in native macOS task 54058d1 field: remove `secp256k1_fe_equal_var` bb4efd6 tests: remove unwanted `secp256k1_fe_normalize_weak` call eedd781 Merge bitcoin-core/secp256k1#1348: tighten group magnitude limits, save normalize_weak calls in group add methods (revival of bitcoin#1032) b2f6712 Merge bitcoin-core/secp256k1#1400: ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift 9c91ea4 ci: Enable ellswift module where it's missing db32a24 ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift ce765a5 Merge bitcoin-core/secp256k1#1399: ci, gha: Run "SageMath prover" job on GitHub Actions 8408dfd Revert "ci: Run sage prover on CI" c8d9914 ci, gha: Run "SageMath prover" job on GitHub Actions 8d2960c Merge bitcoin-core/secp256k1#1397: ci: Remove "Windows (VS 2022)" task from Cirrus CI f1774e5 ci, gha: Make MSVC job presentation more explicit 5ee039b ci: Remove "Windows (VS 2022)" task from Cirrus CI 96294c0 Merge bitcoin-core/secp256k1#1389: ci: Run "Windows (VS 2022)" job on GitHub Actions a2f7ccd ci: Run "Windows (VS 2022)" job on GitHub Actions 374e2b5 Merge bitcoin-core/secp256k1#1290: cmake: Set `ENVIRONMENT` property for examples on Windows 1b13415 Merge bitcoin-core/secp256k1#1391: refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) a1bd497 refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) b7c685e Save _normalize_weak calls in group add methods c83afa6 Tighten group magnitude limits 26392da Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh d23da6d use secp256k1_scalar_verify checks 4692478 ci: print $ELLSWIFT in cirrus.sh c7d0454 add verification for scalars c734c64 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES ad15215 update max scalar in scalar_cmov_test and fix schnorrsig_verify exhaustive test 78ca880 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a46 util: remove unused checked_realloc 2bd5f3e Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast 4f8c5bd refactor: Drop unused cast 173e8d0 Implement current magnitude assumptions 49afd2f Take use of _fe_verify_magnitude in field_impl.h 4e9661f Add _fe_verify_magnitude (no-op unless VERIFY is enabled) 690b0fc add missing group element invariant checks 175db31 ci: Drop no longer needed `PATH` variable update on Windows 116d2ab cmake: Set `ENVIRONMENT` property for examples on Windows cef3739 cmake, refactor: Use helper function instead of interface library 747ada3 test: Silent noisy clang warnings about Valgrind code on macOS x86_64 git-subtree-dir: src/secp256k1 git-subtree-split: 199d27c
Retropex
added a commit
to Retropex/bitcoin
that referenced
this pull request
Oct 4, 2023
Release note for changing -permitbaremultisig config default to false Remove unused MessageStartChars parameters from BlockManager methods tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings Fixes #26916 by disabling the warning `-Wgnu-zero-variadic-macro-arguments` when clang is used as the compiler. lint: drop DIR_IWYU global lint: remove lint-logs.py lint: remove /* Continued */ markers from codebase refactor: fix unterminated LogPrintf()s tidy: Integrate bicoin-tidy clang-tidy plugin Enable `bitcoin-unterminated-logprintf`. Co-authored-by: Cory Fields <cory-nospam-@coryfields.com> doc: remove Fedora libdb4-*-devel install docs These are no-longer installable on any recent Fedora (33+). Remove the install instructions. Fix the typo in the Ubuntu/Debian instructions. refactor: Wrap DestroyDB in dbwrapper helper Wrap leveldb::DestroyDB in a helper function without exposing leveldb-specifics. Also, add missing optional include. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBBatch::Write implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBatch::Erase implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Pimpl leveldb::batch for CDBBatch Hide the leveldb::WriteBatch member variable with a pimpl in order not to expose it directly in the header. Also move CDBBatch::Clear to the dbwrapper implementation to use the new impl_batch. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBIterator::Seek implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBIterator::GetKey implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBIterator::GetValue implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Pimpl leveldb::Iterator for CDBIterator Hide the leveldb::Iterator member variable with a pimpl in order not to expose it directly in the header. Also, move CDBWrapper::NewIterator to the dbwrapper implementation to use the pimpl for CDBIterator initialziation. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBWrapper::Read implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Fix logging.h includes These were uncovered as missing by the next commit. refactor: Split dbwrapper CDBWrapper::Exists implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Move HandleError to dbwrapper implementation Make it a static function in dbwrapper.cpp, since it is not used elsewhere and when left in the header, would expose a leveldb type. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Split dbwrapper CDBWrapper::EstimateSize implementation Keep the generic serialization in the header, while moving leveldb-specifics to the implementation file. Since CharCast is no longer needed in the header, move it to the implementation file. The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. refactor: Move CDBWrapper leveldb members to their own context struct The context of this commit is an effort to decouple the dbwrapper header file from leveldb includes. To this end, the includes are moved to the dbwrapper implementation file. This is done as part of the kernel project to reduce the number of required includes for users of the kernel. build: Remove leveldb from BITCOIN_INCLUDES Since leveldb is no longer in our header tree, move its include flags to whereever dbwrapper.cpp is built. refactor: Correct dbwrapper key naming The ss- prefix should connotate a DataStream variable. Now that these variables are byte spans, drop the prefix. ci: Use qemu-user through container engine doc: document PeerManager::Options members net processing: clamp -maxorphantx to uint32_t bounds net processing: clamp -blockreconstructionextratxn to uint32_t bounds Also changes max_extra_txs into a uint32_t to avoid platform-specific behaviour doc: Add release note crypto: remove outdated variant of ChaCha20Poly1305 AEAD Remove the variant of ChaCha20Poly1305 AEAD that was previously added in anticipation of BIP324 using it. BIP324 was updated to instead use rekeying wrappers around otherwise unmodified versions of the ChaCha20 stream cipher and the ChaCha20Poly1305 AEAD as specified in RFC8439. crypto: add the ChaCha20Poly1305 AEAD as specified in RFC8439 This adds an implementation of the ChaCha20Poly1305 AEAD exactly matching the version specified in RFC8439 section 2.8, including tests and official test vectors. crypto: add FSChaCha20, a rekeying wrapper around ChaCha20 This adds the FSChaCha20 stream cipher as specified in BIP324, a wrapper around the ChaCha20 stream cipher (specified in RFC8439 section 2.4) which automatically rekeys every N messages, and manages the nonces used for encryption. Co-authored-by: dhruv <856960+dhruv@users.noreply.github.com> crypto: add FSChaCha20Poly1305, rekeying wrapper around ChaCha20Poly1305 This adds the FSChaCha20Poly1305 AEAD as specified in BIP324, a wrapper around the ChaCha20Poly1305 AEAD (as specified in RFC8439 section 2.8) which automatically rekeys every N messages, and automatically increments the nonce every message. bench: add benchmark for FSChaCha20Poly1305 Add a benchmark for FSChaCha20Poly1305 encryption, so the overhead of key generation and authentication can be observed for various message sizes. crypto: support split plaintext in ChaCha20Poly1305 Encrypt/Decrypt Add BIP324Cipher, encapsulating key agreement, derivation, and stream/AEAD ciphers Co-authored-by: dhruv <856960+dhruv@users.noreply.github.com> tests: add decryption test to bip324_tests doc: use llvm-config for bitcoin-tidy example An LLVM installation will have `llvm-config` available to query for info. Ask it for the `--cmakedir`, and use that in our bitcoin-tidy example, rather than listing multiple different (potential) paths per distro/OS etc. bitcoin-tidy: fix macOS build LLVM uses these options for building as well, so there's precedent. Also fix the shared library extension which was incorrectly being set to dylib test: locked_wallet, skip default fee estimation Same as we do with the nodes default wallets. No test case on this file is meant to exercise fee estimation. fuzz: coins_view: correct an incorrect assertion It is incorrect to assert that `cache.HaveCoin()` will always be `true` if `backend.HaveCoin()` is. The coin could well have been marked as spent in the cache but not yet flushed, in which case `cache.HaveCoin()` would return `false`. Note this was never hit because `exists_using_have_coin_in_backend` is currently never `true` (it's the default implementation of `CCoinsView`. However this might change if we were to add a target where the backend is a `CCoinsViewDB`. fuzz: coins_view: remove an incorrect assertion Again, this was not hit because the default implementation of `CCoinsView` return `false` for `GetCoin`. crypto: BIP324 ciphersuite follow-up follow-up to #28008. * move `dummy_tag` variable in FSChaCha20Poly1305 crypto_tests outside of the loop to be reused every time * use easy to read `cipher.last()` in `AEADChaCha20Poly1305::Decrypt()` * comment for initiator in `BIP324Cipher::Initialize()` * systematically damage ciphertext with bit positions in bip324_tests * use 4095 max bytes for aad in bip324 fuzz test refactor: add missing headers for BIP324 ciphersuite ci: Drop no longer needed `macos_sdk_cache` It has been cached in the Docker image since https://github.com/bitcoin/bitcoin/pull/27028. ci: Drop BASE_SCRATCH_DIR from LIBCXX_DIR Using a hard-coded path avoids non-determinism issues and improves CI UX. ci: Only create folders when needed Now that container volumes are used, the folders are no longer mounted. They are only needed when running without a container engine (docker, podman). ci: Use hard-coded root path for CI containers ci: Run "macOS native x86_64" job on GitHub Actions Also, the "macOS native arm64" task has been removed from Cirrus CI. Remove unused boost signals2 from torcontrol iwyu on torcontrol Replace LocaleIndependentAtoi with ToIntegral No need for saturating behavior when the int is composed of 3 digits. remove unused limits.h include in compat.h Sort includes in compat.h Can be reviewed with: --color-moved=blocks --color-moved-ws=ignore-all-space --ignore-all-space test: check backup from `migratewallet` can be successfully restored ci: Fix macOS-cross SDK rsync This should fix the macOS-cross build on Cirrus CI containers. Locally this was already working, because the SDK was cached in /ci_container_base/ in the image, which is also the folder used for a later CI run. However, on Cirrus CI, when using an image *and* a custom BASE_ROOT_DIR, the SDK will not be found in /ci_base_install/, nor in BASE_ROOT_DIR. Fix this by normalizing *all* folders to /ci_container_base/. ci: Avoid error on macOS native This avoids "mkdir: /ci_container_base: Read-only file system" mempool_entry: add mempool entry sequence number validation: when adding txs due to a block reorg, allow immediate relay net_processing: drop m_recently_announced_invs bloom filter Rather than using a bloom filter to track announced invs, simply allow a peer to request any tx that entered the mempool prior to the last INV message we sent them. This also obsoletes the UNCONDITIONAL_RELAY_DELAY. net_processing: don't add txids to m_tx_inventory_known_filter We no longer have m_recently_announced_invs, so there is no need to add txids to m_tx_inventory_known_filter to dedupe that filter. test: Check tx from disconnected block is immediately requestable Check that peers can immediately request txs from blocks that have been reorged out and are now in our mempool. net_processing: Clean up INVENTORY_BROADCAST_MAX constants mempool_entry: improve struct packing ci: Move tidy to persistent worker refactor: Remove PERSISTENT_WORKER_* yaml templates * PERSISTENT_WORKER_TEMPLATE_ENV is not needed at all, because RESTART_CI_DOCKER_BEFORE_RUN is already set on the persistent worker. * PERSISTENT_WORKER_TEMPLATE can be replaced by pinning the previous_releases task to a type of worker. This should make the CI performance more consistent. Move MANDATORY_SCRIPT_VERIFY_FLAGS from script/standard.h to policy/policy.h Remove ScriptHash from CScriptID constructor Replaces the constructor in CScriptID that converts a ScriptHash with a function ToScriptID that does the same. This prepares for a move of CScriptID to avoid a circular dependency. Move CScriptID to script.{h/cpp} CScriptID should be next to CScript just as CKeyID is next to CPubKey Move Taproot{SpendData/Builder} to signingprovider.{h/cpp} TaprootSpendData and TaprootBuilder are used in signing in SigningProvider contexts, so they should live near that. Move CTxDestination to its own file CTxDestination is really our internal representation of an address and doesn't really have anything to do with standard script types, so move them to their own file. MOVEONLY: Move datacarrier defaults to policy.h Clean up things that include script/standard.h Remove standard.h from files that don't use anything in it, and include it in files that do. Clean up script/standard.{h/cpp} includes Rename script/standard.{cpp/h} to script/solver.{cpp/h} Since script/standard only contains things that are used by the Solver and its callers, rename the files to script/solver. Rework receive buffer pushback Co-authored-by: Anthony Towns <aj@erisian.com.au> test: Fix intermittent issue in mining_getblocktemplate_longpoll.py Bugfix: RPC: Remove quotes from non-string oneline descriptions RPC/rpcdoccheck: Error if a oneline_description has a quote for a non-string RPC/Mining: Document template_request better for getblocktemplate ci: Ensure that only a single workflow processes `github.ref` at a time ci: Refactor: Remove CI_USE_APT_INSTALL rpc: remove one more quote from non-string oneline description This fixes a silent conflict betwen #28123 and #27460 crypto: refactor ChaCha20 classes to use Span<std::byte> interface random: simplify FastRandomContext::randbytes using fillrand crypto: require key on ChaCha20 initialization fuzz: support std::byte in Consume{Fixed,Variable}LengthByteVector tests: miscellaneous hex / std::byte improvements crypto: make ChaCha20::SetKey wipe buffer doc: Fix bitcoin-unterminated-logprintf tidy comments * Move module description from test to LogPrintfCheck * Add test doc * Remove unused comment, see https://github.com/bitcoin/bitcoin/pull/26296/files#r1279351539 refactor: Enforce C-str fmt strings in WalletLogPrintf() refactor: Enable all clang-tidy plugin bitcoin tests This makes it easier to add new ones without having to modify this file every time. bitcoin-tidy: Apply bitcoin-unterminated-logprintf to spkm as well ci: Add missing ${CI_RETRY_EXE} before curl ci: Add missing amd64 to win64-cross task Also, do the same for android, which also fails. assumeutxo cleanup: Move IsInitialBlockDownload & NotifyHeaderTip to ChainstateManager This change makes IsInitialBlockDownload and NotifyHeaderTip functions no longer tied to individual Chainstate objects. It makes them work with the ChainstateManager object instead so code is simpler and it is no longer possible to call them incorrectly with an inactive Chainstate. This change also makes m_cached_finished_ibd caching easier to reason about, because now there is only one cached value instead of two (for background and snapshot chainstates) so the cached IBD state now no longer gets reset when a snapshot is loaded. There should be no change in behavior because these functions were always called on the active ChainState objects. These changes were discussed previously https://github.com/bitcoin/bitcoin/pull/27746#discussion_r1246868905 and https://github.com/bitcoin/bitcoin/pull/27746#discussion_r1237552792 as possible followups for that PR. ci: Disable cache save for pull requests in GitHub Actions Otherwise, multiple pull requests fill GitHub Actions cache quota shortly. tx fees, policy: doc: update and delete unnecessary comment test: ensure acceptstalefeeestimates is supported only on regtest chain test: fix 'unknown named parameter' test in `wallet_basic` Fixes loop when testing an unknown named parameter. Remove unused includes from txmempool.h ... and move them to where they are really needed. This was found by IWYU: txmempool.h should remove these lines: - #include <random.h> // lines 29-29 - class CBlockIndex; // lines 43-43 - class Chainstate; // lines 45-45 Also, move the stdlib section to the right place. Can be reviewed with: --color-moved=dimmed-zebra move-only: Create src/kernel/mempool_removal_reason.h This is needed for a future commit. Can be reviewed with: --color-moved=dimmed-zebra Remove unused includes from blockfilter.h This removes unused includes, primitives/block found manually, and the others by iwyu: blockfilter.h should remove these lines: - #include <serialize.h> // lines 16-16 - #include <undo.h> // lines 18-18 Remove unused includes from wallet.cpp This removes unused includes, such as undo.h or txmempool.h from wallet.cpp. Also, add missing ones, according to IWYU. test: Support riscv64 in get_previous_releases.py refactor: Add missing includes Refactor: Remove confusing static_cast guix: pre time-machine bump changes (Windows) Split out of #27897. This is some refactoring to the Windows Guix build that facilitates bumping our Guix time-machine. Namely, avoiding `package-with-extra-configure-variable`, which is non-functional in the newer time-machine, see https://issues.guix.gnu.org/64436. At the same time, consolidate our Windows GCC build into mingw-w64-base-gcc. Rename `gcc-10-remap-guix-store.patch` to avoid changing it whenever GCC changes. We move the old `building-on` inside `explicit-cross-configure`, so that non-windows builds continue to work. Note that `explicit-cross-configure` will be going away entirely (see #27897). [test framework] make it easier to fast-forward setmocktime Have each TestNode keep track of the last timestamp it called setmocktime with, and add a bumpmocktime() function to bump by a number of seconds. Makes it easy to fast forward n seconds without keeping track of what the last timestamp was. [functional test] transaction orphan handling ci: Switch remaining tasks to self-hosted This allows to drop unused templates, such as cirrus_ephemeral_worker_template_env, or container_depends_template. Also, ccache_cache, previous_releases_cache, and base_depends_built_cache can be dropped, because the caching is done in container volumes on the self-hosted runners. ci: Remove distro-name from task name The exact distro name should not be important. Also, it is easy to find out, if needed. Thus, remove it to avoid bloat and maintenance overhead having to keep it in sync. doc, policy: Clarify comment on STANDARD_SCRIPT_VERIFY_FLAGS Make post-p2sh consensus rules mandatory for tx relay Update help text for spend and rawtransaction rpcs fixing typo guix: consolidate glibc 2.27 package Refactor our glibc 2.27 to be a single 'package', and avoid the use of `package-with-extra-configure-variable`. This also lets us drop the `enable_werror` workaround, and just use --disable-werror directly. Employ the same workaround as the Guix glibc, to avoid a "permission denied" failure during build: ```bash make subdir=sunrpc -C sunrpc ..=../ subdir_install make[2]: Entering directory '/tmp/guix-build-glibc-cross-x86_64-linux-gnu-2.27.drv-0/source/sunrpc' .././scripts/mkinstalldirs /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc mkdir -p -- /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc /gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 rpc/netdb.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc/netdb.h .././scripts/mkinstalldirs /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs mkdir -p -- /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs /gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 ../sysdeps/unix/sysv/linux/nfs/nfs.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs/nfs.h /gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 /tmp/guix-build-glibc-cross-x86_64-linux-gnu-2.27.drv-0/build/gnu/lib-names-64.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/gnu/lib-names-64.h /gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 etc.rpc /etc/rpc /gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install: cannot create regular file '/etc/rpc': Permission denied make[2]: *** [Makefile:197: /etc/rpc] Error 1 ``` guix: consolidate Linux GCC package Refactor our Linux GCC to be a single 'package', and avoid the use of `package-with-extra-configure-variable`. ci: Limit scope of some env vars No need to have a larger scope than needed. Can be reviewed with --color-moved=dimmed-zebra ci: Start with clean env This should help to avoid non-determinism. ci: Remove no longer applicable section This fails with: "Error: determining starting point for build: no FROM statement found" test: Fix intermittent issue in mempool_reorg ci: Use concurrency for pull requests only Otherwise, any previously pending workflow will be canceled on the following push. test: wallet_backup.py, fix intermittent failure in "restore using dumped wallet" The failure arises because the test expects 'init_wallet()' (the test framework function) creating a wallet with no keys. However, the function also imports the deterministic private key used to receive the coinbase coins. This causes a race within the "restore using dumped wallet" case, where we intend to have a new wallet (with no existing keys) to test the 'importwallet()' RPC result. The reason behind the intermittent failures might be other peers delivering the chain right after node2 startup (sync of the validation queue included) and prior to the 'node2.getbalance()' check. test: previous releases: speed up fetching sources with shallow clone For the sake of building previous releases, fetching the whole history of the repository for each version seems to be overkill as it takes much more time, bandwidth and disk space than necessary. Create a shallow clone instead with history truncated to the one commit of the version tag, which is directly checked out in the same command. This has the nice side-effect that we can remove the extra `git checkout` step after as it's not needed anymore. Note that it might look confusing to pass a _tag_ to a parameter named `--branch`, but the git-clone manpage explicitly states that this is supported. ci: Add missing docker.io prefix to CI_IMAGE_NAME_TAG rpc: Add MaybeArg() and Arg() default helper refactor: merge transport serializer and deserializer into Transport class This allows state that is shared between both directions to be encapsulated into a single object. Specifically the v2 transport protocol introduced by BIP324 has sending state (the encryption keys) that depends on received messages (the DH key exchange). Having a single object for both means it can hide logic from callers related to that key exchange and other interactions. net: add V1Transport lock protecting receive state Rather than relying on the caller to prevent concurrent calls to the various receive-side functions of Transport, introduce a private m_cs_recv inside the implementation to protect the lock state. Of course, this does not remove the need for callers to synchronize calls entirely, as it is a stateful object, and e.g. the order in which Receive(), Complete(), and GetMessage() are called matters. It seems impossible to use a Transport object in a meaningful way in a multi-threaded way without some form of external synchronization, but it still feels safer to make the transport object itself responsible for protecting its internal state. refactor: rename Transport class receive functions Now that the Transport class deals with both the sending and receiving side of things, make the receive side have function names that clearly indicate they're about receiving. * Transport::Read() -> Transport::ReceivedBytes() * Transport::Complete() -> Transport::ReceivedMessageComplete() * Transport::GetMessage() -> Transport::GetReceivedMessage() * Transport::SetVersion() -> Transport::SetReceiveVersion() Further, also update the comments on these functions to (among others) remove the "deserialization" terminology. That term is better reserved for just the serialization/deserialization between objects and bytes (see serialize.h), and not the conversion from/to wire bytes as performed by the Transport. net: abstract sending side of transport serialization further This makes the sending side of P2P transports mirror the receiver side: caller provides message (consisting of type and payload) to be sent, and then asks what bytes must be sent. Once the message has been fully sent, a new message can be provided. This removes the assumption that P2P serialization of messages follows a strict structure of header (a function of type and payload), followed by (unmodified) payload, and instead lets transports decide the structure themselves. It also removes the assumption that a message must always be sent at once, or that no bytes are even sent on the wire when there is no message. This opens the door for supporting traffic shaping mechanisms in the future. net: make V1Transport implicitly use current chainparams The rest of net.cpp already uses Params() to determine chainparams in many places (and even V1Transport itself does so in some places). Since the only chainparams dependency is through the message start characters, just store those directly in the transport. fuzz: add bidirectional fragmented transport test This adds a simulation test, with two V1Transport objects, which send messages to each other, with sending and receiving fragmented into multiple pieces that may be interleaved. It primarily verifies that the sending and receiving side are compatible with each other, plus a few sanity checks. net: measure send buffer fullness based on memory usage This more accurately captures the intent of limiting send buffer size, as many small messages can have a larger overhead that is not counted with the current approach. It also means removing the dependency on the header size (which will become a function of the transport choice) from the send buffer calculations. net: move message conversion to wire bytes from PushMessage to SocketSendData This furthers transport abstraction by removing the assumption that a message can always immediately be converted to wire bytes. This assumption does not hold for the v2 transport proposed by BIP324, as no messages can be sent before the handshake completes. This is done by only keeping (complete) CSerializedNetMsg objects in vSendMsg, rather than the resulting bytes (for header and payload) that need to be sent. In SocketSendData, these objects are handed to the transport as permitted by it, and sending out the bytes the transport tells us to send. This also removes the nSendOffset member variable in CNode, as keeping track of how much has been sent is now a responsability of the transport. This is not a pure refactor, and has the following effects even for the current v1 transport: * Checksum calculation now happens in SocketSendData rather than PushMessage. For non-optimistic-send messages, that means this computation now happens in the network thread rather than the message handler thread (generally a good thing, as the message handler thread is more of a computational bottleneck). * Checksum calculation now happens while holding the cs_vSend lock. This is technically unnecessary for the v1 transport, as messages are encoded independent from one another, but is untenable for the v2 transport anyway. * Statistics updates about per-message sent bytes now happen when those bytes are actually handed to the OS, rather than at PushMessage time. refactor: make Transport::ReceivedBytes just return success/fail fuzz: coinselection, add `CreateCoins` Move coins creation for a specific function. It allows us to use it in other parts of the code. fuzz: coinselection, add coverage for `EligibleForSpending` fuzz: coinselection, add coverage for `AddInputs` fuzz: coinselection, add coverage for `GetShuffledInputVector`/`GetInputSet` fuzz: coinselection, add coverage for `Merge` fuzz: coinselection, improve `ComputeAndSetWaste` Instead of using `cost_of_change` for `min_viable_change` and `change_cost`, and 0 for `change_fee`, use values from `coin_params`. The previous values don't generate any effects that is relevant for that context. fuzz: coinselection, compare `GetSelectedValue` with target The valid results should have a target below the sum of the selected inputs amounts. Also, it increases the minimum value for target to make it more realistic. fuzz: coinselection, BnB should never produce change fuzz: coinselection, fix `m_cost_of_change` `m_cost_of_change` must not be generated randomly independent from m_change_fee. This commit changes it to set it up according to `wallet/spend`. doc: Improve documentation of rpcallowip rpchelp Closes #21070 v21.0 introduced a behaviour changed noted in #21070 where using a config value `rpcallowip=::0` no longer also permitted ipv4 ip addresses. The rpc_bind.py functional test covers this new behaviour already by checking that the list of bind addresses exactly matches what is expected so this commit only updates the documentation. rpc: add test-only sendmsgtopeer rpc This rpc can be used when we want a node to send a message, but cannot use a python P2P object, for example for testing of low-level net transport behavior. test: add basic tests for sendmsgtopeer to rpc_net.py test: add functional test for deadlock situation guix: backport glibc patch to fix powerpc build Do this prior to bumping the time-machine, to avoid the following build failure: ```bash /tmp/guix-build-glibc-cross-powerpc64le-linux-gnu-2.27.drv-0/build/string/memset-power8.o.dt -MT /tmp/guix-build-glibc-cross-powerpc64le-linux-gnu-2.27.drv-0/build/string/memset-power8.o ../sysdeps/powerpc/powerpc64/power4/memcmp.S: Assembler messages: ../sysdeps/powerpc/powerpc64/power4/memcmp.S:87: Error: unrecognized opcode: `ldbrx' ../sysdeps/powerpc/powerpc64/power4/memcmp.S:88: Error: unrecognized opcode: `ldbrx' ../sysdeps/powerpc/powerpc64/power4/memcmp.S:112: Error: unrecognized opcode: `ldbrx' ``` See: https://sourceware.org/git/?p=glibc.git;a=commit;h=9250e6610fdb0f3a6f238d2813e319a41fb7a810. https://github.com/gcc-mirror/gcc/commit/e154242724b084380e3221df7c08fcdbd8460674. guix: update python-oscrypto to 1.3.0 This is required for bumping the time-machine, for compatibility with OpenSSL: oscrypto: openssl backend, 1.2.1, /tmp/guix-build-python-oscrypto-1.2.1.drv-0/source/oscrypto Traceback (most recent call last): File "/tmp/guix-build-python-oscrypto-1.2.1.drv-0/source/oscrypto/_openssl/_libcrypto_ctypes.py", line 304, in <module> libcrypto.EVP_PKEY_size.argtypes = [ File "/gnu/store/9dkl9fnidcdpw19ncw5pk0p7dljx7ijb-python-3.10.7/lib/python3.10/ctypes/__init__.py", line 387, in __getattr__ func = self.__getitem__(name) File "/gnu/store/9dkl9fnidcdpw19ncw5pk0p7dljx7ijb-python-3.10.7/lib/python3.10/ctypes/__init__.py", line 392, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) AttributeError: /gnu/store/2hr7w64zhr6jjznidyc2xi40d5ynhj9c-openssl-3.0.8/lib/libcrypto.so.3: undefined symbol: EVP_PKEY_size. Did you mean: 'EVP_PKEY_free'? guix: update time-machine to 160f78a4d92205df986ed9efcce7d3aac188cb24 In our time-machine environment this changes the following: GCC 10.3.0 -> 10.4.0 Binutils 2.37 -> 2.38 Linux Libre Headers 5.15.37 -> 5.15.127 git 2.36.0 -> 2.41.0 mingw-w64 8.0.0 -> 11.0.1 NSIS 3.05 -> 3.09 xorriso 1.5.2 -> 1.5.6.pl02 Python 3.9 -> 3.10.7 Python-asn1crypto 1.4.0 -> 1.5.1 GCC 12.3.0 becomes available. LLVM 15.0.7 becomes available. guix: use cross-* keyword arguments Using the new time-machine results in warnings about consistently using keyword arguments: ```bash guix environment: warning: 'cross-kernel-headers' must be used with keyword arguments guix environment: warning: 'cross-libc' must be used with keyword arguments ``` guix: drop NSIS patch now that we use 3.09 See https://sourceforge.net/p/nsis/bugs/1283/. guix: drop Windows broken-longjmp.patch This is no-longer required, now that we are building using GCC 10.4.0. depends: use LLVM/Clang 15.0.6 for macOS cross-compile There is no x86_64 binaries for 15.0.7. guix: use clang-toolchain-15 for macOS compilation ci: Run "Win64 native" job on GitHub Actions refactor: Use HashWriter over legacy CHashWriter refactor: Use HashWriter over legacy CHashWriter (via SerializeHash) config: default acceptnonstdtxn=0 on all chains Previously, the default for acceptnonstdtxn defaulted to 0 on all chains except testnet. Change this to be consistent across all chains, and remove the parameter from chainparams entirely. doc: Release notes for testnet defaulting to -acceptnonstdtxn=0 script: replace deprecated pkg_resources with importlib.metadata in our python linter: ``` ./test/lint/lint-python.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources ``` The importlib.metadata library was added in Python 3.8, which is currently our minimum-supported Python version. For more details about importlib.metadata, see https://docs.python.org/3/library/importlib.metadata.html ci, windows: Do not run extended functional tests for pull requests This change is intended to speed up the CI feedback for pull requests. test: Support powerpc64le in get_previous_releases.py guix: remove GCC 10 workaround from NSIS Fixed upstream in 3.06, see https://github.com/kichik/nsis/commit/229b6136c41ba5caba25936f4927476d20aa283f. https://sourceforge.net/p/nsis/bugs/1248/ doc: Remove sudo from command that is already run as root ci: Remove /ro_base bind mount Just set the bind mount to BASE_READ_ONLY_DIR, which allows to drop one line of code and makes the code easier to understand. ci: Remove unused TEST_RUNNER_ENV="LC_ALL=C" from s390x task gui: make '-min' minimize wallet loading dialog When '-min' is enabled, no loading dialog should be presented on screen during startup. doc: Fill in the required skills in the good_first_issue template [log] include wtxid in tx {relay,validation,orphanage} logging [log] add category TXPACKAGES for orphanage and package relay [log] add more logs related to orphan handling - Whenever a tx is erased. Allows somebody to see which transactions have been erased due to expiry/overflow, not just how many. - Whenever a tx is added to a peer's workset. - AcceptToMemoryPool when a tx is accepted, mirroring the one logged for a tx received from a peer. This allows someone to see all of the transactions that are accepted to mempool just by looking for ATMP logs. - MEMPOOLREJ when a tx is rejected, mirroring the one logged for a tx received from a peer. This allows someone to see all of the transaction rejections by looking at MEMPOOLREJ logs. [doc] move comment about AlreadyHaveTx DoS score to the right place This comment isn't in the right place, as detection of a tx in recent_rejects would cause the function to exit much earlier. Move the comment to the right place and tweak the first sentence for accuracy. ci: Avoid oversubscription in functional tests on Windows ci: Avoid saving the same Ccache cache This occurred when a job was being rerun. log: Print error message when coindb is in inconsistent state qt: Translation updates from Transifex The diff is generated by executing the `update-translations.py` script. qt: Bump Transifex slug for 26.x qt: Update translation source file The diff is generated by executing `make -C src translate`. removed StrFormatInternalBug quote delimitation ci: Bump `actions/checkout` version See: https://github.com/actions/checkout/releases/tag/v4.0.0 test: p2p: check that `getaddr` msgs are only responded once per connection test: remove fixed timeouts from feature_config_args They cannot be scaled by the timeout_factor option and can therefore cause timeouts in slow environments. They are also not necessary for the test, since they measure time frome startup until a debug message is encountered, which is not restricted to 1 minute by any internal logic within bitcoind. ci: Asan with -ftrivial-auto-var-init=pattern Squashed 'src/secp256k1/' changes from c545fdc374..199d27cea3 199d27cea3 Merge bitcoin-core/secp256k1#1415: release: Prepare for 0.4.0 16339804c9 release: Prepare for 0.4.0 d9a85065a9 changelog: Catch up in preparation of release 0b4640aedd Merge bitcoin-core/secp256k1#1413: ci: Add `release` job 8659a01714 ci: Add `release` job f9b38894ba ci: Update `actions/checkout` version 727bec5bc2 Merge bitcoin-core/secp256k1#1414: ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 2635068abf ci/gha: Let MSan continue checking after errors in all jobs e78c7b68eb ci/Dockerfile: Reduce size of Docker image further 2f0d3bbffb ci/Dockerfile: Warn if `ulimit -n` is too high when running Docker 4b8a647ad3 ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 6ebe7d2bb3 ci/Dockerfile: Always use versioned clang packages 65c79fe2d0 Merge bitcoin-core/secp256k1#1412: ci: Switch macOS from Ventura to Monterey and add Valgrind c223d7e33d ci: Switch macOS from Ventura to Monterey and add Valgrind ea26b71c3a Merge bitcoin-core/secp256k1#1411: ci: Make repetitive command the default one cce0456304 ci: Make repetitive command the default one 317a4c48f0 ci: Move `git config ...` to `run-in-docker-action` 4d7fe60905 Merge bitcoin-core/secp256k1#1409: ci: Move remained task from Cirrus to GitHub Actions 676ed8f9cf ci: Move "C++ (public headers)" from Cirrus to GitHub Actions 61fc3a2dc8 ci: Move "C++ -fpermissive..." from Cirrus to GitHub Actions d51fb0a533 ci: Move "MSan" from Cirrus to GitHub Actions c22ac27529 ci: Move sanitizers task from Cirrus to GitHub Actions 26a989924b Merge bitcoin-core/secp256k1#1410: ci: Use concurrency for pull requests only ee1be62d84 ci: Use concurrency for pull requests only 6ee14550c8 Merge bitcoin-core/secp256k1#1406: ci, gha: Move more non-x86_64 tasks from Cirrus CI to GitHub Actions fc3dea29ea ci: Move "ppc64le: Linux..." from Cirrus to GitHub Actions 7782dc8276 ci: Move "ARM64: Linux..." from Cirrus to GitHub Actions 0a16de671c ci: Move "ARM32: Linux..." from Cirrus to GitHub Actions ea33914e00 ci: Move "s390x (big-endian): Linux..." from Cirrus to GitHub Actions 880be8af99 ci: Move "i686: Linux (Debian stable)" from Cirrus to GiHub Actions 2e6cf9bae5 Merge bitcoin-core/secp256k1#1396: ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job 5373693e45 Merge bitcoin-core/secp256k1#1405: ci: Drop no longer needed workaround ef9fe959de ci: Drop no longer needed workaround e10878f58e ci, gha: Drop `driver-opts.network` input for `setup-buildx-action` 4ad4914bd1 ci, gha: Add `retry_builder` Docker image builder 6617a620d9 ci: Remove "x86_64: Linux (Debian stable)" task from Cirrus CI 03c9e6508c ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job ad3e65d9fe ci: Remove GCC build files and sage to reduce size of Docker image 6b9507adf6 Merge bitcoin-core/secp256k1#1398: ci, gha: Add Windows jobs based on Linux image 87d35f30c0 ci: Rename `cirrus.sh` to more general `ci.sh` d6281dd008 ci: Remove Windows tasks from Cirrus CI 2b6f9cd546 ci, gha: Add Windows jobs based on Linux image 48b1d939b5 Merge bitcoin-core/secp256k1#1403: ci, gha: Ensure only a single workflow processes `github.ref` at a time 0ba2b94551 Merge bitcoin-core/secp256k1#1373: Add invariant checking for scalars 060e32cb60 Merge bitcoin-core/secp256k1#1401: ci, gha: Run all MSVC tests on Windows natively de657c2044 Merge bitcoin-core/secp256k1#1062: Removes `_fe_equal_var`, and unwanted `_fe_normalize_weak` calls (in tests) bcffeb14bc Merge bitcoin-core/secp256k1#1404: ci: Remove "arm64: macOS Ventura" task from Cirrus CI c2f6435802 ci: Add comment about switching macOS to M1 on GHA later 4a24fae0bc ci: Remove "arm64: macOS Ventura" task from Cirrus CI b0886fd35c ci, gha: Ensure only a single workflow processes `github.ref` at a time 3d05c86d63 Merge bitcoin-core/secp256k1#1394: ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions d78bec7001 ci: Remove Windows MSVC tasks from Cirrus CI 3545dc2b9b ci, gha: Run all MSVC tests on Windows natively 5d8fa825e2 Merge bitcoin-core/secp256k1#1274: test: Silent noisy clang warnings about Valgrind code on macOS x86_64 8e54a346d2 ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions b327abfcea Merge bitcoin-core/secp256k1#1402: ci: Use Homebrew's gcc in native macOS task d62db57427 ci: Use Homebrew's gcc in native macOS task 54058d16fe field: remove `secp256k1_fe_equal_var` bb4efd6404 tests: remove unwanted `secp256k1_fe_normalize_weak` call eedd781085 Merge bitcoin-core/secp256k1#1348: tighten group magnitude limits, save normalize_weak calls in group add methods (revival of #1032) b2f6712dd3 Merge bitcoin-core/secp256k1#1400: ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift 9c91ea41b1 ci: Enable ellswift module where it's missing db32a24761 ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift ce765a5b8e Merge bitcoin-core/secp256k1#1399: ci, gha: Run "SageMath prover" job on GitHub Actions 8408dfdc4c Revert "ci: Run sage prover on CI" c8d9914fb1 ci, gha: Run "SageMath prover" job on GitHub Actions 8d2960c8e2 Merge bitcoin-core/secp256k1#1397: ci: Remove "Windows (VS 2022)" task from Cirrus CI f1774e5ec4 ci, gha: Make MSVC job presentation more explicit 5ee039bb58 ci: Remove "Windows (VS 2022)" task from Cirrus CI 96294c00fb Merge bitcoin-core/secp256k1#1389: ci: Run "Windows (VS 2022)" job on GitHub Actions a2f7ccdecc ci: Run "Windows (VS 2022)" job on GitHub Actions 374e2b54e2 Merge bitcoin-core/secp256k1#1290: cmake: Set `ENVIRONMENT` property for examples on Windows 1b13415df9 Merge bitcoin-core/secp256k1#1391: refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) a1bd4971d6 refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) b7c685e74a Save _normalize_weak calls in group add methods c83afa66e0 Tighten group magnitude limits 26392da2fb Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh d23da6d557 use secp256k1_scalar_verify checks 4692478853 ci: print $ELLSWIFT in cirrus.sh c7d0454932 add verification for scalars c734c64278 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES ad152151b0 update max scalar in scalar_cmov_test and fix schnorrsig_verify exhaustive test 78ca880788 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7d10 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a466c1 util: remove unused checked_realloc 2bd5f3e618 Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast 4f8c5bd761 refactor: Drop unused cast 173e8d061a Implement current magnitude assumptions 49afd2f5d8 Take use of _fe_verify_magnitude in field_impl.h 4e9661fc42 Add _fe_verify_magnitude (no-op unless VERIFY is enabled) 690b0fc05a add missing group element invariant checks 175db31149 ci: Drop no longer needed `PATH` variable update on Windows 116d2ab3df cmake: Set `ENVIRONMENT` property for examples on Windows cef373997c cmake, refactor: Use helper function instead of interface library 747ada3587 test: Silent noisy clang warnings about Valgrind code on macOS x86_64 git-subtree-dir: src/secp256k1 git-subtree-split: 199d27cea32203b224b208627533c2e813cd3b21 scripted-diff: Use blocks_path where possible -BEGIN VERIFY SCRIPT- sed -i 's|].chain_path, .blocks.|].blocks_path|g' $(git grep -l chain_path) -END VERIFY SCRIPT- index: Drop legacy -txindex check move-only: Move CBlockTreeDB to node/blockstorage The block index (CBlockTreeDB) is required to write and read blocks, so move it to blockstorage. This allows to drop the txdb.h include from `node/blockstorage.h`. Can be reviewed with: --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space Fixup style of moved code Can be reviewed with --word-diff-regex=. scripted-diff: Rename CBlockTreeDB -> BlockTreeDB -BEGIN VERIFY SCRIPT- sed -i 's|CBlockTreeDB|BlockTreeDB|g' $( git grep -l CBlockTreeDB ) -END VERIFY SCRIPT- build: use -muse-unaligned-vector-move for Windows We currently work around a longstanding GCC issue with aligned vector instructions, in our release builds, by patching the behaviour we want into GCC (see discussion in #24736). A new option now exists in the binutils assembler, `-muse-unaligned-vector-move`, which should also achieve the behaviour we want (at least for our code). This was added in the 2.38 release, see https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c8480b58e1968f209b6365af7422678f348222c2. ```bash x86: Add -muse-unaligned-vector-move to assembler Unaligned load/store instructions on aligned memory or register are as fast as aligned load/store instructions on modern Intel processors. Add a command-line option, -muse-unaligned-vector-move, to x86 assembler to encode encode aligned vector load/store instructions as unaligned vector load/store instructions. ``` Even if we introduce this option into our build system, we'll have to maintain our GCC patching, as we want all code that ends up in the binary, to avoid these instructions. However, there may be some value in adding the option, as it could be an improvement for someone building (bitcoind.exe) with an unpatched compiler. test: Combine sync_send_with_ping and sync_with_ping miniscript: make GetStackSize independent of P2WSH context It was taking into account the P2WSH script push in the number of stack elements. miniscript: introduce a helper to get the maximum witness size Similarly to how we compute the maximum stack size. Also note how it would be quite expensive to recompute it recursively by accounting for different ECDSA signature sizes. So we just assume high-R everywhere. It's only a trivial difference anyways. descriptor: introduce a method to get the satisfaction size In the wallet code, we are currently estimating the size of a signed input by doing a dry run of the signing logic. This is unnecessary as all outputs we are able to sign for can be represented by a descriptor, and we can derive the size of a satisfaction ("signature") from the descriptor itself directly. In addition, this approach does not scale: getting the size of a satisfaction through a dry run of the signing logic is only possible for the most basic scripts. This commit introduces the computation of the size of satisfaction per descriptor. It's a bit intricate for 2 main reasons: - We want to conserve the behaviour of the current dry-run logic used by the wallet that sometimes assumes ECDSA signatures will be low-r, sometimes not (when we don't create them). - We need to account for the witness discount. A single descriptor may sometimes benefit of it, sometimes not (for instance `pk()` if used as top-level versus if used inside `wsh()`). script/signingprovider: introduce a MultiSigningProvider It is sometimes useful to interface with multiple signing providers at once. For instance when inferring a descriptor with solving information being provided from multiple sources (see next commit). Instead of inneficiently copying the information from one provider into the other, introduce a new signing provider that takes a list of pointers to existing providers. wallet: use descriptor satisfaction size to estimate inputs size Instead of using the dummysigner to compute a placeholder satisfaction, infer a descriptor on the scriptPubKey of the coin being spent and use the estimation of the satisfaction size given by the descriptor directly. Note this (almost, see next paragraph) exactly conserves the previous behaviour. For instance CalculateMaximumSignedInputSize was previously assuming the input to be spent in a transaction that spends at least one Segwit coin, since it was always accounting for the serialization of the number of witness elements. In this commit we use a placeholder for the size of the serialization of the witness stack size (1 byte). Since the logic in this commit is already tricky enough to review, and that it is only a very tiny approximation not observable through the existing tests, it is addressed in the next commit. wallet: accurately account for the size of the witness stack When estimating the maximum size of an input, we were assuming the number of elements on the witness stack could be encode in a single byte. This is a valid approximation for all the descriptors we support (including P2WSH Miniscript ones), but may not hold anymore once we support Miniscript within Taproot descriptors (since the max standard witness stack size of 100 gets lifted). It's a low-hanging fruit to account for it correctly, so just do it now. fuzz: introduce and use `ConsumePrivateKey` helper doc: s/--no-substitute/--no-substitutes in guix/INSTALL Replace READWRITEAS macro with AsBase wrapping function Co-authored-by: Pieter Wuille <pieter@wuille.net> Rename CSerAction* to Action* This allows new code, added in the next commit, to conform to the coding guideline: No C-prefix for class names. Support for serialization parameters The moved part can be reviewed with the git options --ignore-all-space --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space (Modified by Marco Falke) Co-authored-by: Pieter Wuille <pieter@wuille.net> Use serialization parameters for CAddress serialization This also cleans up the addrman (de)serialization code paths to only allow `Disk` serialization. Some unit tests previously forced a `Network` serialization, which does not make sense, because Bitcoin Core in production will always `Disk` serialize. This cleanup idea was suggested by Pieter Wuille and implemented by Anthony Towns. Co-authored-by: Pieter Wuille <pieter@wuille.net> Co-authored-by: Anthony Towns <aj@erisian.com.au> test: add tests that exercise WithParams() Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Remove unused legacy CHashVerifier depends: libtapi 1300.0.6.5 depends: cctools 986 & ld64 711 test: remove unused variables in `p2p_invalid_block` fuzz: add ConstructPubKeyBytes function Today, this code only has one spot where it needs well-formed pubkeys, but future PRs will want to reuse this code. Add a function which creates a well-formed byte array that can be turned into a pubkey. It is not required that the pubkey is valid, just that it can be recognized as a compressed or uncompressed pubkey. Note: while the main intent of this commit is to wrap the existing logic into a function, it also switches to `PickValueFromArray` so that we are only choosing one of 0x04, 0x06, or 0x07. The previous code, `ConsumeIntegralInRange` would have also picked 0x05, which is not definied in the context of compressed vs uncompressed keys. See https://bitcoin.stackexchange.com/questions/57855/c-secp256k1-what-do-prefixes-0x06-and-0x07-in-an-uncompressed-public-key-signif for more details. net: add have_next_message argument to Transport::GetBytesToSend() Before this commit, there are only two possibly outcomes for the "more" prediction in Transport::GetBytesToSend(): * true: the transport itself has more to send, so the answer is certainly yes. * false: the transport has nothing further to send, but if vSendMsg has more message(s) left, that still will result in more wire bytes after the next SetMessageToSend(). For the BIP324 v2 transport, there will arguably be a third state: * definitely not: the transport has nothing further to send, but even if vSendMsg has more messages left, they can't be sent (right now). This happens before the handshake is complete. To implement this, we move the entire decision logic to the Transport, by adding a boolean to GetBytesToSend(), called have_next_message, which informs the transport whether more messages are available. The return values are still true and false, but they mean "definitely yes" and "definitely no", rather than "yes" and "maybe". net: remove unused Transport::SetReceiveVersion crypto: Spanify EllSwiftPubKey constructor net: add V2Transport class with subset of BIP324 functionality This introduces a V2Transport with a basic subset of BIP324 functionality: * no ability to send garbage (but receiving is supported) * no ability to send decoy packets (but receiving them is supported) * no support for short message id encoding (neither encoding or decoding) * no waiting until 12 non-V1 bytes have been received * (and thus) no detection of V1 connections on the responder side (on the sender side, detecting V1 is not supported either, but that needs to be dealt with at a higher layer, by reconnecting) net: make V2Transport auto-detect incoming V1 and fall back to it net: add short message encoding/decoding support to V2Transport net: make V2Transport send uniformly random number garbage bytes net: make V2Transport preallocate receive buffer space test: add unit tests for V2Transport net: detect wrong-network V1 talking to V2Transport Remove version/hashing options from CBlockLocator/CDiskBlockIndex refactor: Use DataStream now that version/type are unused refactor: remove clientversion include from dbwrapper.h consensus/validation.h: remove needless GetTransactionOutputWeight helper Introduced in 9b7ec393b82ca9d7ada77d06e0835df0386a8b85. This copied the format of the other Get.*Weight helpers but it's useless for a CTxOut. test: refactor: remove unnecessary blocks_checked counter Since we already store all the blocks in `events`, keeping an additional counter is redundant. test: refactor: rename inbound to is_inbound Makes it easier to recognize this variable represents a flag. test: refactor: deduplicate handle_utxocache_* logic Carve out the comparison logic into a helper function to avoid code duplication. test: store utxocache events By storing the events instead of doing the comparison inside the handle_utxocache_* functions, we simplify the overall logic and potentially making debugging easier, by allowing pdb to access the events. Mostly a refactor, but changes logging behaviour slightly by not raising and not calling self.log.exception("Assertion failed") test: log sanity check assertion failures test: refactor: remove unnecessary nonlocal Since we're only mutating, and not reassigning, we don't need to declare `events` as `nonlocal`. test: refactor: usdt_mempool: store all events Even though we expect these functions to only produce one event, we still keep a counter to check if that's true. By simply storing all the events, we can remove the counters and make debugging easier, by allowing pdb to access the events. net: merge V2Transport constructors, move key gen This removes the ability for BIP324Cipher to generate its own key, moving that responsibility to the caller (mostly, V2Transport). This allows us to write the random-key V2Transport constructor by delegating to the explicit-key one. net: do not use send buffer to store/cache garbage Before this commit the V2Transport::m_send_buffer is used to store the garbage: * During MAYBE_V1 state, it's there despite not being sent. * During AWAITING_KEY state, while it is being sent. * At the end of the AWAITING_KEY state it cannot be wiped as it's still needed to compute the garbage authentication packet. Change this by introducing a separate m_send_garbage field, taking over the first and last role listed above. This means the garbage is only in the send buffer when it's actually being sent, removing a few special cases related to this. doc: fix typos and mistakes in BIP324 code comments index: coinstats reorg, fail when block cannot be reversed During a reorg, continuing execution when a block cannot be reversed leaves the coinstats index in an inconsistent state, which was surely overlooked when 'CustomRewind' was implemented. index: add [nodiscard] attribute to functions writing to the db rpc: Deprecate rpcserialversion=0 doc: Clarify that -fstack-reuse=all bugs exist on all versions of GCC wallet rpc: return final tx hex from walletprocesspsbt if complete test: remove unnecessary finalizepsbt rpc calls doc: add release note for PR #28414 doc, refactor: Changing -torcontrol help to specify that a default port is used Right now when we get the help for -torcontrol it says that there is a default ip and port we dont specify if there is a specified ip that we would also use port 9051 as default [policy] check for duplicate txids in package Duplicates of normal transactions would be found by looking for conflicting inputs, but this doesn't catch identical empty transactions. These wouldn't be valid but exiting early is good and AcceptPackage's result sanity checks assume non-duplicate transactions. [CCoinsViewMemPool] track non-base coins and allow Reset Temporary coins should not be available in separate subpackage submissions. Any mempool coins that are cached in m_view should be removed whenever mempool contents change, as they may be spent or no longer exist. [validation] add AcceptSubPackage to delegate Accept* calls and clean up m_view (1) Call AcceptSingleTransaction when there is only 1 transaction in the subpackage. This avoids calling PackageMempoolChecks() which enforces rules that don't need to be applied for a single transaction, i.e. disabling CPFP carve out. There is a slight change in the error type returned, as shown in the txpackage_tests change. When a transaction is the last one left in the package and its fee is too low, this returns a PCKG_TX instead of PCKG_POLICY. This interface is clearer; "package-fee-too-low" for 1 transaction would be a bit misleading. (2) Clean up m_view and m_viewmempool so that coins created in this sub-package evaluation are not available for other sub-package evaluations. The contents of the mempool may change, so coins that are available now might not be later. [validation] make PackageMempoolAcceptResult members mutable After the PackageMempoolAcceptResult is returned from AcceptMultipleTransactions, leave room for results to change due to LimitMempool() eviction. [refactor] back-fill results in AcceptPackage Instead of populating the last PackageMempoolAcceptResult with stuff from results_final and individual_results_nonfinal, fill results_final and create a PackageMempoolAcceptResult using that one. A future commit will add LimitMempoolSize() which may change the status of each of these transactions from "already in mempool" or "submitted to mempool" to "no longer in mempool". We will change those transactions' results here. A future commit also gets rid of the last AcceptSubPackage outside of the loop. It makes more sense to use results_final as the place where all results end up. [validation] return correct result when already-in-mempool tx gets evicted Bug fix: a transaction may be in the mempool when package evaluation begins (so it is added to results_final with MEMPOOL_ENTRY or DIFFERENT_WITNESS), but get evicted due to another transaction submission. [validation] don't LimitMempoolSize in any subpackage submissions Don't do any mempool evictions until package validation is done, preventing the mempool minimum feerate from changing. Whether we submit transactions separately or as a package depends on whether they meet the mempool minimum feerate threshold, so it's best that the value not change while we are evaluating a package. This avoids a situation where we have a CPFP package in which the parents meet the mempool minimum feerate and are submitted by themselves, but they are evicted before we have submitted the child. [test framework] add ability to spend only confirmed utxos Useful to ensure that the topologies of packages/transactions are as expected, preventing bugs caused by having unexpected mempool ancestors. [refactor] split setup in mempool_limit test We want to be able to re-use fill_mempool so that none of the tests affect each other. Change the logs from info to debug because they are otherwise repeated many times in the test output. [test] mempool coins disappearing mid-package evaluation Test for scenario(s) outlined in PR 28251. Test what happens when a package transaction spends a mempool coin which is fetched and then disappears mid-package evaluation due to eviction or replacement. dbwrapper: Use DataStream for batch operations Remove unused GetType() from CBufferedFile and CAutoFile GetType() is only called in tests, so it is unused and can be removed. scripted-diff: Rename CBufferedFile to BufferedFile While touching all constructors in the previous commit, the class name can be adjusted to comply with the style guide. -BEGIN VERIFY SCRIPT- sed -i 's/CBufferedFile/BufferedFile/g' $( git grep -l CBufferedFile ) -END VERIFY SCRIPT- ci: Add test-each-commit task ci: Limit test-each-commit to --max-count=6 [refactor] Allow std::array<std::byte, N> in serialize.h This is already possible for C-style arrays, so allow it for C++11 std::array as well. [refactor] Define MessageStartChars as std::array kernel: Move MessageStartChars to its own file The protocol.h file contains many non-consensus related definitions and should thus not be part of the libbitcoinkernel. This commit makes protocol.h no longer a required include for users of the libbitcoinkernel. This commit is part of the libbitcoinkernel project, namely its stage 1 step 3: Decouple most non-consensus headers from libbitcoinkernel. Co-Authored-By: Cory Fields <cory-nospam-@coryfields.com> [refactor] Add missing includes for next commit [refactor] Add CChainParams member to CConnman This is done in preparation to the next commit, but has the nice effect of removing one further data structure relying on the global `Params()`. [refactor] Remove netaddress.h from kernel headers Move functions requiring the netaddress.h include out of libbitcoinkernel source files. The netaddress.h file contains many non-consensus related definitions and should thus not be part of the libbitcoinkernel. This commit makes netaddress.h no longer a required include for users of the libbitcoinkernel. This commit is part of the libbitcoinkernel project, namely its stage 1 step 3: Decouple most non-consensus headers from libbitcoinkernel. [refactor] Remove compat.h from kernel headers This commit makes compat.h no longer a required include for users of the libbitcoinkernel. Including compat.h imports a bunch of platform-specific definitions. This commit is part of the libbitcoinkernel project, namely its stage 1 step 3: Decouple most non-consensus headers from libbitcoinkernel. ci: clang-17 for fuzz and tsan [fuzz] Use afl++ shared-memory fuzzing Using shared-memory is faster than reading from stdin, see https://github.com/AFLplusplus/AFLplusplus/blob/7d2122e0596132f9344a5d0896020ebc79cd33db/instrumentation/README.persistent_mode.md Revert "Merge bitcoin/bitcoin#28279: ci: Add test-each-commit task" This reverts commit…
janus
pushed a commit
to BitgesellOfficial/bitgesell
that referenced
this pull request
Apr 1, 2024
199d27cea3 Merge bitcoin-core/secp256k1#1415: release: Prepare for 0.4.0 16339804c9 release: Prepare for 0.4.0 d9a85065a9 changelog: Catch up in preparation of release 0b4640aedd Merge bitcoin-core/secp256k1#1413: ci: Add `release` job 8659a01714 ci: Add `release` job f9b38894ba ci: Update `actions/checkout` version 727bec5bc2 Merge bitcoin-core/secp256k1#1414: ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 2635068abf ci/gha: Let MSan continue checking after errors in all jobs e78c7b68eb ci/Dockerfile: Reduce size of Docker image further 2f0d3bbffb ci/Dockerfile: Warn if `ulimit -n` is too high when running Docker 4b8a647ad3 ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 6ebe7d2bb3 ci/Dockerfile: Always use versioned clang packages 65c79fe2d0 Merge bitcoin-core/secp256k1#1412: ci: Switch macOS from Ventura to Monterey and add Valgrind c223d7e33d ci: Switch macOS from Ventura to Monterey and add Valgrind ea26b71c3a Merge bitcoin-core/secp256k1#1411: ci: Make repetitive command the default one cce0456304 ci: Make repetitive command the default one 317a4c48f0 ci: Move `git config ...` to `run-in-docker-action` 4d7fe60905 Merge bitcoin-core/secp256k1#1409: ci: Move remained task from Cirrus to GitHub Actions 676ed8f9cf ci: Move "C++ (public headers)" from Cirrus to GitHub Actions 61fc3a2dc8 ci: Move "C++ -fpermissive..." from Cirrus to GitHub Actions d51fb0a533 ci: Move "MSan" from Cirrus to GitHub Actions c22ac27529 ci: Move sanitizers task from Cirrus to GitHub Actions 26a989924b Merge bitcoin-core/secp256k1#1410: ci: Use concurrency for pull requests only ee1be62d84 ci: Use concurrency for pull requests only 6ee14550c8 Merge bitcoin-core/secp256k1#1406: ci, gha: Move more non-x86_64 tasks from Cirrus CI to GitHub Actions fc3dea29ea ci: Move "ppc64le: Linux..." from Cirrus to GitHub Actions 7782dc8276 ci: Move "ARM64: Linux..." from Cirrus to GitHub Actions 0a16de671c ci: Move "ARM32: Linux..." from Cirrus to GitHub Actions ea33914e00 ci: Move "s390x (big-endian): Linux..." from Cirrus to GitHub Actions 880be8af99 ci: Move "i686: Linux (Debian stable)" from Cirrus to GiHub Actions 2e6cf9bae5 Merge bitcoin-core/secp256k1#1396: ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job 5373693e45 Merge bitcoin-core/secp256k1#1405: ci: Drop no longer needed workaround ef9fe959de ci: Drop no longer needed workaround e10878f58e ci, gha: Drop `driver-opts.network` input for `setup-buildx-action` 4ad4914bd1 ci, gha: Add `retry_builder` Docker image builder 6617a620d9 ci: Remove "x86_64: Linux (Debian stable)" task from Cirrus CI 03c9e6508c ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job ad3e65d9fe ci: Remove GCC build files and sage to reduce size of Docker image 6b9507adf6 Merge bitcoin-core/secp256k1#1398: ci, gha: Add Windows jobs based on Linux image 87d35f30c0 ci: Rename `cirrus.sh` to more general `ci.sh` d6281dd008 ci: Remove Windows tasks from Cirrus CI 2b6f9cd546 ci, gha: Add Windows jobs based on Linux image 48b1d939b5 Merge bitcoin-core/secp256k1#1403: ci, gha: Ensure only a single workflow processes `github.ref` at a time 0ba2b94551 Merge bitcoin-core/secp256k1#1373: Add invariant checking for scalars 060e32cb60 Merge bitcoin-core/secp256k1#1401: ci, gha: Run all MSVC tests on Windows natively de657c2044 Merge bitcoin-core/secp256k1#1062: Removes `_fe_equal_var`, and unwanted `_fe_normalize_weak` calls (in tests) bcffeb14bc Merge bitcoin-core/secp256k1#1404: ci: Remove "arm64: macOS Ventura" task from Cirrus CI c2f6435802 ci: Add comment about switching macOS to M1 on GHA later 4a24fae0bc ci: Remove "arm64: macOS Ventura" task from Cirrus CI b0886fd35c ci, gha: Ensure only a single workflow processes `github.ref` at a time 3d05c86d63 Merge bitcoin-core/secp256k1#1394: ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions d78bec7001 ci: Remove Windows MSVC tasks from Cirrus CI 3545dc2b9b ci, gha: Run all MSVC tests on Windows natively 5d8fa825e2 Merge bitcoin-core/secp256k1#1274: test: Silent noisy clang warnings about Valgrind code on macOS x86_64 8e54a346d2 ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions b327abfcea Merge bitcoin-core/secp256k1#1402: ci: Use Homebrew's gcc in native macOS task d62db57427 ci: Use Homebrew's gcc in native macOS task 54058d16fe field: remove `secp256k1_fe_equal_var` bb4efd6404 tests: remove unwanted `secp256k1_fe_normalize_weak` call eedd781085 Merge bitcoin-core/secp256k1#1348: tighten group magnitude limits, save normalize_weak calls in group add methods (revival of #1032) b2f6712dd3 Merge bitcoin-core/secp256k1#1400: ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift 9c91ea41b1 ci: Enable ellswift module where it's missing db32a24761 ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift ce765a5b8e Merge bitcoin-core/secp256k1#1399: ci, gha: Run "SageMath prover" job on GitHub Actions 8408dfdc4c Revert "ci: Run sage prover on CI" c8d9914fb1 ci, gha: Run "SageMath prover" job on GitHub Actions 8d2960c8e2 Merge bitcoin-core/secp256k1#1397: ci: Remove "Windows (VS 2022)" task from Cirrus CI f1774e5ec4 ci, gha: Make MSVC job presentation more explicit 5ee039bb58 ci: Remove "Windows (VS 2022)" task from Cirrus CI 96294c00fb Merge bitcoin-core/secp256k1#1389: ci: Run "Windows (VS 2022)" job on GitHub Actions a2f7ccdecc ci: Run "Windows (VS 2022)" job on GitHub Actions 374e2b54e2 Merge bitcoin-core/secp256k1#1290: cmake: Set `ENVIRONMENT` property for examples on Windows 1b13415df9 Merge bitcoin-core/secp256k1#1391: refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) a1bd4971d6 refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) b7c685e74a Save _normalize_weak calls in group add methods c83afa66e0 Tighten group magnitude limits 26392da2fb Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh d23da6d557 use secp256k1_scalar_verify checks 4692478853 ci: print $ELLSWIFT in cirrus.sh c7d0454932 add verification for scalars c734c64278 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES ad152151b0 update max scalar in scalar_cmov_test and fix schnorrsig_verify exhaustive test 78ca880788 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7d10 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a466c1 util: remove unused checked_realloc 2bd5f3e618 Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast 4f8c5bd761 refactor: Drop unused cast 173e8d061a Implement current magnitude assumptions 49afd2f5d8 Take use of _fe_verify_magnitude in field_impl.h 4e9661fc42 Add _fe_verify_magnitude (no-op unless VERIFY is enabled) 690b0fc05a add missing group element invariant checks 175db31149 ci: Drop no longer needed `PATH` variable update on Windows 116d2ab3df cmake: Set `ENVIRONMENT` property for examples on Windows cef373997c cmake, refactor: Use helper function instead of interface library 747ada3587 test: Silent noisy clang warnings about Valgrind code on macOS x86_64 git-subtree-dir: src/secp256k1 git-subtree-split: 199d27cea32203b224b208627533c2e813cd3b21
hebasto
added a commit
to hebasto/secp256k1-CMake-example
that referenced
this pull request
May 11, 2024
e3a885d Merge bitcoin-core/secp256k1#1522: release: prepare for 0.5.0 c0e4ec3 release: prepare for 0.5.0 bb528cf Merge bitcoin-core/secp256k1#1518: Add secp256k1_pubkey_sort 7d2591c Add secp256k1_pubkey_sort da51507 Merge bitcoin-core/secp256k1#1058: Signed-digit multi-comb ecmult_gen algorithm 4c341f8 Add changelog entry for SDMC a043940 Permit COMB_BITS < 256 for exhaustive tests 39b2f2a Add test case for ecmult_gen recoded = {-1,0,1} 644e86d Reintroduce projective blinding 07810d9 Reduce side channels from single-bit reads a0d32b5 Optimization: use Nx32 representation for recoded bits e03dcc4 Make secp256k1_scalar_get_bits support 32-bit reads 5005abe Rename scalar_get_bits -> scalar_get_bits_limb32; return uint32_t 6247f48 Optimization: avoid unnecessary doublings in precomputation 15d0cca Optimization: first table lookup needs no point addition 7a33db3 Optimization: move (2^COMB_BITS-1)/2 term into ctx->scalar_offset ed2a056 Provide 3 configurations accessible through ./configure 5f7be9f Always generate tables for current (blocks,teeth) config fde1dfc Signed-digit multi-comb ecmult_gen algorithm 486518b Make exhaustive tests's scalar_inverse(&x,&x) work ab45c3e Initial gej blinding -> final ge blinding aa00a6b Introduce CEIL_DIV macro and use it d831168 Merge bitcoin-core/secp256k1#1515: ci: Note affected clangs in comment on ASLR quirk a85e223 ci: Note affected clangs in comment on ASLR quirk 4b77fec Merge bitcoin-core/secp256k1#1512: msan: notate more variable assignments from assembly code f7f0184 msan: notate more variable assignments from assembly code a613391 change inconsistent array param to pointer 05bfab6 Merge bitcoin-core/secp256k1#1507: ci: Add workaround for ASLR bug in sanitizers a5e8ab2 ci: Add sanitizer env variables to debug output 84a93de ci: Add workaround for ASLR bug in sanitizers 427e86b Merge bitcoin-core/secp256k1#1490: tests: improve fe_sqr test (issue #1472) 2028069 doc: clarify input requirements for secp256k1_fe_mul 11420a7 tests: improve fe_sqr test cdc9a62 Merge bitcoin-core/secp256k1#1489: tests: add missing fe comparison checks for inverse field test cases d926510 Merge bitcoin-core/secp256k1#1496: msan: notate variable assignments from assembly code 31ba404 msan: notate variable assignments from assembly code e7ea32e msan: Add SECP256K1_CHECKMEM_MSAN_DEFINE which applies to memory sanitizer and not valgrind e7bdddd refactor: rename `check_fe_equal` -> `fe_equal` 00111c9 tests: add missing fe comparison checks for inverse field test cases 0653a25 Merge bitcoin-core/secp256k1#1486: ci: Update cache action 94a14d5 ci: Update cache action 2483627 Merge bitcoin-core/secp256k1#1483: cmake: Recommend native CMake commands in README 5ad3aa3 Merge bitcoin-core/secp256k1#1484: tests: Drop redundant _scalar_check_overflow calls 51df2d9 tests: Drop redundant _scalar_check_overflow calls 3777e3f cmake: Recommend native CMake commands in README e4af41c Merge bitcoin-core/secp256k1#1249: cmake: Add `SECP256K1_LATE_CFLAGS` configure option 3bf4d68 Merge bitcoin-core/secp256k1#1482: build: Clean up handling of module dependencies e682267 build: Error if required module explicitly off 89ec583 build: Clean up handling of module dependencies 4437886 Merge bitcoin-core/secp256k1#1468: v0.4.1 release aftermath a9db9f2 Merge bitcoin-core/secp256k1#1480: Get rid of untested sizeof(secp256k1_ge_storage) == 64 code path 74b7c3b Merge bitcoin-core/secp256k1#1476: include: make docs more consistent b37fdb2 check-abi: Minor UI improvements ad5f589 check-abi: Default to HEAD for new version 9fb7e2f release process: Style and formatting nits ba5d72d assumptions: Use new STATIC_ASSERT macro e53c2d9 Require that sizeof(secp256k1_ge_storage) == 64 d0ba2ab util: Add STATIC_ASSERT macro da7bc1b include: in doc, remove article in front of "pointer" aa3dd52 include: make doc about ctx more consistent e3f6900 include: remove obvious "cannot be NULL" doc d373bf6 Merge bitcoin-core/secp256k1#1474: tests: restore scalar_mul test 79e0945 Merge bitcoin-core/secp256k1#1473: Fix typos 3dbfb48 tests: restore scalar_mul test d77170a Fix typos e7053d0 release process: Add email step 429d21d release process: Run sanity checks on release PR efe85c7 Merge bitcoin-core/secp256k1#1466: release cleanup: bump version after 0.4.1 4b2e06f release cleanup: bump version after 0.4.1 1ad5185 Merge bitcoin-core/secp256k1#1465: release: prepare for 0.4.1 672053d release: prepare for 0.4.1 1a81df8 Merge bitcoin-core/secp256k1#1380: Add ABI checking tool for release process 74a4d97 doc: Add ABI checking with `check-abi.sh` to the Release Process e7f830e Add `tools/check-abi.sh` 77af1da Merge bitcoin-core/secp256k1#1455: doc: improve secp256k1_fe_set_b32_mod doc 3928b7c doc: improve secp256k1_fe_set_b32_mod doc 5e9a4d7 Merge bitcoin-core/secp256k1#990: Add comment on length checks when parsing ECDSA sigs 4197d66 Merge bitcoin-core/secp256k1#1431: Add CONTRIBUTING.md 0e5ea62 CONTRIBUTING: add some coding and style conventions e2c9888 Merge bitcoin-core/secp256k1#1451: changelog: add entry for "field: Remove x86_64 asm" d2e36a2 changelog: add entry for "field: Remove x86_64 asm" 1a432cb README: update first sentence 0922a04 docs: move coverage report instructions to CONTRIBUTING 76880e4 Add CONTRIBUTING.md including scope and guidelines for new code d3e29db Merge bitcoin-core/secp256k1#1450: Add group.h ge/gej equality functions 04af0ba Replace ge_equals_ge[,j] calls with group.h equality calls 60525f6 Add unit tests for group.h equality functions a47cd97 Add group.h ge/gej equality functions 10e6d29 Merge bitcoin-core/secp256k1#1446: field: Remove x86_64 asm 07687e8 Merge bitcoin-core/secp256k1#1393: Implement new policy for VERIFY_CHECK and #ifdef VERIFY (issue #1381) bb46723 remove VERIFY_SETUP define a3a3e11 remove unneeded VERIFY_SETUP uses in ECMULT_CONST_TABLE_GET_GE macro a0fb68a introduce and use SECP256K1_SCALAR_VERIFY macro cf25c86 introduce and use SECP256K1_{FE,GE,GEJ}_VERIFY macros 5d89bc0 remove superfluous `#ifdef VERIFY`/`#endif` preprocessor conditions c2688f8 redefine VERIFY_CHECK to empty in production (non-VERIFY) mode 5814d84 Merge bitcoin-core/secp256k1#1438: correct assertion for secp256k1_fe_mul_inner c1b4966 Merge bitcoin-core/secp256k1#1445: bench: add --help option to bench_internal f07cead build: Don't call assembly an optimization 2f0762f field: Remove x86_64 asm 1ddd76a bench: add --help option to bench_internal e721039 Merge bitcoin-core/secp256k1#1441: asm: add .note.GNU-stack section for non-exec stack ea47c82 Merge bitcoin-core/secp256k1#1442: Return temporaries to being unsigned in secp256k1_fe_sqr_inner dcdda31 Tighten secp256k1_fe_mul_inner's VERIFY_BITS checks 1027135 Return temporaries to being unsigned in secp256k1_fe_sqr_inner 33dc7e4 asm: add .note.GNU-stack section for non-exec stack c891c5c Merge bitcoin-core/secp256k1#1437: ci: Ignore internal errors of snapshot compilers 8185e72 ci: Ignore internal errors in snapshot compilers 40f50d0 Merge bitcoin-core/secp256k1#1184: Signed-digit based ecmult_const algorithm 8e2a5fe correct assertion for secp256k1_fe_mul_inner 355bbdf Add changelog entry for signed-digit ecmult_const algorithm 21f49d9 Remove unused secp256k1_scalar_shr_int 115fdc7 Remove unused secp256k1_wnaf_const aa9f3a3 ecmult_const: add/improve tests 4d16e90 Signed-digit based ecmult_const algorithm ba523be make SECP256K1_SCALAR_CONST reduce modulo exhaustive group order 2140da9 Add secp256k1_scalar_half for halving scalars (+ tests/benchmarks). 1f1bb78 Merge bitcoin-core/secp256k1#1430: README: remove CI badge 5dab0ba README: remove CI badge b314cf2 Merge bitcoin-core/secp256k1#1426: ci/cirrus: Add native ARM64 jobs fa4d6c7 ci/cirrus: Add native ARM64 persistent workers ee7aaf2 Merge bitcoin-core/secp256k1#1395: tests: simplify `random_fe_non_zero` (remove loop limit and unneeded normalize) ba9cb6f Merge bitcoin-core/secp256k1#1424: ci: Bump major versions for docker actions d9d80fd ci: Bump major versions for docker actions 4fd00f4 Merge bitcoin-core/secp256k1#1422: cmake: Install `libsecp256k1.pc` file 421d848 ci: Align Autotools/CMake `CI_INSTALL` directory names 9f005c6 cmake: Install `libsecp256k1.pc` file 2262d0e ci/cirrus: Bring back skeleton .cirrus.yml without jobs b10ddd2 Merge bitcoin-core/secp256k1#1416: doc: Align documented scripts with CI ones 49be5be Merge bitcoin-core/secp256k1#1390: tests: Replace counting_illegal_callbacks with CHECK_ILLEGAL_VOID cbf3053 Merge bitcoin-core/secp256k1#1417: release cleanup: bump version after 0.4.0 9b118bc release cleanup: bump version after 0.4.0 199d27c Merge bitcoin-core/secp256k1#1415: release: Prepare for 0.4.0 7030364 tests: add CHECK_ERROR_VOID and use it in scratch tests f8d7ea6 tests: Replace counting_illegal_callbacks with CHECK_ILLEGAL_VOID 1633980 release: Prepare for 0.4.0 d9a8506 changelog: Catch up in preparation of release b0f7bfe doc: Do not mention soname in CHANGELOG.md "ABI Compatibility" section bd9d98d doc: Align documented scripts with CI ones 0b4640a Merge bitcoin-core/secp256k1#1413: ci: Add `release` job 8659a01 ci: Add `release` job f9b3889 ci: Update `actions/checkout` version a1d52e3 tests: remove unnecessary test in run_ec_pubkey_parse_test 875b0ad tests: remove unnecessary set_illegal_callback 727bec5 Merge bitcoin-core/secp256k1#1414: ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 2635068 ci/gha: Let MSan continue checking after errors in all jobs e78c7b6 ci/Dockerfile: Reduce size of Docker image further 2f0d3bb ci/Dockerfile: Warn if `ulimit -n` is too high when running Docker 4b8a647 ci/gha: Add ARM64 QEMU jobs for clang and clang-snapshot 6ebe7d2 ci/Dockerfile: Always use versioned clang packages 65c79fe Merge bitcoin-core/secp256k1#1412: ci: Switch macOS from Ventura to Monterey and add Valgrind c223d7e ci: Switch macOS from Ventura to Monterey and add Valgrind ea26b71 Merge bitcoin-core/secp256k1#1411: ci: Make repetitive command the default one cce0456 ci: Make repetitive command the default one 317a4c4 ci: Move `git config ...` to `run-in-docker-action` 4d7fe60 Merge bitcoin-core/secp256k1#1409: ci: Move remained task from Cirrus to GitHub Actions 676ed8f ci: Move "C++ (public headers)" from Cirrus to GitHub Actions 61fc3a2 ci: Move "C++ -fpermissive..." from Cirrus to GitHub Actions d51fb0a ci: Move "MSan" from Cirrus to GitHub Actions c22ac27 ci: Move sanitizers task from Cirrus to GitHub Actions 26a9899 Merge bitcoin-core/secp256k1#1410: ci: Use concurrency for pull requests only ee1be62 ci: Use concurrency for pull requests only 6ee1455 Merge bitcoin-core/secp256k1#1406: ci, gha: Move more non-x86_64 tasks from Cirrus CI to GitHub Actions fc3dea2 ci: Move "ppc64le: Linux..." from Cirrus to GitHub Actions 7782dc8 ci: Move "ARM64: Linux..." from Cirrus to GitHub Actions 0a16de6 ci: Move "ARM32: Linux..." from Cirrus to GitHub Actions ea33914 ci: Move "s390x (big-endian): Linux..." from Cirrus to GitHub Actions 880be8a ci: Move "i686: Linux (Debian stable)" from Cirrus to GiHub Actions 2e6cf9b Merge bitcoin-core/secp256k1#1396: ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job 5373693 Merge bitcoin-core/secp256k1#1405: ci: Drop no longer needed workaround ef9fe95 ci: Drop no longer needed workaround e10878f ci, gha: Drop `driver-opts.network` input for `setup-buildx-action` 4ad4914 ci, gha: Add `retry_builder` Docker image builder 6617a62 ci: Remove "x86_64: Linux (Debian stable)" task from Cirrus CI 03c9e65 ci, gha: Add "x86_64: Linux (Debian stable)" GitHub Actions job ad3e65d ci: Remove GCC build files and sage to reduce size of Docker image 6b9507a Merge bitcoin-core/secp256k1#1398: ci, gha: Add Windows jobs based on Linux image 87d35f3 ci: Rename `cirrus.sh` to more general `ci.sh` d6281dd ci: Remove Windows tasks from Cirrus CI 2b6f9cd ci, gha: Add Windows jobs based on Linux image 48b1d93 Merge bitcoin-core/secp256k1#1403: ci, gha: Ensure only a single workflow processes `github.ref` at a time 0ba2b94 Merge bitcoin-core/secp256k1#1373: Add invariant checking for scalars c45b7c4 refactor: introduce testutil.h (deduplicate `random_fe_`, `ge_equals_` helpers) dc55141 tests: simplify `random_fe_non_zero` (remove loop limit and unneeded normalize) 060e32c Merge bitcoin-core/secp256k1#1401: ci, gha: Run all MSVC tests on Windows natively de657c2 Merge bitcoin-core/secp256k1#1062: Removes `_fe_equal_var`, and unwanted `_fe_normalize_weak` calls (in tests) bcffeb1 Merge bitcoin-core/secp256k1#1404: ci: Remove "arm64: macOS Ventura" task from Cirrus CI c2f6435 ci: Add comment about switching macOS to M1 on GHA later 4a24fae ci: Remove "arm64: macOS Ventura" task from Cirrus CI b0886fd ci, gha: Ensure only a single workflow processes `github.ref` at a time 3d05c86 Merge bitcoin-core/secp256k1#1394: ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions d78bec7 ci: Remove Windows MSVC tasks from Cirrus CI 3545dc2 ci, gha: Run all MSVC tests on Windows natively 5d8fa82 Merge bitcoin-core/secp256k1#1274: test: Silent noisy clang warnings about Valgrind code on macOS x86_64 8e54a34 ci, gha: Run "x86_64: macOS Ventura" job on GitHub Actions b327abf Merge bitcoin-core/secp256k1#1402: ci: Use Homebrew's gcc in native macOS task d62db57 ci: Use Homebrew's gcc in native macOS task 54058d1 field: remove `secp256k1_fe_equal_var` bb4efd6 tests: remove unwanted `secp256k1_fe_normalize_weak` call eedd781 Merge bitcoin-core/secp256k1#1348: tighten group magnitude limits, save normalize_weak calls in group add methods (revival of #1032) b2f6712 Merge bitcoin-core/secp256k1#1400: ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift 9c91ea4 ci: Enable ellswift module where it's missing db32a24 ctimetests: Use new SECP256K1_CHECKMEM macros also for ellswift ce765a5 Merge bitcoin-core/secp256k1#1399: ci, gha: Run "SageMath prover" job on GitHub Actions 8408dfd Revert "ci: Run sage prover on CI" c8d9914 ci, gha: Run "SageMath prover" job on GitHub Actions 8d2960c Merge bitcoin-core/secp256k1#1397: ci: Remove "Windows (VS 2022)" task from Cirrus CI f1774e5 ci, gha: Make MSVC job presentation more explicit 5ee039b ci: Remove "Windows (VS 2022)" task from Cirrus CI 96294c0 Merge bitcoin-core/secp256k1#1389: ci: Run "Windows (VS 2022)" job on GitHub Actions a2f7ccd ci: Run "Windows (VS 2022)" job on GitHub Actions 374e2b5 Merge bitcoin-core/secp256k1#1290: cmake: Set `ENVIRONMENT` property for examples on Windows 1b13415 Merge bitcoin-core/secp256k1#1391: refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) a1bd497 refactor: take use of `secp256k1_scalar_{zero,one}` constants (part 2) b7c685e Save _normalize_weak calls in group add methods c83afa6 Tighten group magnitude limits 26392da Merge bitcoin-core/secp256k1#1386: ci: print $ELLSWIFT in cirrus.sh d23da6d use secp256k1_scalar_verify checks 4692478 ci: print $ELLSWIFT in cirrus.sh c7d0454 add verification for scalars c734c64 Merge bitcoin-core/secp256k1#1384: build: enable ellswift module via SECP_CONFIG_DEFINES ad15215 update max scalar in scalar_cmov_test and fix schnorrsig_verify exhaustive test 78ca880 build: enable ellswift module via SECP_CONFIG_DEFINES 0e00fc7 Merge bitcoin-core/secp256k1#1383: util: remove unused checked_realloc b097a46 util: remove unused checked_realloc 2bd5f3e Merge bitcoin-core/secp256k1#1382: refactor: Drop unused cast 4f8c5bd refactor: Drop unused cast 173e8d0 Implement current magnitude assumptions 49afd2f Take use of _fe_verify_magnitude in field_impl.h 4e9661f Add _fe_verify_magnitude (no-op unless VERIFY is enabled) 690b0fc add missing group element invariant checks 175db31 ci: Drop no longer needed `PATH` variable update on Windows 116d2ab cmake: Set `ENVIRONMENT` property for examples on Windows cef3739 cmake, refactor: Use helper function instead of interface library 747ada3 test: Silent noisy clang warnings about Valgrind code on macOS x86_64 42f8c51 cmake: Add `SECP256K1_LATE_CFLAGS` configure option e02f313 Add comment on length checks when parsing ECDSA sigs git-subtree-dir: src/secp256k1 git-subtree-split: e3a885d42a7800c1ccebad94ad1e2b82c4df5c65
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
...like the other modules.