BC
← All projectsBitcoin Core

libsecp256k1

High-assurance secp256k1 elliptic-curve library used throughout the Bitcoin ecosystem.

BitcoinCryptographic librariesNormal
Repository coverage

176 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

48security candidates5second-pass queue48AI analyses
50commits · 30 days
69commits · 60 days
94commits · 180 days
176commits · 365 days
Backfill bands
Aug 5 → Feb 682 seen1 candidatesComplete
Feb 6 → Jun 625 seen2 candidatesComplete
Jun 6 → Jul 619 seen1 candidatesComplete
Jul 6 → Aug 548 seen1 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

67/100 average clarity
39Strong · 80–100
76Adequate · 60–79
58Thin · 40–59
3Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Sebastian Falbesoner391515065
Hennadii Stepanov4566064
Tim Ruffing2266055
furszy1344087
josibake944066
Lőrinc1333077
kevkevinpal622064
John Moffett422069
copilot-swe-agent[bot]322074
Jonas Nick711053
merge-script211091
gzJx0DuTRHytnHe7P5RmMbPf3wKy2BztweVGXTf211078
Analysis record

Published AI watches

Last scanned 14 minutes ago

Informational 20 AI analysisMessage 96 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1897: tests: check results before using outputs

This commit fixes test-suite bugs, not the cryptographic library itself. Several test cases were using outputs from functions without first checking whether those functions succeeded. In rare cases a failed setup step could leave a value t…

Test-only hardeningMissing return-value checks in test codePotential false-positive test passes on setup failure
687155dfby merge-script+21−218 files
No security note in commit
Low 26 AI analysisMessage 83 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

sha256: cross-check caller supplied compression function

This commit strengthens the library's startup self-test for SHA-256 compression functions that users can plug in. It adds a more thorough 'smoke test' that compares the user-supplied function against the built-in one across many message le…

Defensive self-test hardening for pluggable cryptographic primitiveExpanded test coverage for multi-block, unaligned-input, and non-IV state casesStartup-time detection of faulty SHA-256 compression functions
c84ea465by furszy+154−14 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 53 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

release-process: Add signing of tarball

This commit updates the project's release instructions to add a new step: creating a GPG-signed source-code tarball when making a release. It is a documentation-only change that improves release integrity and does not modify any code or fi…

Documentation-only change to release processAdds GPG signing of release tarballsReferences expected signing key in SECURITY.md
fae22e77by Tim Ruffing+14−41 file
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

header: Add note on SHA256 override and aux functions

This commit only adds a documentation note to a public header file. It explains that certain auxiliary functions, when called directly by user code, will not use a user-installed SHA256 override callback because they do not receive a libra…

4147f8bdby Tim Ruffing+9−11 file
No security note in commit
Low 32 AI analysisMessage 50 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

ecdsa/ecdh: Use SHA256 override if known noncefp/hashfp is passed

This small change makes Bitcoin's cryptographic library treat two built-in functions (the default ECDSA nonce generator and the default ECDH hash function) as 'default' choices even when a caller explicitly passes them. The practical effec…

Behavioral alignment of default function pointers with context-aware hash implementationPotential misuse path where explicit default function pointer bypassed context hash functionNo explicit security claim, CVE, or vulnerability description in commit or references
ed091bc4by Tim Ruffing+2−22 files
No security note in commit
Informational 21 AI analysisMessage 71 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Remove deprecated `secp256k1_context_no_precomp` pointer

This commit removes an old, renamed pointer called secp256k1_context_no_precomp from the secp256k1 cryptographic library. It had been marked as deprecated for over three years and was only an alias for the newer secp256k1_context_static. T…

Removal of a deprecated public API symbolNo change to cryptographic logic, memory handling, or context semanticsPotential downstream build breakage for consumers still using the deprecated alias
bf435856by Sebastian Falbesoner+1−84 files
No security note in commit
Informational 19 AI analysisMessage 71 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Remove deprecated `secp256k1_schnorrsig_sign` alias

This commit removes an old, renamed function called secp256k1_schnorrsig_sign from the libsecp256k1 cryptographic library. It had been marked as deprecated for over three years and was simply an alias pointing to the newer secp256k1_schnor…

