Skip to content

Upstream PRs 1735, 1745, 1741, 1749, 1748, 1727, 1756, 1750, 1719, 1734, 1759, 1758#331

Merged
real-or-random merged 43 commits intoBlockstreamResearch:masterfrom
mllwchrry:temp-merge-1758
Mar 2, 2026
Merged

Upstream PRs 1735, 1745, 1741, 1749, 1748, 1727, 1756, 1750, 1719, 1734, 1759, 1758#331
real-or-random merged 43 commits intoBlockstreamResearch:masterfrom
mllwchrry:temp-merge-1758

Conversation

@DarkWindman
Copy link
Copy Markdown
Contributor

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.

john-moffett and others added 30 commits September 8, 2025 12:26
secp256k1_memclear has the side effect of undefining bytes for
valgrind checks. In some cases, we may want to zero bytes
but allow subsequent reads. So we split memclear into
memclear_explicit, which makes no guarantees about the content
of the buffer on return, and memzero_explicit, which guarantees
zero value on return.

Change the memset in partial_sign to use memzero_explicit.
…256k1_musig_partial_sign

399b582 Split memclear into two versions (John Moffett)

Pull request description:

  Replace `memset` which can still be optimized out as `secnonce` isn't read later in this function. The API makes it clear the callee is responsible for it, so we need to assure it's cleared properly.

ACKs for top commit:
  real-or-random:
    utACK 399b582 thanks!
  jonasnick:
    ACK 399b582

Tree-SHA512: 98cd6c44a45218ad66ca99ceacb9bbccee7ff105957363bcde9c3e17d55ac4a81afc881af8adfce7ff3d6ef5d75f3b111d7220256914ca0bedeb43769b38dd20
Relocate the clock time getter to tests_common.h to
make it easily reusable across test programs. This
will be useful for the upcoming unit test framework.

Context - why not placing it inside testutil.h?:
The bench program links against the production-compiled library,
not its own compiled version. Therefore, `gettime_i64()` cannot
be moved to testutil.h, because testutil.h calls
`secp256k1_pubkey_save()`, which exists only in the internal
secp256k1.c and not in the public API.
…rray constant for deduplication

0c91c56 test: introduce group order byte-array constant for deduplication (Sebastian Falbesoner)

Pull request description:

ACKs for top commit:
  real-or-random:
    utACK 0c91c56
  furszy:
    ACK 0c91c56
  jonasnick:
    ACK 0c91c56

Tree-SHA512: c33fc43cdccd7d27e1aa0a7660b91581d663a77130849ee0946fe41a61d6f1ba37304d307ee5c69333336e1f191c4e686e2b423053c8e3ae7bced2d31005b99c
Co-authored-by: Tim Ruffing <me@real-or-random.org>
Calling `secp256k1_context_create` with `SECP256K1_FLAGS_TYPE_CONTEXT`
seems to be not strictly API-compliant, as the only allowed
(non-deprecated) value is `SECP256K1_CONTEXT_NONE`, even if the
former happens to map to the latter currently.

