Skip to content

Upstream PRs 1058, 1518, 1522, 1523, 1525, 1524, 1526, 1528, 1517, 1532, 1488, 1533, 1529, 1548, 1545, 1550, 1546, 1543, 1535, 1555, 1565, 1564, 1563, 1551, 1574, 1576, 1575, 1577, 1578, 1583, 1586, 1600, 1604, 1554, 1479, 1603, 1599, 1616, 1553, 162...#1

Closed
DarkWindman wants to merge 426 commits intomasterfrom
automated-upstream-sync

Conversation

@DarkWindman
Copy link
Copy Markdown
Owner

[bitcoin-core/secp256k1#1058]: Signed-digit multi-comb ecmult_gen algorithm
[bitcoin-core/secp256k1#1518]: Add secp256k1_pubkey_sort
[bitcoin-core/secp256k1#1522]: release: prepare for 0.5.0
[bitcoin-core/secp256k1#1523]: release cleanup: bump version after 0.5.0
[bitcoin-core/secp256k1#1525]: changelog: Correct 0.5.0 release date
[bitcoin-core/secp256k1#1524]: check-abi: explicitly provide public headers
[bitcoin-core/secp256k1#1526]: cmake: Fix check_arm32_assembly when using as subproject
[bitcoin-core/secp256k1#1528]: tests: call secp256k1_ecmult_multi_var with a non-NULL error callback
[bitcoin-core/secp256k1#1517]: autotools: Disable eager MSan in ctime_tests
[bitcoin-core/secp256k1#1532]: cmake: Disable eager MSan in ctime_tests
[bitcoin-core/secp256k1#1488]: ci: Add native macOS arm64 job
[bitcoin-core/secp256k1#1533]: tests: refactor: tidy up util functions (#1491)
[bitcoin-core/secp256k1#1529]: cmake: Fix cache issue when integrating by downstream project
[bitcoin-core/secp256k1#1548]: README: mention ellswift module
[bitcoin-core/secp256k1#1545]: cmake: Do not set CTEST_TEST_TARGET_ALIAS
[bitcoin-core/secp256k1#1550]: fix: typos in secp256k1.c
[bitcoin-core/secp256k1#1546]: cmake: Rename SECP256K1_LATE_CFLAGS and switch to Bitcoin Core's approach
[bitcoin-core/secp256k1#1543]: cmake: Do not modify build types when integrating by downstream project
[bitcoin-core/secp256k1#1535]: build: Replace hardcoded "auto" value with default one
[bitcoin-core/secp256k1#1555]: Fixed O3 replacement
[bitcoin-core/secp256k1#1565]: cmake: Bump CMake minimum required version up to 3.16
[bitcoin-core/secp256k1#1564]: build, ci: Adjust the default size of the precomputed table for signing
[bitcoin-core/secp256k1#1563]: doc: Add convention for defaults
[bitcoin-core/secp256k1#1551]: Add ellswift usage example
[bitcoin-core/secp256k1#1574]: Fix compilation when extrakeys module isn't enabled
[bitcoin-core/secp256k1#1576]: doc: mention needs-changelog github label in release process
[bitcoin-core/secp256k1#1575]: release: prepare for 0.5.1
[bitcoin-core/secp256k1#1577]: release cleanup: bump version after 0.5.1
[bitcoin-core/secp256k1#1578]: ci: Silent Homebrew's noisy reinstall warnings
[bitcoin-core/secp256k1#1583]: ci: Bump GCC_SNAPSHOT_MAJOR to 15
[bitcoin-core/secp256k1#1586]: fix: remove duplicate 'the' from header file comment
[bitcoin-core/secp256k1#1600]: cmake: Introduce SECP256K1_APPEND_LDFLAGS variable
[bitcoin-core/secp256k1#1604]: doc: fix typos in secp256k1_ecdsa_{recoverable_,}signature API description
[bitcoin-core/secp256k1#1554]: cmake: Clean up testing code
[bitcoin-core/secp256k1#1479]: Add module "musig" that implements MuSig2 multi-signatures (BIP 327)
[bitcoin-core/secp256k1#1603]: f can never equal -m
[bitcoin-core/secp256k1#1599]: #1570 improve examples: remove key generation loop
[bitcoin-core/secp256k1#1616]: examples: do not retry generating seckey randomness in musig
[bitcoin-core/secp256k1#1553]: cmake: Set top-level target output locations
[bitcoin-core/secp256k1#1620]: Remove unused scratch space from API
[bitcoin-core/secp256k1#1595]: build: 45839th attempt to fix symbol visibility on Windows
[bitcoin-core/secp256k1#1619]: musig: ctimetests: fix _declassify range for generated nonce points
[bitcoin-core/secp256k1#1624]: ci: Update macOS image
[bitcoin-core/secp256k1#1625]: util: Remove unused (u)int64_t formatting macros
[bitcoin-core/secp256k1#1582]: cmake, test: Add secp256k1_ prefix to test names
[bitcoin-core/secp256k1#1581]: test, ci: Lower default iteration count to 16
[bitcoin-core/secp256k1#1628]: Name public API structs
[bitcoin-core/secp256k1#1579]: Clear sensitive memory without getting optimized out (revival of #636)
[bitcoin-core/secp256k1#1631]: release: prepare for 0.6.0
[bitcoin-core/secp256k1#1633]: release cleanup: bump version after 0.6.0
[bitcoin-core/secp256k1#1634]: Fix some misspellings
[bitcoin-core/secp256k1#1641]: doc: Improve cmake instructions in README
[bitcoin-core/secp256k1#1650]: schnorrsig: clear out masked secret key in BIP-340 nonce function
[bitcoin-core/secp256k1#1646]: README: add instructions for verifying GPG signatures
[bitcoin-core/secp256k1#1654]: use EXIT_ constants over magic numbers for indicating program execution status
[bitcoin-core/secp256k1#1642]: Verify compressed argument in secp256k1_eckey_pubkey_serialize
[bitcoin-core/secp256k1#1639]: Make static context const
[bitcoin-core/secp256k1#1614]: Add _ge_set_all_gej and use it in musig for own public nonces
[bitcoin-core/secp256k1#1656]: musig: Fix clearing of pubnonces
[bitcoin-core/secp256k1#1647]: cmake: Adjust diagnostic flags for clang-cl
[bitcoin-core/secp256k1#1655]: gha: Print all *.log files, in a separate action
[bitcoin-core/secp256k1#1593]: Remove deprecated _ec_privkey_{negate,tweak_add,tweak_mul} aliases from API
[bitcoin-core/secp256k1#1359]: Fix symbol visibility issues, add test for it
[bitcoin-core/secp256k1#1657]: tests: remove unused uncounting_illegal_callback_fn
[bitcoin-core/secp256k1#1660]: ci: Fix exiting from ci.sh on error
[bitcoin-core/secp256k1#1659]: include: remove WARN_UNUSED_RESULT for functions always returning 1
[bitcoin-core/secp256k1#1661]: configure: Show exhaustive tests in summary
[bitcoin-core/secp256k1#1662]: bench: add ellswift to bench help output
[bitcoin-core/secp256k1#1669]: gitignore: Add Python cache files
[bitcoin-core/secp256k1#1492]: tests: Add Wycheproof ECDH vectors
[bitcoin-core/secp256k1#1670]: tests: update wycheproof files
[bitcoin-core/secp256k1#1668]: bench_ecmult: add benchmark for ecmult_const_xonly
[bitcoin-core/secp256k1#1673]: Assert field magnitude at control-flow join
[bitcoin-core/secp256k1#1675]: cmake: Bump minimum required CMake version to 3.22
[bitcoin-core/secp256k1#1680]: doc: Promote "Building with CMake" to standard procedure
[bitcoin-core/secp256k1#1679]: cmake: Use PUBLIC_HEADER target property in installation logic
[bitcoin-core/secp256k1#1690]: ci: Bump GCC snapshot major version to 16
[bitcoin-core/secp256k1#1683]: README: add link to musig example
[bitcoin-core/secp256k1#1678]: cmake: add a helper for linking into static libs
[bitcoin-core/secp256k1#1685]: cmake: Emulate Libtool's behavior on FreeBSD
[bitcoin-core/secp256k1#1692]: cmake: configure libsecp256k1.pc during install
[bitcoin-core/secp256k1#1687]: cmake: support the use of launchers in ctest -S scripts
[bitcoin-core/secp256k1#1689]: ci: Convert arm64 Cirrus tasks to GHA jobs
[bitcoin-core/secp256k1#1694]: Revert "cmake: configure libsecp256k1.pc during install"
[bitcoin-core/secp256k1#1699]: ci: enable musig module for native macOS arm64 job
[bitcoin-core/secp256k1#1704]: cmake: Make secp256k1_objs inherit interface defines from secp256k1
[bitcoin-core/secp256k1#1696]: build: Refactor visibility logic and add override
[bitcoin-core/secp256k1#1705]: musig/test: Remove dead code
[bitcoin-core/secp256k1#1702]: changelog: update
[bitcoin-core/secp256k1#1706]: musig/tests: initialize keypair
[bitcoin-core/secp256k1#1707]: release: Prepare for 0.7.0
[bitcoin-core/secp256k1#1708]: release cleanup: bump version after 0.7.0
[bitcoin-core/secp256k1#1711]: tests: update Wycheproof
[bitcoin-core/secp256k1#1688]: cmake: Avoid contaminating parent project's cache with BUILD_SHARED_LIBS
[bitcoin-core/secp256k1#1717]: test: update wycheproof test vectors
[bitcoin-core/secp256k1#1720]: chore(ci): Fix typo in Dockerfile comment
[bitcoin-core/secp256k1#1722]: docs: Exclude modules' bench_impl.h headers from coverage report
[bitcoin-core/secp256k1#1726]: docs: fix broken link to Tromer's cache.pdf paper
[bitcoin-core/secp256k1#1725]: tests: refactor tagged hash verification
[bitcoin-core/secp256k1#1729]: hash: Use size_t instead of int for RFC6979 outlen copy
[bitcoin-core/secp256k1#1731]: schnorrsig: Securely clear buf containing k or its negation
[bitcoin-core/secp256k1#1681]: doc: Recommend clang-cl when building on Windows
[bitcoin-core/secp256k1#1737]: doc: mention ctx requirement for _ellswift_create (not secp256k1_context_static)
[bitcoin-core/secp256k1#1738]: check-abi: remove support for obsolete CMake library output location (src/libsecp256k1.so)
[bitcoin-core/secp256k1#1735]: musig: Invalidate secnonce in secp256k1_musig_partial_sign
[bitcoin-core/secp256k1#1745]: test: introduce group order byte-array constant for deduplication
[bitcoin-core/secp256k1#1741]: doc: clarify API doc of secp256k1_ecdsa_recover return value
[bitcoin-core/secp256k1#1749]: build: Fix warnings in x86_64 assembly check
[bitcoin-core/secp256k1#1748]: bench: improve context creation in ECDH benchmark
[bitcoin-core/secp256k1#1727]: docs: Clarify that callback can be called more than once
[bitcoin-core/secp256k1#1756]: ci: Fix image caching and apply other improvements
[bitcoin-core/secp256k1#1750]: ci: Use clang-snapshot in "MSan" job
[bitcoin-core/secp256k1#1719]: ci: DRY workflow using anchors
[bitcoin-core/secp256k1#1734]: Introduce (mini) unit test framework
[bitcoin-core/secp256k1#1759]: ci: Switch to macOS 15 Sequoia Intel-based image
[bitcoin-core/secp256k1#1758]: ci: Drop workaround for Valgrind older than 3.20.0
[bitcoin-core/secp256k1#1763]: bench: Use ALIGNMENT macro instead of hardcoded value
[bitcoin-core/secp256k1#1771]: ci: Use Python virtual environment in "x86_64-macos-native" job
[bitcoin-core/secp256k1#1761]: ecmult_multi: reduce strauss memory usage by 30%
[bitcoin-core/secp256k1#1774]: refactor: split up internal pubkey serialization function into compressed/uncompressed variants
[bitcoin-core/secp256k1#1779]: Add ARG_CHECKs to ensure "array of pointers" elements are non-NULL
[bitcoin-core/secp256k1#1784]: refactor: remove ret from secp256k1_ec_pubkey_serialize
[bitcoin-core/secp256k1#1788]: test: split monolithic ellswift test into independent cases
[bitcoin-core/secp256k1#1778]: doc/bench: Added cmake build options to bench error messages
[bitcoin-core/secp256k1#1783]: Add VERIFY_CHECKs and documentation that flags must be 0 or 1
[bitcoin-core/secp256k1#1790]: doc: include arg -DSECP256K1_USE_EXTERNAL_DEFAULT_CALLBACKS=ON for cmake
[bitcoin-core/secp256k1#1764]: group: Avoid using infinity field directly in other modules
[bitcoin-core/secp256k1#1793]: doc/bench: added help text for SECP256K1_BENCH_ITERS env var for bench_ecmult
[bitcoin-core/secp256k1#1800]: sage: verify Eisenstein integer connection for GLV constants
[bitcoin-core/secp256k1#1796]: bench: fail early if user inputs invalid value for SECP256K1_BENCH_ITERS
[bitcoin-core/secp256k1#1808]: Prepare for 0.7.1
[bitcoin-core/secp256k1#1809]: release cleanup: bump version after 0.7.1
Merge commits 'da515074 ' into temp-merge-1058
[BlockstreamResearch#310]: Upstream PRs 1058
Merge commits 'bb528cf ' into temp-merge-1518
[BlockstreamResearch#312]: scalar: Add SECP256K1_SCALAR_VERIFY to zkp-specific function
[BlockstreamResearch#313]: Upstream PR 1518
[BlockstreamResearch#311]: sync-upstream: Extend git usage tips
Merge commits 'e3a885d4 d7f6613 7d0bc08 7712a53 4155e62 06bff6d 1791f6f 4b8d5ee bedffd5 ' into temp-merge-1488
[BlockstreamResearch#315]: ci: Backport LLVM apt signature fix
Merge remote-tracking branch 'zkp/master' into temp-merge-1488
[BlockstreamResearch#314]: Upstream PRs 1522, 1523, 1525, 1524, 1526, 1528, 1517, 1532, 1488
Merge commits '4392f0f7 ' into temp-merge-1533
[BlockstreamResearch#316]: Upstream PRs 1533
Merge commits '35c0fdc 5dd637f 69b2192 d7ae25c d403eea f473c95 4af241b a526937 fcc5d73 ca06e58 ea2d5f0 0055b86 ' into temp-merge-1551
[BlockstreamResearch#317]: Upstream PRs 1529, 1548, 1545, 1550, 1546, 1543, 1535, 1555, 1565, 1564, 1563, 1551
Merge commits 'fded437c cdf08c1 642c885 f8c1b0e 3fdf146 b307614 1988855 2f2ccc4 472faaa 4c57c7a ' into temp-merge-1554
[BlockstreamResearch#318]: Upstream PRs 1574, 1576, 1575, 1577, 1578, 1583, 1586, 1600, 1604, 1554
Merge commit '3660fe5e' into temp-merge-1479
[BlockstreamResearch#319]: Upstream PR 1479
Merge commits 'a88aa935 01b5893 18f9b96 e59158b 1fae76f f0868a9 68b5520 9b7c59c 1464f15 9a8db52 7d48f5e a38d879 ' into temp-merge-1628
[BlockstreamResearch#320]: Upstream PRs 1603, 1599, 1616, 1553, 1620, 1595, 1619, 1624, 1625, 1582, 1581, 1628
Merge commits 'b161bffb 0cdc758 ec329c2 8deef00 f79f46c 00774d0 2e3bf13 c0d9480 ' into temp-merge-1654
[BlockstreamResearch#322]: Upstream PRs 1579, 1631, 1633, 1634, 1641, 1650, 1646, 1654
Merge commits '1b1fc093 6c2a39d 3186082 abd2505 4ba1ba2 03bbe8c 13ed6f6 a7a5117 2abb35b e56716a 3f54ed8 d84bb83 ' into temp-merge-1661
[BlockstreamResearch#323]: Upstream PRs 1642, 1639, 1614, 1656, 1647, 1655, 1593, 1359, 1657, 1660, 1659, 1661
Merge commits '70f149b9 13906b7 4187a46 bb597b3 9fab425 9239447 201b2b8 f24b838 95db29b 2a9d374 a28c2ff 746e36b ' into temp-merge-1678
[BlockstreamResearch#324]: Upstream PRs 1662, 1669, 1492, 1670, 1668, 1673, 1675, 1680, 1679, 1690, 1683, 1678
Merge commits '29e73f4b 89096c2 c498779 ad60ef7 943479a cbbbf3b 73a6959 7c33804 5e74086 6037833 020ee60 a660a49 b9313c6 ' into temp-merge-1708
[BlockstreamResearch#325]: Upstream PRs 1685, 1692, 1687, 1689, 1694, 1699, 1704, 1696, 1705, 1702, 1706, 1707, 1708
Merge commits '2c076d90 20e3b44 74b8068 e523e4f d599714 d2dcf52 f36afb8 8113671 d93380f 03fb60a 4985ac0 36e7695 ' into temp-merge-1738
[BlockstreamResearch#327]: Upstream PRs 1711, 1688, 1717, 1720, 1722, 1726, 1725, 1729, 1731, 1681, 1737, 1738
Merge commits '88be4e8d b475654 10dab90 5817885 de6af6a baa2654 2b7337f a44a339 f44c1eb d543c0d 43e7b11 7a2fff8 ' into temp-merge-1758
[BlockstreamResearch#331]: Upstream PRs 1735, 1745, 1741, 1749, 1748, 1727, 1756, 1750, 1719, 1734, 1759, 1758
[BlockstreamResearch#329]: ecdsa_adaptor: Batch affine conversions in encrypt and dleq_verify
Merge commits '115b135f c8206b1 b6c2a3c e7f7083 be5e4f0 5c75183 540fec8 aa2a39c 8d44573 f9a944f 2d9137c 4721e07 471e3a1 ebb3588 1a53f49 c7a5240 ' into temp-merge-1809
[BlockstreamResearch#328]: include: add description of range proofs
[BlockstreamResearch#332]: Upstream PRs 1763, 1771, 1761, 1774, 1779, 1784, 1788, 1778, 1783, 1790, 1764, 1793, 1800, 1796, 1808, 1809

This PR was automatically generated by GitHub Actions.

Tips:

  • Use git show --remerge-diff <pr-branch> to show the conflict resolution in the merge commit.
  • Use git read-tree --reset -u <pr-branch> to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
    Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

real-or-random and others added 30 commits February 25, 2025 10:54
432ac57 Make static context const (Daniel Pfeifer)

Pull request description:

  Fixes #1637

ACKs for top commit:
  real-or-random:
    ACK 432ac57

Tree-SHA512: 64e91a02fff8fd31bd6da3a37f25f572877343fb8081693c42a0517fae5cbc3951f38ec372d0a1fd91388596b6d85531d3f154a49208b43b0f56a4c72951c42b
…musig for own public nonces

64228a6 musig: Use _ge_set_all_gej for own public nonces (Tim Ruffing)
300aab1 tests: Improve _ge_set_all_gej(_var) tests (Tim Ruffing)
365f274 group: Simplify secp256k1_ge_set_all_gej (Tim Ruffing)
d3082dd group: Add constant-time secp256k1_ge_set_all_gej (Tim Ruffing)

Pull request description:

  As suggested in bitcoin-core/secp256k1#1479 (comment)

ACKs for top commit:
  theStack:
    re-ACK 64228a6
  sipa:
    ACK 64228a6

Tree-SHA512: f62a95e44dc09bb55a64da0640ad323e7ef5acc262d3c2aea6787eae0918769ea97da466b7d602e59693e4fb85c5ec9a67fdfba8b890624467855b6d1e1596c0
Fixes a silent merge conflict between #1614 and #1579.
961ec25 musig: Fix clearing of pubnonces (Tim Ruffing)

Pull request description:

ACKs for top commit:
  sipa:
    ACK 961ec25
  jonasnick:
    ACK 961ec25

Tree-SHA512: 7840318773987e6a94b0ce81068843a53e990f06d09a6f8fd47c76863b77b6c4de00a6fe3d8465118981d7e51ed0d229057147d200f3a70e55e007463689eeeb
… `clang-cl`

4c50d73 ci: Add new "Windows (clang-cl)" job (Hennadii Stepanov)
84c0bd1 cmake: Adjust diagnostic flags for clang-cl (Hennadii Stepanov)

Pull request description:

  When building with `clang-cl` on Windows, the output is cluttered with warning messages because compiler diagnostic flags are not applied correctly:
  ```
  > cmake -B build -G Ninja -DCMAKE_C_COMPILER="C:\Users\hebasto\Downloads\clang+llvm-18.1.8-x86_64-pc-windows-msvc\bin\clang-cl.exe"
  > cmake --build build
  [1/16] Building C object src\CMakeFiles\bench.dir\bench.c.obj
  In file included from C:\Users\hebasto\secp256k1\src\bench.c:11:
  C:\Users\hebasto\secp256k1\src\util.h(34,13): warning: unused function 'print_buf_plain' [-Wunused-function]
     34 | static void print_buf_plain(const unsigned char *buf, size_t len) {
        |             ^~~~~~~~~~~~~~~
  1 warning generated.
  [2/16] Building C object src\CMakeFiles\secp256k1_precomputed.dir\precomputed_ecmult_gen.c.obj
  In file included from C:\Users\hebasto\secp256k1\src\precomputed_ecmult_gen.c:3:
  In file included from C:\Users\hebasto\secp256k1\src\group.h:10:
  In file included from C:\Users\hebasto\secp256k1\src\field.h:10:
  C:\Users\hebasto\secp256k1\src\util.h(34,13): warning: unused function 'print_buf_plain' [-Wunused-function]
     34 | static void print_buf_plain(const unsigned char *buf, size_t len) {
        |             ^~~~~~~~~~~~~~~
  ```

  This PR resolves this issue.

  ---

  **Additional note for reviewers:** The VS builtin clang can also be used assuming that the following VS components are installed:

  ![photo_2024-12-12_12-38-17](https://github.com/user-attachments/assets/c69bafcc-3aa2-4a72-a162-071c593d1c4a)

  The user can generate a build system on Windows as follows:
  - Using the default "Visual Studio" generator:
  ```
  cmake -B build -T ClangCL
  ```
  - Using the "Ninja" generator:
  ```
  cmake -B build -G Ninja -DCMAKE_C_COMPILER=clang-cl
  ```

  ---

  Required for downstream projects which aim to build with `clang-cl` (see bitcoin/bitcoin#31456).

ACKs for top commit:
  real-or-random:
    utACK 4c50d73

Tree-SHA512: 439eb53afd7be65d538cd569f3d095f58325bd26ffc5014ca5f94320689a45b20c9a5a963170578214a20fd3233ec15ef6ab75ab96ce3a4314c282b1b6229ca1
Before this commit, we didn't print *_example.log files and
test_suite.log.

Printing is now handled in a separate action, which avoids code
duplication and makes the ci.yml file more readable. This changes the
folding/grouping of the log output in the GitHub Actions CI, but I
think the new variant is as good as the old one.

Furthermore, the condition for printing the logs is changed from
"always()" to "!cancelled()". This ensures that logs will still be
printed if previous steps such as the CI script failed, but that they
won't be printed if the entire run is cancelled (e.g., by clicking a
button in the UI or through a force-push to the PR). This is in line
with a recommendation in the GHA docs:
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#always
…eparate action

59860bc gha: Print all *.log files, in a separate action (Tim Ruffing)

Pull request description:

  Before this commit, we didn't print *_example.log files and
  test_suite.log.

  Printing is now handled in a separate action, which avoids code
  duplication and makes the ci.yml file more readable. This changes the
  folding/grouping of the log output in the GitHub Actions CI, but I
  think the new variant is as good as the old one.

  Furthermore, the condition for printing the logs is changed from
  "always()" to "!cancelled()". This ensures that logs will still be
  printed if previous steps such as the CI script failed, but that they
  won't be printed if the entire run is cancelled (e.g., by clicking a
  button in the UI or through a force-push to the PR). This is in line
  with a recommendation in the GHA docs:
  https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#always

ACKs for top commit:
  hebasto:
    ACK 59860bc.
  sipa:
    ACK 59860bc

Tree-SHA512: ca11f5e5f01660964276b9c2e11c22caeed8492e9c7ffaa2078aaaa733005c63242fc93a1056124fb8f1f83019d46818c12b10142fb10f43270a8562fd10885a
This change makes the `-fvisibility=hidden` compiler option unnecessary.
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
…gate,tweak_add,tweak_mul}` aliases from API

37d2c60 Remove deprecated _ec_privkey_{negate,tweak_add,tweak_mul} aliases (Sebastian Falbesoner)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK 37d2c60
  sipa:
    utACK 37d2c60
  jonasnick:
    ACK 37d2c60

Tree-SHA512: 5d3c836c3c4d5cde143fe5b5235f9fc108174439b056f3418834f33d12ea28bdf09d11a81917d679b4b9a93da26304241c8fe389549e72796bbda116e9ff4945
…test for it

d147876 build: Drop no longer needed  `-fvisibility=hidden` compiler option (Hennadii Stepanov)
8ed1d83 ci: Run `tools/symbol-check.py` (Hennadii Stepanov)
41d32ab test: Add `tools/symbol-check.py` (Hennadii Stepanov)
8854805 Introduce `SECP256K1_LOCAL_VAR` macro (Hennadii Stepanov)

Pull request description:

  Closes bitcoin-core/secp256k1#1181.

  [Catches](bitcoin-core/secp256k1#1359 (comment)) the actual symbol visibility issue.

  Replaces bitcoin-core/secp256k1#1135.

ACKs for top commit:
  real-or-random:
    reACK d147876

Tree-SHA512: 4d39f3c4cd32afa2b4418ca79331c72827c76a49a5422afa7c85e60d00a750b91b1b1ab10d91ba578f5817dd938016751168758461fb89de8da56f7d005ae2da
This callback function has been unused since
a1d52e3
…legal_callback_fn

51907fa tests: remove unused uncounting_illegal_callback_fn (Jonas Nick)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK bitcoin-core/secp256k1@51907fa

Tree-SHA512: 6959671e31938be833eb17ee762aa6d0e7b6789c951058cd32e46bfd95ad96a65625a0b976541b4e6c7d648fdad8af66b8e5503b38fed6387216d281a1513eed
This makes the usage of the atribute consistent. In the musig and ellswift
module, functions that return 1 always already don't have the WARN_UNUSED_RESULT
attribute. In secp256k1.h and the extrakeys module, this has only been the case
partially.

In all cases where this was removed, the function only returns 0 if the illegal
callback has been called.
Fixes the following bash error when make fails:
    ./ci/ci.sh: line 100: return: can only `return' from a function or
    sourced script
d87c3bc ci: Fix exiting from ci.sh on error (Tim Ruffing)

Pull request description:

  Fixes the following bash error when make fails:
      ./ci/ci.sh: line 100: return: can only `return' from a function or
      sourced script

ACKs for top commit:
  hebasto:
    ACK d87c3bc

Tree-SHA512: 5ecd0f550f7659cc41b403fdb7d5d3d37d1a167d585cca02b0aca209c8b9592bb3067cf11aeb80775666e7232f31bf05cf1bb97fec8c67f3bc5fe2243ddbbcfa
… for functions always returning 1

1b6e081 include: remove WARN_UNUSED_RESULT for functions always returning 1 (Jonas Nick)

Pull request description:

  This makes the usage of the atribute consistent. In the musig and ellswift module, functions that return 1 always already don't have the WARN_UNUSED_RESULT attribute. In secp256k1.h and the extrakeys module, this has only been the case partially.

  In all cases where this was removed, the function only returns 0 if the illegal callback has been called.

  Fixes #1379

ACKs for top commit:
  real-or-random:
    utACK bitcoin-core/secp256k1@1b6e081
  sipa:
    utACK 1b6e081

Tree-SHA512: 5d1f2563ddde34fb721dd0b96622e0888a9c72f95af6f1c8a94f7f1f72ca934b6af98a3357c1e922d8611a9869264bb0f3ceb7bed0164c6c3a6f92f9950d4f19
…n summary

20b05c9 configure: Show exhaustive tests in summary (Tim Ruffing)

Pull request description:

ACKs for top commit:
  hebasto:
    ACK 20b05c9, it aligns now with the CMake script: https://github.com/bitcoin-core/secp256k1/blob/e56716a3bcaf108bb7365ee8f2b06f9ec68504c8/CMakeLists.txt#L348-L350
  sipa:
    utACK 20b05c9
  jonasnick:
    ACK 20b05c9

Tree-SHA512: 30744ea5e5b7441ad252868c83cebfec2b02b75786b9ea55d4b0b0a696f1c7df39c48c243b29b13839a9f3a7757c192da8be0dd95412678a7583b123db6e99ac
…output

6b3fe51 bench: add ellswift to bench help output (Jonas Nick)

Pull request description:

ACKs for top commit:
  sipa:
    utACK 6b3fe51
  real-or-random:
    utACK 6b3fe51

Tree-SHA512: 825cc3637cef5807bcfdacd5e9197bffd95e7932a9a34834bd5d01a572c05aa66dc39f75a013753825980b92fa7189da7210a8dbe3c5c7009e793a2e344bc248
c1bcb03 gitignore: Add Python cache files (Tim Ruffing)

Pull request description:

ACKs for top commit:
  theStack:
    ACK c1bcb03

Tree-SHA512: 60db92e01145787e742f4852770b60eb006593d14d7f862a0b248c21f5bc458cb099e3907833aed18f02465c7ec3c1aee208a24c456837fde2bd9c2556998f74
Adds a test for the ECDH module using the Wycheproof vectors.
We use a python script to convert the JSON-formatted vectors
into C code, in the same spirit as bitcoin-core/secp256k1#1245

Co-authored-by: Sean Andersen <6730974+andozw@users.noreply.github.com>
e266ba1 tests: Add Wycheproof ECDH vectors (RandomLattice)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK e266ba1

Tree-SHA512: a5cc59886595b134dadcc50e6cd6f03ce036c2857cdd848f138f0c49d4bd742ae5eb5ebca7840ec8666b5d43fa9c4f67cde4d0fb2245b1cf56b079ca3f7c7f8e
Wycheproof ownership was recently moved to C2SP
(https://github.com/C2SP/wycheproof). This PR updates all references to the new
URL and bumps to the latest version of the vector files.

This commit does not change the content of processed .h testvector files. To test:
```
make clean-testvectors testvectors
```

See: bitcoin-core/secp256k1#1492 (comment)

Co-authored-by: Sean Andersen <6730974+andozw@users.noreply.github.com>
d73ed99 tests: update wycheproof files (RandomLattice)

Pull request description:

ACKs for top commit:
  sipa:
    utACK d73ed99
  jonasnick:
    ACK d73ed99

Tree-SHA512: b772549d26ab8cf28416772a8fa4e53272bea7fabf4e33e85b943bbc9a568257b559db23045a29c209b017b1f758c6772aeefa79df85bc744df4c4fadacaeb5e
hebasto and others added 28 commits February 23, 2026 15:00
The `macos-13` image has been deprecated and will be unavailable soon.
See: actions/runner-images#13045.
…647, 1655, 1593, 1359, 1657, 1660, 1659, 1661

4dda312 ci: Use Python virtual environment in x86_64-macos-native job (mllwchrry)
795f19a ci: Switch to macOS 15 Sequoia Intel-based image (Hennadii Stepanov)
2f057a1 ci: Don't hardcode ABI version (Tim Ruffing)
17ad196 schnorrsig_halfagg: Fix symbol visibility for internal function (mllwchrry)
ec343f0 Port bitcoin-core/secp256k1#1642 to zkp-specific code (mllwchrry)
20b05c9 configure: Show exhaustive tests in summary (Tim Ruffing)
1b6e081 include: remove WARN_UNUSED_RESULT for functions always returning 1 (Jonas Nick)
d87c3bc ci: Fix exiting from ci.sh on error (Tim Ruffing)
51907fa tests: remove unused uncounting_illegal_callback_fn (Jonas Nick)
d147876 build: Drop no longer needed  `-fvisibility=hidden` compiler option (Hennadii Stepanov)
8ed1d83 ci: Run `tools/symbol-check.py` (Hennadii Stepanov)
41d32ab test: Add `tools/symbol-check.py` (Hennadii Stepanov)
8854805 Introduce `SECP256K1_LOCAL_VAR` macro (Hennadii Stepanov)
37d2c60 Remove deprecated _ec_privkey_{negate,tweak_add,tweak_mul} aliases (Sebastian Falbesoner)
59860bc gha: Print all *.log files, in a separate action (Tim Ruffing)
4c50d73 ci: Add new "Windows (clang-cl)" job (Hennadii Stepanov)
84c0bd1 cmake: Adjust diagnostic flags for clang-cl (Hennadii Stepanov)
961ec25 musig: Fix clearing of pubnonces (Tim Ruffing)
64228a6 musig: Use _ge_set_all_gej for own public nonces (Tim Ruffing)
300aab1 tests: Improve _ge_set_all_gej(_var) tests (Tim Ruffing)
365f274 group: Simplify secp256k1_ge_set_all_gej (Tim Ruffing)
d3082dd group: Add constant-time secp256k1_ge_set_all_gej (Tim Ruffing)
432ac57 Make static context const (Daniel Pfeifer)
1823594 Verify `compressed` argument in `secp256k1_eckey_pubkey_serialize` (Sebastian Falbesoner)

Pull request description:

  Merge bitcoin-core/secp256k1#1642: Verify `compressed` argument in `secp256k1_eckey_pubkey_serialize`
  Merge bitcoin-core/secp256k1#1639: Make static context const
  Merge bitcoin-core/secp256k1#1614: Add _ge_set_all_gej and use it in musig for own public nonces
  Merge bitcoin-core/secp256k1#1656: musig: Fix clearing of pubnonces
  Merge bitcoin-core/secp256k1#1647: cmake: Adjust diagnostic flags for `clang-cl`
  Merge bitcoin-core/secp256k1#1655: gha: Print all *.log files, in a separate action
  Merge bitcoin-core/secp256k1#1593: Remove deprecated `_ec_privkey_{negate,tweak_add,tweak_mul}` aliases from API
  Merge bitcoin-core/secp256k1#1359: Fix symbol visibility issues, add test for it
  Merge bitcoin-core/secp256k1#1657: tests: remove unused uncounting_illegal_callback_fn
  Merge bitcoin-core/secp256k1#1660: ci: Fix exiting from ci.sh on error
  Merge bitcoin-core/secp256k1#1659: include: remove WARN_UNUSED_RESULT for functions always returning 1
  Merge bitcoin-core/secp256k1#1661: configure: Show exhaustive tests in summary

  This PR can be recreated with `./contrib/sync-upstream.sh -b master range d84bb83`.

  Tips:
   * Use `git show --remerge-diff <pr-branch>` to show the conflict resolution in the merge commit.
   * Use `git read-tree --reset -u <pr-branch>` to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
     Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

  Additional fixes:
  * schnorrsig_halfagg: Added `static` to internal helper function to pass `symbol-check.py` introduced in bitcoin-core/secp256k1#1359.
  * ci: Cherry-picked bitcoin-core/secp256k1@f67b0ac1 to fix hardcoded DLL version in symbol-check (zkp produces `libsecp256k1-0.dll`, not `-5.dll`)

ACKs for top commit:
  real-or-random:
    ACK 4dda312

Tree-SHA512: 56c6a7dc977fec9cd57330db2a4513b82ee2284e905b70f83d50e9b84f4606b83f695be8eece653ffd88b9852f0a7903662f8ab215434c56c7d3bf3062a3ed16
…668, 1673, 1675, 1680, 1679, 1690, 1683, 1678

145ae3e cmake: add a helper for linking into static libs (Cory Fields)
8192109 README: add link to musig example, generalize module enabling hint (Sebastian Falbesoner)
add146e ci: Bump GCC snapshot major version to 16 (Hennadii Stepanov)
6f67151 cmake: Use `PUBLIC_HEADER` target property (Hennadii Stepanov)
c32715b cmake, move-only: Move module option processing to `src/CMakeLists.txt` (Hennadii Stepanov)
3f31ac4 doc: Promote "Building with CMake" to standard procedure (Hennadii Stepanov)
3af7198 cmake: Bump minimum required CMake version to 3.22 (Hennadii Stepanov)
3a4f448 Assert field magnitude at control-flow join (Peter.Dettman)
0544537 bench_ecmult: add benchmark for ecmult_const_xonly (Sebastian Falbesoner)
d73ed99 tests: update wycheproof files (RandomLattice)
e266ba1 tests: Add Wycheproof ECDH vectors (RandomLattice)
c1bcb03 gitignore: Add Python cache files (Tim Ruffing)
6b3fe51 bench: add ellswift to bench help output (Jonas Nick)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK cc4a92b

Tree-SHA512: ca0b28461c5e663a39ff11cb83bd09c1446e49e33c8806a96dd0912c0d14646be4b33ee6eaee88021d342986d17db254358d622a9567d4b6c91e2ab603224cb8
…694, 1699, 1704, 1696, 1705, 1702, 1706, 1707, 1708

7ab8b0c release cleanup: bump version after 0.7.0 (Jonas Nick)
a3e742d release: Prepare for 0.7.0 (Tim Ruffing)
f67b0ac ci: Don't hardcode ABI version (Tim Ruffing)
cde4130 musig/tests: initialize keypair (Jonas Nick)
40b4a06 changelog: update (Jonas Nick)
8d967a6 musig/test: Remove dead code (Tim Ruffing)
983711c musig/tests: Refactor vectors_signverify (Tim Ruffing)
c82d84b build: add CMake option for disabling symbol visibility attributes (Cory Fields)
ce79238 build: Add SECP256K1_NO_API_VISIBILITY_ATTRIBUTES (Tim Ruffing)
e5297f6 build: Refactor visibility logic (Tim Ruffing)
bf08222 cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1` (Hennadii Stepanov)
3352f9d ci: enable musig module for native macOS arm64 job (Sebastian Falbesoner)
44b205e Revert "cmake: configure libsecp256k1.pc during install" (Daniel Pfeifer)
004f57f ci: Move Valgrind build for `arm64` from Cirrus to GHA (Hennadii Stepanov)
5fafdfc ci: Move `gcc-snapshot` build for `arm64` from Cirrus to GHA (Hennadii Stepanov)
e814b79 ci: Switch `arm64_debian` from QEMU to native `arm64` Docker image (Hennadii Stepanov)
bcf7734 ci: Add `arm64` architecture to `docker_cache` job (Hennadii Stepanov)
b77aae9 ci: Rename Docker image tag to reflect architecture (Hennadii Stepanov)
0dfe387 cmake: support the use of launchers in ctest -S scripts (Daniel Pfeifer)
7106dce cmake: configure libsecp256k1.pc during install (Daniel Pfeifer)
37dd422 cmake: Emulate Libtool's behavior on FreeBSD (Hennadii Stepanov)

Pull request description:

  Merge bitcoin-core/secp256k1#1685: cmake: Emulate Libtool's behavior on FreeBSD
  Merge bitcoin-core/secp256k1#1692: cmake: configure libsecp256k1.pc during install
  Merge bitcoin-core/secp256k1#1687: cmake: support the use of launchers in ctest -S scripts
  Merge bitcoin-core/secp256k1#1689: ci: Convert `arm64` Cirrus tasks to GHA jobs
  Merge bitcoin-core/secp256k1#1694: Revert "cmake: configure libsecp256k1.pc during install"
  Merge bitcoin-core/secp256k1#1699: ci: enable musig module for native macOS arm64 job
  Merge bitcoin-core/secp256k1#1704: cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1`
  Merge bitcoin-core/secp256k1#1696: build: Refactor visibility logic and add override
  Merge bitcoin-core/secp256k1#1705: musig/test: Remove dead code
  Merge bitcoin-core/secp256k1#1702: changelog: update
  Merge bitcoin-core/secp256k1#1706: musig/tests: initialize keypair
  Merge bitcoin-core/secp256k1#1707: release: Prepare for 0.7.0
  Merge bitcoin-core/secp256k1#1708: release cleanup: bump version after 0.7.0

  This PR can be recreated with `./contrib/sync-upstream.sh -b master range b9313c6`.

  Tips:
   * Use `git show --remerge-diff <pr-branch>` to show the conflict resolution in the merge commit.
   * Use `git read-tree --reset -u <pr-branch>` to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
     Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

ACKs for top commit:
  real-or-random:
    ACK 9dcd857

Tree-SHA512: 4f5844185006fc4d3551febc6803096a36bcf49b0b9042e8d6ed0d7f6856de6bba44a69063406bb421b644708a91981a378133683f850ee1cf23275eab13b0c8
…722, 1726, 1725, 1729, 1731, 1681, 1737, 1738

01b1b91 modules: Port bitcoin-core/secp256k1#1725 to zkp-specific code (DarkWindman)
7ebaa13 check-abi: remove support for obsolete CMake library output location (src/libsecp256k1.so) (Sebastian Falbesoner)
806de38 doc: mention ctx requirement for `_ellswift_create` (not secp256k1_context_static) (Sebastian Falbesoner)
7379124 ci: Add more tests for clang-cl (Hennadii Stepanov)
7379a5b doc: Recommend clang-cl when building on Windows (Hennadii Stepanov)
325d65a Rename and clear var containing k or -k (John Moffett)
960ba5f Use size_t instead of int for RFC6979 outlen copy (John Moffett)
5153cf1 tests: refactor tagged hash tests (josibake)
489a43d docs: fix broken link to eprint cache.pdf paper (VolodymyrBg)
0458def doc: Add `--gcov-ignore-parse-errors=all` option to `gcovr` invocations (Hennadii Stepanov)
1aecce5 doc: Add `--merge-mode-functions=separate` option to `gcovr` invocations (Hennadii Stepanov)
106a7cb doc: Exclude modules' `bench_impl.h` headers from coverage report (Hennadii Stepanov)
a9e955d autotools, docs: Adjust help string for `--enable-coverage` option (Hennadii Stepanov)
24ba8ff chore(ci): Fix typo in Dockerfile comment (Maximilian Hubert)
c25c3c8 test: update wycheproof test vectors (josibake)
7b07b22 cmake: Avoid contaminating parent project's cache with BUILD_SHARED_LIBS (Hennadii Stepanov)
5433648 Fix typos and spellings (Adrien Ufferte)
9ea54c6 tests: update Wycheproof files (fanquake)

Pull request description:

  Merge bitcoin-core/secp256k1#1711: tests: update Wycheproof
  Merge bitcoin-core/secp256k1#1688: cmake: Avoid contaminating parent project's cache with `BUILD_SHARED_LIBS`
  Merge bitcoin-core/secp256k1#1717: test: update wycheproof test vectors
  Merge bitcoin-core/secp256k1#1720: chore(ci): Fix typo in Dockerfile comment
  Merge bitcoin-core/secp256k1#1722: docs: Exclude modules' `bench_impl.h` headers from coverage report
  Merge bitcoin-core/secp256k1#1726: docs: fix broken link to Tromer's cache.pdf paper
  Merge bitcoin-core/secp256k1#1725: tests: refactor tagged hash verification
  Merge bitcoin-core/secp256k1#1729: hash: Use size_t instead of int for RFC6979 outlen copy
  Merge bitcoin-core/secp256k1#1731: schnorrsig: Securely clear buf containing k or its negation
  Merge bitcoin-core/secp256k1#1681: doc: Recommend clang-cl when building on Windows
  Merge bitcoin-core/secp256k1#1737: doc: mention ctx requirement for `_ellswift_create` (not secp256k1_context_static)
  Merge bitcoin-core/secp256k1#1738: check-abi: remove support for obsolete CMake library output location (src/libsecp256k1.so)

  This PR can be recreated with `./contrib/sync-upstream.sh -b master range 36e7695`.

  Tips:
   * Use `git show --remerge-diff <pr-branch>` to show the conflict resolution in the merge commit.
   * Use `git read-tree --reset -u <pr-branch>` to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
     Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

ACKs for top commit:
  real-or-random:
    ACK 01b1b91

Tree-SHA512: 3d945e55313eb0afde66bd2064edd169854294f9e1e185e6199beec2a079f872cd3172d00e9c4da6cda25ccf296ddd3f205280076f94d009941eab4e319bcd0a
…748, 1727, 1756, 1750, 1719, 1734, 1759, 1758

7111d36 modules, tests: Port bitcoin-core/secp256k1#1734 to zkp-specific code (DarkWindman)
7699fe9 modules: Port bitcoin-core/secp256k1#1735 to zkp-specific code (DarkWindman)
c09519f ci: Drop workaround for Valgrind older than 3.20.0 (Hennadii Stepanov)
8bc50b7 ci: Switch to macOS 15 Sequoia Intel-based image (Hennadii Stepanov)
2f4546c test: add --log option to display tests execution (furszy)
95b9953 test: Add option to display all available tests (furszy)
953f7b0 test: support running specific tests/modules targets (furszy)
0302c1a test: add --help for command-line options (furszy)
9ec3bfe test: adapt modules to the new test infrastructure (furszy)
48789da test: introduce (mini) unit test framework (furszy)
9cce703 refactor: move 'gettime_i64()' to tests_common.h (furszy)
15d0148 ci: Drop default for `inputs.command` in `run-in-docker-action` (Hennadii Stepanov)
1decc49 ci: Use YAML anchor and aliases for repeated "CI script" steps (Hennadii Stepanov)
dff1bc1 ci, refactor: Generalize use of `matrix.configuration.env_vars` (Hennadii Stepanov)
4b644da ci: Use YAML anchor and aliases for repeated "Print logs" steps (Hennadii Stepanov)
a889cd9 ci: Bump `actions/checkout` version (Hennadii Stepanov)
574c2f3 ci: Use YAML anchor and aliases for repeated "Checkout" steps (Hennadii Stepanov)
53585f9 ci: Use clang-snapshot in "MSan" job (Hennadii Stepanov)
6894c96 Fix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSan (Hennadii Stepanov)
f163c35 ci: Set `DEBIAN_FRONTEND=noninteractive` (Hennadii Stepanov)
70ae177 ci: Bump `docker/build-push-action` version (Hennadii Stepanov)
b2a95a4 ci: Drop `tags` input for `docker/build-push-action` (Hennadii Stepanov)
122014e ci: Add `scope` parameter to `cache-{to,from}` options (Hennadii Stepanov)
4d90585 docs: Improve API docs of _context_set_illegal_callback (Tim Ruffing)
895f53d docs: Clarify that callback can be called more than once (Tim Ruffing)
dfe284e bench: improve context creation in ECDH benchmark (Sebastian Falbesoner)
ab56007 build: Fix warnings in x86_64 assembly check (Hennadii Stepanov)
7321bdf doc: clarify API doc of `secp256k1_ecdsa_recover` return value (Jonas Nick)
0c91c56 test: introduce group order byte-array constant for deduplication (Sebastian Falbesoner)
399b582 Split memclear into two versions (John Moffett)

Pull request description:

  Merge bitcoin-core/secp256k1#1735: musig: Invalidate secnonce in secp256k1_musig_partial_sign
  Merge bitcoin-core/secp256k1#1745: test: introduce group order byte-array constant for deduplication
  Merge bitcoin-core/secp256k1#1741: doc: clarify API doc of `secp256k1_ecdsa_recover` return value
  Merge bitcoin-core/secp256k1#1749: build: Fix warnings in x86_64 assembly check
  Merge bitcoin-core/secp256k1#1748: bench: improve context creation in ECDH benchmark
  Merge bitcoin-core/secp256k1#1727: docs: Clarify that callback can be called more than once
  Merge bitcoin-core/secp256k1#1756: ci: Fix image caching and apply other improvements
  Merge bitcoin-core/secp256k1#1750: ci: Use clang-snapshot in "MSan" job
  Merge bitcoin-core/secp256k1#1719: ci: DRY workflow using anchors
  Merge bitcoin-core/secp256k1#1734: Introduce (mini) unit test framework
  Merge bitcoin-core/secp256k1#1759: ci: Switch to macOS 15 Sequoia Intel-based image
  Merge bitcoin-core/secp256k1#1758: ci: Drop workaround for Valgrind older than 3.20.0

  This PR can be recreated with `./contrib/sync-upstream.sh -b master range 7a2fff8`.

  Tips:
   * Use `git show --remerge-diff <pr-branch>` to show the conflict resolution in the merge commit.
   * Use `git read-tree --reset -u <pr-branch>` to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
     Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

ACKs for top commit:
  real-or-random:
    ACK 7111d36

Tree-SHA512: 9f8fd21eee9ad3b7ea8d688f79783a43baffdeafb6b313372761ce368a24219a83c430c49070413f9972813ae03adde9a8660abfe4b0893b3700e241a81e5b13
…s in encrypt and dleq_verify

3f7a942 ecdsa_adaptor: batch affine conversion in dleq_pair and dleq_prove (mllwchrry)
d380549 ecdsa_adaptor: optimize encrypt with batch affine conversion (mllwchrry)

Pull request description:

  Replace pairs of `secp256k1_ge_set_gej` calls with single `secp256k1_ge_set_all_gej[_var]` calls, saving one expensive field inversion per operation.

  `secp256k1_ecdsa_adaptor_encrypt`:
  - Batch convert nonce points `R'` and `R` using `secp256k1_ge_set_all_gej`.
  - Add early `enckey` validation: `secp256k1_ge_set_all_gej` requires non-infinity inputs, but invalid `enckey` could cause `secp256k1_ecmult_const` to produce infinity.
  - Add early return when `secp256k1_dleq_prove` fails.

  `secp256k1_dleq_pair`:
  - Batch convert points `p[0]` and `p[1]` using `secp256k1_ge_set_all_gej`.

  `secp256k1_dleq_prove`:
  - Add early return with `secp256k1_declassify` when nonce generation fails, ensuring the nonce `k` passed to `secp256k1_dleq_pair` is always non-zero (required by `secp256k1_ge_set_all_gej`).

  `secp256k1_dleq_verify`:
  - Batch convert using variable-time `secp256k1_ge_set_all_gej_var` (already uses variable-time operations, processes public data).

ACKs for top commit:
  real-or-random:
    ACK 3f7a942

Tree-SHA512: 706ab9df439f0803d1ec0181caf94a6f480f8e2c9337eae966c6b7a94b5c3ad14e71fc1a223a7d0f2b8d6db0c46a059b83712adff1d74e2d63ac3fc915234698
6f7c112 include: add description of range proofs focusing on the differences between the implementation and the CA paper (Mykyta)

Pull request description:

  Added the description of range proofs in Confidential Assets focusing on the differences between the description in the paper and the actual implementation.

ACKs for top commit:
  real-or-random:
    ACK 6f7c112

Tree-SHA512: c8568883648d6d1f0cbbe9a9730b08512665a90106b974733eecfc3dc628361ff54785c67c355216157af5a63b7fefa52d49df400ccaeec9cbf14d40a600707f
…779, 1784, 1788, 1778, 1783, 1790, 1764, 1793, 1800, 1796, 1808, 1809

dc0bda5 bench: Port bitcoin-core/secp256k1#1796 to zkp-specific code (mllwchrry)
fe48cc9 generator: Port bitcoin-core/secp256k1#1764 to zkp-specific code (mllwchrry)
d111d31 generator: Port bitcoin-core/secp256k1#1779 to zkp-specific code (mllwchrry)
d8e87e4 unit_test: bump MAX_ARGS from 150 to 200 (mllwchrry)
2542b43 modules: Port bitcoin-core/secp256k1#1774 to zkp-specific code (mllwchrry)
ae7eb72 release cleanup: bump version after 0.7.1 (Jonas Nick)
20a209f release: prepare for 0.7.1 (Jonas Nick)
c4b6a81 changelog: update in preparation for the v0.7.1 release (Jonas Nick)
c09215f bench: fail early if user inputs invalid value for SECP256K1_BENCH_ITERS (kevkevinpal)
29ac4d8 sage: verify Eisenstein integer connection for GLV constants (Justsomebuddy)
bd5ced1 doc/bench: added help text for SECP256K1_BENCH_ITERS env var for bench_ecmult (kevkevinpal)
2f73e52 group: Avoid using infinity field directly in other modules (Tim Ruffing)
0406cfc doc: include arg -DUSE_EXTERNAL_DEFAULT_CALLBACKS=1 for cmake (kevkevinpal)
ae00c55 Add VERIFY_CHECKs that flags are 0 or 1 (John Moffett)
3b5b03f doc/bench: Added cmake build options to bench error messages (kevkevinpal)
d822b29 test: split monolithic ellswift test into independent cases (furszy)
3daab83 refactor: remove ret from secp256k1_ec_pubkey_serialize (kevkevinpal)
8bcda18 test: Add non-NULL checks for "pointer of array" API functions (Sebastian Falbesoner)
5a08c1b Add ARG_CHECKs to ensure "array of pointers" elements are non-NULL (Sebastian Falbesoner)
f5e815f remove secp256k1_eckey_pubkey_serialize function (Sebastian Falbesoner)
0d3659c use new `_eckey_pubkey_serialize{33,65}` functions in modules (ellswift,musig) (Sebastian Falbesoner)
adb76f8 use new `_eckey_pubkey_serialize{33,65}` functions in public API (Sebastian Falbesoner)
fc7458c introduce `secp256k1_eckey_pubkey_serialize{33,65}` functions (Sebastian Falbesoner)
26166c4 ecmult_multi: reduce strauss memory usage by 30% (Jonas Nick)
f252da7 ci: Use Python virtual environment in "x86_64-macos-native" job (Hennadii Stepanov)
153eea2 bench: Use `ALIGNMENT` macro instead of hardcoded value (Hennadii Stepanov)

Pull request description:

  Merge bitcoin-core/secp256k1#1763: bench: Use `ALIGNMENT` macro instead of hardcoded value
  Merge bitcoin-core/secp256k1#1771: ci: Use Python virtual environment in "x86_64-macos-native" job
  Merge bitcoin-core/secp256k1#1761: ecmult_multi: reduce strauss memory usage by 30%
  Merge bitcoin-core/secp256k1#1774: refactor: split up internal pubkey serialization function into compressed/uncompressed variants
  Merge bitcoin-core/secp256k1#1779: Add ARG_CHECKs to ensure "array of pointers" elements are non-NULL
  Merge bitcoin-core/secp256k1#1784: refactor: remove ret from secp256k1_ec_pubkey_serialize
  Merge bitcoin-core/secp256k1#1788: test: split monolithic ellswift test into independent cases
  Merge bitcoin-core/secp256k1#1778: doc/bench: Added cmake build options to bench error messages
  Merge bitcoin-core/secp256k1#1783: Add VERIFY_CHECKs and documentation that flags must be 0 or 1
  Merge bitcoin-core/secp256k1#1790: doc: include arg -DSECP256K1_USE_EXTERNAL_DEFAULT_CALLBACKS=ON for cmake
  Merge bitcoin-core/secp256k1#1764: group: Avoid using infinity field directly in other modules
  Merge bitcoin-core/secp256k1#1793: doc/bench: added help text for SECP256K1_BENCH_ITERS env var for bench_ecmult
  Merge bitcoin-core/secp256k1#1800: sage: verify Eisenstein integer connection for GLV constants
  Merge bitcoin-core/secp256k1#1796: bench: fail early if user inputs invalid value for SECP256K1_BENCH_ITERS
  Merge bitcoin-core/secp256k1#1808: Prepare for 0.7.1
  Merge bitcoin-core/secp256k1#1809: release cleanup: bump version after 0.7.1

  This PR can be recreated with `./contrib/sync-upstream.sh -b master range c7a5240`.

  Tips:
   * Use `git show --remerge-diff <pr-branch>` to show the conflict resolution in the merge commit.
   * Use `git read-tree --reset -u <pr-branch>` to replay these resolutions during the conflict resolution stage when recreating the PR branch locally.
     Be aware that this may discard your index as well as the uncommitted changes and untracked files in your worktree.

ACKs for top commit:
  real-or-random:
    ACK dc0bda5

Tree-SHA512: a816729a8d3ce199154a1b670172f4639b03812071fd78db8e23dfad9a88a2fef882f30c9f34e1151ad79b85201fbb7eba890a572d68bb45ca8fb05496bc34e8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.