No security-relevant code change: only a deprecated alias and its test are removedNo memory safety, cryptographic, or input validation changesNo bug fix, vulnerability patch, or incident disclosure present in commit or references
e14756bdby Sebastian Falbesoner+4−194 files
No security note in commit
Informational 17 AI analysisMessage 78 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

recovery: check exhaustive API results

This commit tightens a test suite for the secp256k1 cryptographic library. It adds checks to ensure that recoverable signing and signature conversion succeed before using their outputs. It does not change the library's actual signing or ve…

defensive test-hardening onlyno change to cryptographic implementationno change to signature parsing, verification, or recovery logic
1d3f72d3by Lőrinc+3−31 file
No security note in commit
Informational 17 AI analysisMessage 83 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

ellswift: check test operation results

This commit fixes test code for the EllSwift module so that it actually checks whether encoding, decoding, and public-key loading operations succeed before using their outputs. Previously the tests silently ignored failure return values, w…

Missing return-value checks in cryptographic test codePotential silent test failures in EllSwift encode/decode roundtrip testsPotential silent test failures in public-key load operations
564afb0bby Lőrinc+10−102 files
No security note in commit
Informational 15 AI analysisMessage 86 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: API docs and internal comment followups

This commit only updates documentation comments and an example error message in the silent payments module. It does not change any executable code, cryptographic calculations, or security behavior. The changes clarify when the output-creat…

0fa38f3dby Sebastian Falbesoner+24−223 files
No security note in commit
Low 37 AI analysisMessage 73 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

nonce: terminate RFC6979 loop at UINT_MAX

This commit fixes an infinite-loop bug in the RFC6979 nonce generation code used for creating cryptographic signatures. If a caller asked for attempt number UINT_MAX (the maximum value of an unsigned integer), the old loop would generate t…

Infinite loop in cryptographic nonce generation when counter is UINT_MAXLoop index wraparound causing non-terminationRFC6979 nonce function behavior mismatch with public API contract
b1bc6f3eby Lőrinc+2−11 file
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: drop "shuffle outputs" recommendation from API docs

This commit only changes documentation comments in a header file. It removes a recommendation that callers shuffle transaction outputs before scanning, and instead clarifies that outputs should be passed in their original transaction order…

cea6d114by Sebastian Falbesoner+2−31 file
No security note in commit
Informational 12 AI analysisMessage 78 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

tests: add constant time tests

This commit only adds new test code. It extends the project's constant-time test suite to also exercise the silent payments module, ensuring that secret key material is not accidentally leaked through timing side channels during those oper…

Adds constant-time (side-channel) test coverage for the silent payments moduleUses memory-secret marking macros (SECP256K1_CHECKMEM_UNDEFINE/DEFINE) to detect secret-dependent branchesNo functional or cryptographic code changes
936907b0by josibake+78−01 file
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: recipient label support

This commit adds new public API functions to the silentpayments module of libsecp256k1 to support recipient-side labels for BIP352 silent payments. It is a feature addition, not a security fix or vulnerability patch. There is no evidence i…

c83b6783by Sebastian Falbesoner+302−13 files
No security note in commit
Informational 15 AI analysisMessage 41 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: sending

This commit adds a new feature to the secp256k1 cryptographic library: the sender-side logic for Bitcoin Silent Payments (BIP352). It lets a wallet create special one-time payment addresses for recipients without revealing which recipient …

New feature implementation for BIP352 Silent Payments sender sideExtensive input validation (ARG_CHECK) and test coverage for malformed keys and bad argumentsSensitive intermediate values (shared secrets, scalars) are explicitly cleared
b30ea3ebby josibake+719−14 files
No security note in commit
Low 38 AI analysisMessage 73 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: respect per-group recipients protocol limit (K_max=2323)

This commit fixes the libsecp256k1 Silent Payments implementation so it respects the protocol-defined maximum of 2,323 recipients that share the same scan public key. Previously, the code had a TODO warning about unbounded scanning that co…