Fix this by not dynamically creating a context in the first place and
switch to using the static context, as it is sufficient for this
benchmark and presumably matches what the "no capabilities" comment
intended back then.
…_ecdsa_recover` return value

7321bdf doc: clarify API doc of `secp256k1_ecdsa_recover` return value (Jonas Nick)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK 7321bdf

Tree-SHA512: a7bac228cf504f6c8a53fdc15c7f3241ac27c214e10b9aabdf962e8d7c4c5107d0c0898467bd3f491cecf0ca2851c604da1ec5520a353b27c8aa02ce3daf2334
This change fixes:
- `-Wuninitialized` in both Autotools and CMake;
- `-Wreturn-type` in CMake only.
…mbly check

ab56007 build: Fix warnings in x86_64 assembly check (Hennadii Stepanov)

Pull request description:

  On the master branch @ 10dab90, the x86_64 assembly check in both the Autotools and CMake build systems can fail depending on externally provided flags. For example:
  ```
  $ env CFLAGS="-Wall -Werror" ./configure --with-asm=x86_64
  <snip>
  checking for x86_64 assembly availability... no
  configure: error: x86_64 assembly requested but not available
  ```
  or
  ```
  $ env CFLAGS="-Wall -Werror" cmake -B build -DSECP256K1_ASM=x86_64
  <snip>
  -- Performing Test HAVE_X86_64_ASM
  -- Performing Test HAVE_X86_64_ASM - Failed
  CMake Error at CMakeLists.txt:111 (message):
    x86_64 assembly requested but not available.

  -- Configuring incomplete, errors occurred!
  ```

  The same issue occurs in CI jobs that build on Windows using clang-cl.

  This PR fixes both build systems.

ACKs for top commit:
  real-or-random:
    utACK ab56007
  furszy:
    ACK ab56007

Tree-SHA512: d556b642d58c601e7f027ac54975249e05a8b3927c5efd229be43d264b024d00eab9973193adb52f2f60075fca0571644662d61150a19098820091ced2d56fa0
… ECDH benchmark

dfe284e bench: improve context creation in ECDH benchmark (Sebastian Falbesoner)

Pull request description:

  Calling `secp256k1_context_create` with `SECP256K1_FLAGS_TYPE_CONTEXT` seems to be confusing and not strictly API-compliant, as the only allowed (non-deprecated) value is `SECP256K1_CONTEXT_NONE`, even if the former happens to map to the latter currently.

  Fix this by not dynamically creating a context in the first place and switch to using the static context, as it is sufficient for this benchmark and presumably matches what the "no capabilities" comment intended back then.

  Alternatives are:
  * keep the signing context and only fix the name, i.e. s/_FLAGS_TYPE_CONTEXT/_CONTEXT_NONE/
  * use `secp256k1_context_static` everywhere directly and get rid of the `ctx` field in the `bench_ecdh_data` struct (less flexible for future changes, deviates from other bench structures)

  Found while reviewing #1698, see bitcoin-core/secp256k1#1698 (comment).

ACKs for top commit:
  sipa:
    utACK dfe284e
  stratospher:
    ACK dfe284e. not sure whether the alternative is preferred though.
  real-or-random:
    utACK dfe284e
  furszy:
    ACK dfe284e

Tree-SHA512: 106d115ec11577fcd66e93293289545aa0fa78480f4bdc8c440963e4e6b050c81d4775268cfa0e1ab44db4c08a5768a0ff80f74b866e550ddd22a4e17ccb9014
… called more than once

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)

Pull request description:

  The tests in #1698 reminded me that some functions, e.g., `secp256k1_ec_pubkey_cmp`, may call the illegal callback more than once (see bitcoin-core/secp256k1#1390 (comment) for more context). This PR clarifies the API docs to state explicitly that this is possible.

  This is the simplest solution. Any production code should crash anyway if it encounters a callback. And in debug code or in our test code, it doesn't really matter whether you see an error message once or twice.

  The alternative is to provide a guarantee that the callback is called only once. But that would make our code more complex for no good reason.

  The second commit fixes a few typos, wording, and consistency.

ACKs for top commit:
  stratospher:
    ACK 4d90585.
  theStack:
    re-ACK 4d90585

Tree-SHA512: 97c31d68851e845b21e9ec2530432603917c019580feba98b62014b538f61be94ba963bf619217720d8f7331ac830e97e62c76c02e7297d3cf73dd085e6f4ca2
Lightweight unit testing framework, providing a structured way to define,
execute, and report tests. It includes a central test registry, a flexible
command-line argument parser of the form "--key=value" / "-k=value" /
"-key=value" (facilitating future framework extensions), ability to run
tests in parallel and accumulated test time logging reports.

So far the supported command-line args are:
- "--jobs=<num>" or "-j=<num>" to specify the number of parallel workers.
- "--seed=<hex>" to specify the RNG seed (random if not set).
- "--iterations=<num>" or "-i=<num>" to specify the number of iterations.

Compatibility Note:
To stay compatible with previous versions, the framework also supports
the two original positional arguments: the iterations count and the
RNG seed (in that order).
This not only provides a structural improvement but also
allows us to (1) specify individual tests to run and (2)
execute each of them concurrently.
Add a help message for the test suite, documenting available options,
defaults, and backward-compatible positional arguments.
Add support for specifying single tests or modules to run via the
"--target" or "-t" command-line option. Multiple targets can be
provided; only the specified tests or all tests in the specified
module/s will run instead of the full suite.

Examples:
-t=<test name> runs an specific test.
-t=<module name> runs all tests within the specified module.

Both options can be provided multiple times.
Useful option to avoid opening the large tests.c file just to find
the test case you want to run.
When enabled (--log=1), shows test start, completion, and execution time.
This change fixes an issue where only the latest image cache was
available.
The `tags` input is unused for caching.
This suppresses `debconf: unable to initialize frontend: ...` warnings.
…her improvements

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)

Pull request description:

  This PR fixes an issue where only the latest image cache was available.

  For other minor improvements, see the individual commit messages.

ACKs for top commit:
  real-or-random:
    utACK f163c35

Tree-SHA512: 7178c447d32e5c06e42d33ed32c9088fc19ca6a67369f2a8f6672b0ec010a516d4bb3a70a1847eec76e034ec22d6df778f6d421a04ba603ae18526a6f4104e65
Co-authored-by: Tim Ruffing <me@real-or-random.org>
hebasto and others added 10 commits October 14, 2025 12:23
53585f9 ci: Use clang-snapshot in "MSan" job (Hennadii Stepanov)
6894c96 Fix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSan (Hennadii Stepanov)

Pull request description:

  In Bitcoin Core, the "MSan" CI jobs use the latest tagged Clang available from http://apt.llvm.org.

  This PR applies similar changes and switches the "MSan" CI jobs to clang-snapshot.

  This exposes problematic code that was reported in bitcoin/bitcoin#33284.

ACKs for top commit:
  real-or-random:
    utACK 53585f9

Tree-SHA512: 79bc10f1d0a60ed67b518eb8fab9a48146a4ef1fff95c8775717be3a950b323ae89a12999504ed8446f164da426894abe02f9fb61b5ca19453d549a34873b73b
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)

Pull request description:

  GHA YAML parser now [supports](actions/runner#1182 (comment)) anchors.

  This PR makes use of that support to [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) the workflow code.

ACKs for top commit:
  real-or-random:
    utACK 15d0148

Tree-SHA512: a25a226fec0053242bc46b8c9815067a35af632cfbffefcc5cd4c96a67c0535dde447753099cbc74ecc64072d36aef2aa78c105b66f43cb3134ffa1ae60dca1e
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)

Pull request description:

  Early Note:
  Don’t be scared by the PR’s line changes count — most of it’s just doc or part of the test framework API.

  Context:
  Currently, all tests run single-threaded sequentially and the library lacks the ability to specify which test (or group of tests) you would like to run. This is not only inconvenient as more tests are added but also time consuming during development and affects downstream projects that may want to parallelize the workload (such as Bitcoin-Core CI).

  PR Goal:
  Introduce a lightweight, extensible C89 unit test framework with no dynamic memory allocations, providing a structured way to register, execute, and report tests. The framework supports named command-line arguments in `-key=value` form, parallel test execution across multiple worker processes, granular test selection (selecting tests either by name or by module name), and time accumulation reports.

  The introduced framework supports:
  * `-help` or `-h`: display list of available commands along with their descriptions.
  * `-jobs=<num>`: distribute tests across multiple worker processes (default: sequential if 0).
  * `-target=<name>` or `-t=<name>`: run only specific tests by name; can be repeated to select multiple tests.
  *  `-target=<module name>`, `-t=<module>`  Run all tests within a specific module (can be provided multiple times)
  * `-seed=<hex>`: set a specific RNG seed (defaults to random if unspecified).
  * `-iterations=<n>`: specify the number of iterations.
  * `-list_tests`:   display list of available tests and modules you can run.
  * `-log=<0|1>`: enable or disable test execution logging (default: 0 = disabled).

  Beyond these features, the idea is to also make future developments smoother, as adding new tests require only a single entry in the central test registry, and new command-line options can be introduced easily by extending the framework’s `parse_arg()` function.

  Compatibility Note:
  The framework continues accepting the two positional arguments previously supported (iterations and seed), ensuring existing workflows remain intact.

  Testing Notes:
  Have fun. You can quickly try it through `./tests -j=<workers_num>` for parallel execution  or `./tests -t=<test_name>` to run a specific test (call `./tests -print_tests` to display all available tests and modules).

  Extra Note:
  I haven't checked the exhaustive tests file so far, but I will soon. For now, this only runs all tests declared in the `tests` binary.

  Testing Results: (Current master branch vs PR in seconds)

  * Raspberry Pi 5: master \~100 s → PR \~38 s (5 jobs)
  * MacBook Pro M1: master \~30 s → PR \~10 s (6 jobs)

ACKs for top commit:
  theStack:
    re-ACK 2f4546c
  real-or-random:
    ACK 2f4546c
  hebasto:
    ACK 2f4546c.

Tree-SHA512: 85ca2cbb620b84b35b353d5d4cf093c388fc3851ca405eeb0e458f8fa72b60534bccd357c7edabf8fc9aa93d9ad0a6fbac3dd5c4d5f9dfdf4d8701a9834755b9
The `macos-13` image has been deprecated and will be unavailable soon.
See: actions/runner-images#13045.
…el-based image

8bc50b7 ci: Switch to macOS 15 Sequoia Intel-based image (Hennadii Stepanov)

Pull request description:

  This is an alternative to bitcoin-core/secp256k1#1755.

  More details from the GHA developers:
  > Apple has discontinued support for the x86_64 (Intel) architecture going forward. GitHub will no longer support this architecture on macOS after the macOS 15 runner image is retired in Fall 2027.

ACKs for top commit:
  real-or-random:
    ACK 8bc50b7

Tree-SHA512: 2c3de907b8910193b77bb201e1c7aad3f70f89804efe4b3ead23181d45a912f677cd533e819914cf1b346aa01d2f273fd5f1e63d7b8d284320d1e4e6198d8578
…lder than 3.20.0

c09519f ci: Drop workaround for Valgrind older than 3.20.0 (Hennadii Stepanov)

Pull request description:

  This is no longer needed in the current CI framework.

  If someone runs the CI scripts locally, it is reasonable to expect that they are using up-to-date tools, including Valgrind.

ACKs for top commit:
  real-or-random:
    ACK bitcoin-core/secp256k1@c09519f

Tree-SHA512: ef840dc8fd6e29110e194e35139050d9720bf8b38e89497790dcf5f2f2ce603805b572fb7408b4ae47bda31289a05548671ac41923f6ab3d1fbf288855f058d0
int i;
run_nonce_function_ecdsa_adaptor_tests();
/* --- Test registry --- */
REPEAT_TEST(dleq_tests)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REPEAT_TEST only creates a repeated test, and you still need to register it.

src/unit_test.h Outdated
Comment on lines +42 to +48
#define REPEAT_TEST_DIV_ADD(fn, divisor, addend) \
static void fn(void) { \
int i; \
int repeat = COUNT / (divisor) + (addend); \
for (i = 0; i < repeat; i++) \
fn##_internal(); \
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would make maintenance easier in the future if we don't touch unit_test.h.

Here are some options:

  1. Just use REPEAT_TEST and accept that the test will run more often.
  2. Write the loop yourself.

I'd just go for 1.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, the first approach would be the best in this case.
P.S. I am not sure why, but the PR was closed automatically after my update..

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P.S. I am not sure why, but the PR was closed automatically after my update..

Oh, I was about to ask why you closed it. (GitHub here says that you closed it.) I've never seen something like this. Are you using some special tooling or just git on the command line?

Copy link
Copy Markdown
Contributor Author

@DarkWindman DarkWindman Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just git on the command line?

I am working in VS Code and just used a command line, the last command was push with --force.

Thanks for re-open!!!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am working in VS Code and just used a command line, the last command was push with --force.

Yep, pushing with --force is the way to go. So okay, no idea what happened. Whatever.

for (i = 0; i < COUNT; i++) {
/* Run multiple times to ensure that pk and nonce have different y
* parities */
scriptless_atomic_swap();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You accidentally dropped this test.

(This was the only line added in zkp in this function. I think that's a nice example for why #326 makes sense.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, sorry! Can I just add that back in the last commit, or should I edit the merge commit 94b5c20?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hehe, either way is fine... My thinking is: try editing the merge commit because it shouldn't be too difficult (see https://stackoverflow.com/a/9958215) but if you run into issues, then just add another commit or add the line to the last commit.

Copy link
Copy Markdown
Member

@real-or-random real-or-random left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 7111d36

@real-or-random real-or-random merged commit 56751a4 into BlockstreamResearch:master Mar 2, 2026
122 checks passed
0x000000000019d6689c085ae165831e934ff76 pushed a commit to 21-DOT-DEV/swift-secp256k1 that referenced this pull request Mar 2, 2026
56751a4c Merge BlockstreamResearch/secp256k1-zkp#331: Upstream PRs 1735, 1745, 1741, 1749, 1748, 1727, 1756, 1750, 1719, 1734, 1759, 1758
7111d365 modules, tests: Port bitcoin-core/secp256k1#1734 to zkp-specific code
7699fe9a modules: Port bitcoin-core/secp256k1#1735 to zkp-specific code
f1e52fac Merge commits '88be4e8d b4756543 10dab907 58178851 de6af6ae baa26542 2b7337f6 a44a3393 f44c1ebd d543c0d9 43e7b115 7a2fff85 ' into temp-merge-1758
7a2fff85 Merge bitcoin-core/secp256k1#1758: ci: Drop workaround for Valgrind older than 3.20.0
43e7b115 Merge bitcoin-core/secp256k1#1759: ci: Switch to macOS 15 Sequoia Intel-based image
8bc50b72 ci: Switch to macOS 15 Sequoia Intel-based image
c09519f0 ci: Drop workaround for Valgrind older than 3.20.0
d543c0d9 Merge bitcoin-core/secp256k1#1734: Introduce (mini) unit test framework
f44c1ebd Merge bitcoin-core/secp256k1#1719: ci: DRY workflow using anchors
a44a3393 Merge bitcoin-core/secp256k1#1750: ci: Use clang-snapshot in "MSan" job
15d01480 ci: Drop default for `inputs.command` in `run-in-docker-action`
1decc49a ci: Use YAML anchor and aliases for repeated "CI script" steps
dff1bc10 ci, refactor: Generalize use of `matrix.configuration.env_vars`
4b644da1 ci: Use YAML anchor and aliases for repeated "Print logs" steps
a889cd93 ci: Bump `actions/checkout` version
574c2f30 ci: Use YAML anchor and aliases for repeated "Checkout" steps
53585f93 ci: Use clang-snapshot in "MSan" job
6894c964 Fix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSan
2b7337f6 Merge bitcoin-core/secp256k1#1756: ci: Fix image caching and apply other improvements
f163c358 ci: Set `DEBIAN_FRONTEND=noninteractive`
70ae177c ci: Bump `docker/build-push-action` version
b2a95a42 ci: Drop `tags` input for `docker/build-push-action`
122014ed ci: Add `scope` parameter to `cache-{to,from}` options
2f4546ce test: add --log option to display tests execution
95b9953e test: Add option to display all available tests
953f7b00 test: support running specific tests/modules targets
0302c1a3 test: add --help for command-line options
9ec3bfe2 test: adapt modules to the new test infrastructure
48789daf test: introduce (mini) unit test framework
baa26542 Merge bitcoin-core/secp256k1#1727: docs: Clarify that callback can be called more than once
4d90585f docs: Improve API docs of _context_set_illegal_callback
895f53d1 docs: Clarify that callback can be called more than once
de6af6ae Merge bitcoin-core/secp256k1#1748: bench: improve context creation in ECDH benchmark
58178851 Merge bitcoin-core/secp256k1#1749: build: Fix warnings in x86_64 assembly check
ab560078 build: Fix warnings in x86_64 assembly check
10dab907 Merge bitcoin-core/secp256k1#1741: doc: clarify API doc of `secp256k1_ecdsa_recover` return value
dfe284ed bench: improve context creation in ECDH benchmark
7321bdf2 doc: clarify API doc of `secp256k1_ecdsa_recover` return value
b4756543 Merge bitcoin-core/secp256k1#1745: test: introduce group order byte-array constant for deduplication
9cce7038 refactor: move 'gettime_i64()' to tests_common.h
0c91c560 test: introduce group order byte-array constant for deduplication
88be4e8d Merge bitcoin-core/secp256k1#1735: musig: Invalidate secnonce in secp256k1_musig_partial_sign
399b582a Split memclear into two versions

git-subtree-dir: Vendor/secp256k1-zkp
git-subtree-split: 56751a4cf069b48ec8562b81dedff7e306679d59
csjones pushed a commit to 21-DOT-DEV/swift-secp256k1 that referenced this pull request Mar 2, 2026
* chore: clean stale extractions for secp256k1-zkp

* Squashed 'Vendor/secp256k1-zkp/' changes from 42ae776d..56751a4c

56751a4c Merge BlockstreamResearch/secp256k1-zkp#331: Upstream PRs 1735, 1745, 1741, 1749, 1748, 1727, 1756, 1750, 1719, 1734, 1759, 1758
7111d365 modules, tests: Port bitcoin-core/secp256k1#1734 to zkp-specific code
7699fe9a modules: Port bitcoin-core/secp256k1#1735 to zkp-specific code
f1e52fac Merge commits '88be4e8d b4756543 10dab907 58178851 de6af6ae baa26542 2b7337f6 a44a3393 f44c1ebd d543c0d9 43e7b115 7a2fff85 ' into temp-merge-1758
7a2fff85 Merge bitcoin-core/secp256k1#1758: ci: Drop workaround for Valgrind older than 3.20.0
43e7b115 Merge bitcoin-core/secp256k1#1759: ci: Switch to macOS 15 Sequoia Intel-based image
8bc50b72 ci: Switch to macOS 15 Sequoia Intel-based image
c09519f0 ci: Drop workaround for Valgrind older than 3.20.0
d543c0d9 Merge bitcoin-core/secp256k1#1734: Introduce (mini) unit test framework
f44c1ebd Merge bitcoin-core/secp256k1#1719: ci: DRY workflow using anchors
a44a3393 Merge bitcoin-core/secp256k1#1750: ci: Use clang-snapshot in "MSan" job
15d01480 ci: Drop default for `inputs.command` in `run-in-docker-action`
1decc49a ci: Use YAML anchor and aliases for repeated "CI script" steps
dff1bc10 ci, refactor: Generalize use of `matrix.configuration.env_vars`
4b644da1 ci: Use YAML anchor and aliases for repeated "Print logs" steps
a889cd93 ci: Bump `actions/checkout` version
574c2f30 ci: Use YAML anchor and aliases for repeated "Checkout" steps
53585f93 ci: Use clang-snapshot in "MSan" job
6894c964 Fix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSan
2b7337f6 Merge bitcoin-core/secp256k1#1756: ci: Fix image caching and apply other improvements
f163c358 ci: Set `DEBIAN_FRONTEND=noninteractive`
70ae177c ci: Bump `docker/build-push-action` version
b2a95a42 ci: Drop `tags` input for `docker/build-push-action`
122014ed ci: Add `scope` parameter to `cache-{to,from}` options
2f4546ce test: add --log option to display tests execution
95b9953e test: Add option to display all available tests
953f7b00 test: support running specific tests/modules targets
0302c1a3 test: add --help for command-line options
9ec3bfe2 test: adapt modules to the new test infrastructure
48789daf test: introduce (mini) unit test framework
baa26542 Merge bitcoin-core/secp256k1#1727: docs: Clarify that callback can be called more than once
4d90585f docs: Improve API docs of _context_set_illegal_callback
895f53d1 docs: Clarify that callback can be called more than once
de6af6ae Merge bitcoin-core/secp256k1#1748: bench: improve context creation in ECDH benchmark
58178851 Merge bitcoin-core/secp256k1#1749: build: Fix warnings in x86_64 assembly check
ab560078 build: Fix warnings in x86_64 assembly check
10dab907 Merge bitcoin-core/secp256k1#1741: doc: clarify API doc of `secp256k1_ecdsa_recover` return value
dfe284ed bench: improve context creation in ECDH benchmark
7321bdf2 doc: clarify API doc of `secp256k1_ecdsa_recover` return value
b4756543 Merge bitcoin-core/secp256k1#1745: test: introduce group order byte-array constant for deduplication
9cce7038 refactor: move 'gettime_i64()' to tests_common.h
0c91c560 test: introduce group order byte-array constant for deduplication
88be4e8d Merge bitcoin-core/secp256k1#1735: musig: Invalidate secnonce in secp256k1_musig_partial_sign
399b582a Split memclear into two versions

git-subtree-dir: Vendor/secp256k1-zkp
git-subtree-split: 56751a4cf069b48ec8562b81dedff7e306679d59

* chore(deps): update subtree secp256k1-zkp to 56751a4c

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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.

7 participants