Unbounded loop bounded to protocol limit to prevent quadratic scanning costSender-side enforcement prevents creating outputs recipients may not findNew public constant documents protocol limit (BIP-352 K_max=2323)
1c1b2753by Sebastian Falbesoner+85−53 files
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

silentpayments: receiving

This commit adds new code for receiving BIP352 Silent Payments in the libsecp256k1 cryptography library. It introduces functions that let a wallet scan a Bitcoin transaction to find outputs sent to it and compute the secret tweaks needed t…

New feature code, not a security patchExtensive input validation and NULL checks addedSensitive scalars cleared after use (shared_secret, scan_key_scalar, t_k_scalar)
d72a7432by josibake+632−13 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

build: add skeleton for new silentpayments (BIP352) module

This commit is purely a build-system and header-file skeleton for a new Silent Payments (BIP352) module. It adds configuration options, dependency checks, and empty placeholder files, but contains no actual cryptographic code or implementa…

a93e696aby Sebastian Falbesoner+83−08 files
No security note in commit
Informational 16 AI analysisMessage 63 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

include: Remove SECP256K1_GNUC_PREREQ macro

This commit removes an unused internal compiler-version-checking helper macro from the public header file. It is a cleanup change with no security implications. The commit message notes it is technically a breaking change for any external …

dba4d937by copilot-swe-agent[bot]+0−91 file
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Use __GNUC__ instead of SECP256K1_GNUC_PREREQ

This commit is a routine cleanup of compiler feature checks in the secp256k1 cryptographic library. It replaces a custom version-check macro with a simpler check for whether the compiler is GCC (or claims to be GCC, like Clang). The change…

09870e9cby copilot-swe-agent[bot]+10−102 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Lower-prioritytest: Add option to display all available testsby furszy · 95b9953e · Oct 1, 2025 · 2 filesMessage 94 · StrongTriage 0Details
Commit message · furszy

test: Add option to display all available tests

Useful option to avoid opening the large tests.c file just to find
the test case you want to run.

94/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode✓ Mentions testing or verification
Lower-prioritytest: support running specific tests/modules targetsby furszy · 953f7b00 · Oct 1, 2025 · 2 filesMessage 95 · StrongTriage 0Details
Commit message · furszy

test: support running specific tests/modules targets

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.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Lower-prioritytest: add --help for command-line optionsby furszy · 0302c1a3 · Oct 1, 2025 · 2 filesMessage 90 · StrongTriage 0Details
Commit message · furszy

test: add --help for command-line options

Add a help message for the test suite, documenting available options,
defaults, and backward-compatible positional arguments.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Security candidatetest: introduce (mini) unit test frameworkby furszy · 48789daf · Oct 1, 2025 · 6 filesMessage 95 · StrongInformational 15Details
Commit message · furszy

test: introduce (mini) unit test framework

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).

95/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
entropy or randomness
AI analysis · Informational 15/100

This commit is a pure test-infrastructure change. It introduces a small internal unit-test framework for the secp256k1 cryptographic library, replacing a long hand-written main() function with a registry of test cases and adding optional parallel test execution. It does not change any cryptographic code, public API, or production behavior, and it does not fix or introduce any security vulnerability.

Lower-prioritytest: adapt modules to the new test infrastructureby furszy · 9ec3bfe2 · Oct 1, 2025 · 8 filesMessage 95 · StrongTriage 0Details
Commit message · furszy

test: adapt modules to the new test infrastructure

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.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Security candidatedocs: Improve API docs of _context_set_illegal_callbackby Tim Ruffing · 4d90585f · Sep 22, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Tim Ruffing

docs: Improve API docs of _context_set_illegal_callback

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only changes documentation comments in a header file. It rewords descriptions of error and illegal-argument callbacks, fixes typos, and clarifies wording. No executable code, build system, or API behavior was changed, so it has no security impact on its own.

Security candidatedocs: Clarify that callback can be called more than onceby Tim Ruffing · 895f53d1 · Sep 22, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Tim Ruffing

docs: Clarify that callback can be called more than once

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only changes a documentation comment in a header file. It clarifies that if a user-supplied error callback returns instead of aborting, the API call's results are undefined and the callback may be triggered more than once. No code behavior was changed.

Security candidatebuild: Fix warnings in x86_64 assembly checkby Hennadii Stepanov · ab560078 · Sep 18, 2025 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

build: Fix warnings in x86_64 assembly check

This change fixes:
- `-Wuninitialized` in both Autotools and CMake;
- `-Wreturn-type` in CMake only.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit fixes compiler warnings in build-system tests that detect whether x86_64 assembly can be used. It initializes a variable and adds a return statement to a small test program. These changes do not affect the actual cryptographic code, runtime behavior, or security of the library.

Lower-prioritybench: improve context creation in ECDH benchmarkby Sebastian Falbesoner · dfe284ed · Sep 16, 2025 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Sebastian Falbesoner

bench: improve context creation in ECDH benchmark

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.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Security candidatedoc: clarify API doc of `secp256k1_ecdsa_recover` return valueby Jonas Nick · 7321bdf2 · Sep 16, 2025 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · Jonas Nick

doc: clarify API doc of `secp256k1_ecdsa_recover` return value

Co-authored-by: Tim Ruffing <me@real-or-random.org>

70/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Names security-relevant behavior explicitly
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only updates the documentation comments for a function in a header file. It clarifies what the return value of secp256k1_ecdsa_recover means and explains a subtle detail about signature normalization after converting a recoverable signature. No code logic was changed, so there is no security vulnerability or fix here.

Lower-priorityrefactor: move 'gettime_i64()' to tests_common.hby furszy · 9cce7038 · Sep 13, 2025 · 3 filesMessage 100 · StrongTriage 0Details
Commit message · furszy

refactor: move 'gettime_i64()' to tests_common.h

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.

100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Lower-prioritytest: introduce group order byte-array constant for deduplicationby Sebastian Falbesoner · 0c91c560 · Sep 12, 2025 · 3 filesMessage 72 · AdequateTriage 0Details
Commit message · Sebastian Falbesoner

test: introduce group order byte-array constant for deduplication

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Security candidateSplit memclear into two versionsby John Moffett · 399b582a · Sep 8, 2025 · 11 filesMessage 68 · AdequateInformational 24Details
Commit message · John Moffett

Split memclear into two versions

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.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
AI analysis · Informational 24/100

This commit is a code-quality and testing-hardening change inside a widely used cryptographic library. It splits one internal memory-wiping helper into two: one that guarantees zeros (used where the code later reads the buffer) and one that intentionally marks memory as undefined in test builds (used where the buffer should never be read again). The only functional change visible in the diff is replacing a plain memset with the guaranteed-zero helper in one MuSig partial-signing path, which makes the code's intent clearer and avoids a potential test-only false positive. There is no direct evidence this fixes an exploitable vulnerability in production.

Lower-prioritycheck-abi: remove support for obsolete CMake library output location (src/libsecp256k1.so)by Sebastian Falbesoner · 7ebaa134 · Sep 7, 2025 · 1 fileMessage 81 · StrongTriage 0Details
Commit message · Sebastian Falbesoner

check-abi: remove support for obsolete CMake library output location (src/libsecp256k1.so)

The CMake library output location was changed from "src/" to "lib/"
in PR #1553, supporting the old location shouldn't be necessary anymore.

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Security candidatedoc: mention ctx requirement for `_ellswift_create` (not secp256k1_context_static)by Sebastian Falbesoner · 806de38b · Sep 5, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Sebastian Falbesoner

doc: mention ctx requirement for `_ellswift_create` (not secp256k1_context_static)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This is a one-line documentation update. It clarifies that a specific function should not be called with a special read-only context object named secp256k1_context_static. There is no code change and no security fix.

Lower-priorityRename and clear var containing k or -kby John Moffett · 325d65a8 · Sep 2, 2025 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · John Moffett

Rename and clear var containing k or -k

buf currently holds k or -k and isn't cleared, so clear it and rename to
nonce32 to clarify its sensitivity and match how it is named in the
corresponding ECDSA sign_inner.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityUse size_t instead of int for RFC6979 outlen copyby John Moffett · 960ba5f9 · Sep 1, 2025 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · John Moffett

Use size_t instead of int for RFC6979 outlen copy

If outlen is > INT_MAX, could trigger segfault or hang after copy
int now = outlen.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityci: Add more tests for clang-clby Hennadii Stepanov · 73791243 · Aug 24, 2025 · 1 fileMessage 67 · AdequateTriage 0Details
Commit message · Hennadii Stepanov

ci: Add more tests for clang-cl

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
documentation-only discount
Security candidatedoc: Recommend clang-cl when building on Windowsby Hennadii Stepanov · 7379a5be · Aug 24, 2025 · 175 filesMessage 45 · ThinInformational 15Details
Commit message · Hennadii Stepanov

doc: Recommend clang-cl when building on Windows

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is a large repository import or merge that brings in the entire libsecp256k1 codebase, including build systems, CI configuration, documentation, and source files. The commit title says it only updates Windows build documentation to recommend clang-cl, but the actual diff shows a wholesale addition of 175 files. There is no code change that fixes or introduces a security vulnerability in the cryptographic library itself.

Security candidatetests: refactor tagged hash testsby josibake · 5153cf1c · Aug 20, 2025 · 4 filesMessage 83 · StrongInformational 15Details
Commit message · josibake

tests: refactor tagged hash tests

Move the sha256_tag_test_internal function out of the musig module
into tests.c. This makes it available to other modules wishing to verify tagged
hashes without needing to duplicate the function.

Change the function signature to expect a const unsigned char and update
the tagged hash tests to use static const unsigned char character
arrays (where necessary).

Add a comment for each tag. This is done as a convenience for checking
the strings against the protocol specifications, where the tags are
normally specified as strings.

Update tests in the ellswift and schnorrsig modules to use the
sha256_tag_test_internal helper function.

83/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
signing boundary
AI analysis · Informational 15/100

This commit is a test-only cleanup. It moves a helper function that checks SHA256 'tagged hash' setup from one test file to a shared test file, renames it, and updates several test modules to use the shared helper. There are no changes to the actual cryptographic library code that users rely on, and no security bug is fixed or introduced.

Lower-prioritydocs: fix broken link to eprint cache.pdf paperby VolodymyrBg · 489a43d1 · Aug 18, 2025 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · VolodymyrBg

docs: fix broken link to eprint cache.pdf paper

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-prioritydoc: Add `--gcov-ignore-parse-errors=all` option to `gcovr` invocationsby Hennadii Stepanov · 0458def5 · Aug 12, 2025 · 1 fileMessage 77 · AdequateTriage 0Details
Commit message · Hennadii Stepanov

doc: Add `--gcov-ignore-parse-errors=all` option to `gcovr` invocations

Otherwise, commands might fail due to bugs in the `gcov` tool.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Explains rationale or failure mode
Why it was queued
documentation-only discount
Lower-prioritydoc: Add `--merge-mode-functions=separate` option to `gcovr` invocationsby Hennadii Stepanov · 1aecce59 · Aug 11, 2025 · 1 fileMessage 85 · StrongTriage 0Details
Commit message · Hennadii Stepanov

doc: Add `--merge-mode-functions=separate` option to `gcovr` invocations

Otherwise, commands fail with the error:
```
Stderr of gcov was >><< End of stderr
Exception was >>Got function secp256k1_scalar_split_lambda on multiple lines: 67, 142.
You can run gcovr with --merge-mode-functions=MERGE_MODE.
The available values for MERGE_MODE are described in the documentation.<< End of stderr
```

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
documentation-only discount
Lower-prioritydoc: Exclude modules' `bench_impl.h` headers from coverage reportby Hennadii Stepanov · 106a7cbf · Aug 11, 2025 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · Hennadii Stepanov

doc: Exclude modules' `bench_impl.h` headers from coverage report

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
documentation-only discount
Lower-priorityautotools, docs: Adjust help string for `--enable-coverage` optionby Hennadii Stepanov · a9e955d3 · Aug 10, 2025 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · Hennadii Stepanov

autotools, docs: Adjust help string for `--enable-coverage` option

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body