BC
← All projectsBitcoin Core

libsecp256k1

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

BitcoinCryptographic librariesNormal
Repository coverage

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

64security candidates6second-pass queue193AI analyses
17commits · 30 days
55commits · 60 days
106commits · 180 days
184commits · 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.

70/100 average clarity
63Strong · 80–100
80Adequate · 60–79
59Thin · 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 Falbesoner451842066
merge-script191113093
Hennadii Stepanov45645064
Tim Ruffing22622055
furszy13413087
josibake949066
Lőrinc13313077
kevkevinpal626064
John Moffett424069
Bruno Garcia322090
copilot-swe-agent[bot]323074
Jonas Nick717053
Analysis record

Published AI watches

Last scanned 28 minutes ago

Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1840: ci: Simplify module configuration and extend test coverage

This change only edits the project's automated continuous-integration (CI) configuration file. It turns on all optional cryptographic modules by default in CI and adds test runs that disable each module one at a time. There is no change to…

No source-code changesNo build-system logic changesCI-only workflow refactor
9701113fby merge-script+29−1001 file
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1918: refactor: split `ge_parse` into explicit variants (compressed, uncompressed, uncompressed+hybrid)

This commit is a code cleanup (refactor) that splits one internal public-key parsing helper into three clearly named versions. It does not change what keys the public API accepts or rejects, and it adds more tests. There is no security vul…

Refactor only: no change to accepted public-key formats or validation rulesPublic API behavior preserved: 33-byte compressed and 65-byte uncompressed/hybrid still acceptedInternal fixed-size callers now use size-specific parser, reducing risk of accidental hybrid acceptance in future code
46db7871by merge-script+117−346 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1893: test: cover schnorrsig_sign_custom in constant-time tests

This commit only adds new test code to check that a specific Schnorr signing function behaves in a constant-time manner under Valgrind. It does not change any production cryptographic code, so it cannot introduce or fix a security vulnerab…

Only test file src/ctime_tests.c changedNo production cryptographic code modifiedAdds constant-time (CHECKMEM/Valgrind) coverage for schnorrsig_sign_custom
99ae2312by merge-script+41−01 file
No security note in commit
Informational 14 AI analysisMessage 100 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1923: group: VERIFY input/output ge/gej/fe exhaustively

This commit is a code-quality and defensive-programming change. It restructures internal elliptic-curve helper functions so that runtime consistency checks (VERIFY macros) wrap the real implementation and cannot be skipped by an early 'ret…

Defensive restructuring of assertion wrappersAdds missing VERIFY post-conditions on group element outputsNo functional cryptographic change
a7f26437by merge-script+253−1452 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1928: tests: add coverage for exact-size DER signature serialization

This commit only adds new test code to check that a specific function behaves correctly when given a buffer of exactly the right size. It does not change any production code, fix a bug, or introduce a vulnerability. It is a routine improve…

aa0af2faby merge-script+12−01 file
No security note in commit
Informational 13 AI analysisMessage 88 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

tests: add coverage for exact-size DER signature serialization

This commit only adds a new test case. It checks that a DER signature can be written into a buffer that is exactly the right size, and that writing into a buffer one byte too small fails correctly. There is no change to the actual library …

500ccb60by Bruno Garcia+12−01 file
No security note in commit
Informational 19 AI analysisMessage 96 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1924: tests: add coverage for the DER long form length encoding

This commit only adds new test cases to the libsecp256k1 test suite. It does not change any production cryptographic code. The new tests check that the DER signature parser correctly handles an unusual but valid length-encoding format (the…

Adds test coverage for DER long-form length encoding acceptance and rejectionTargets secp256k1_der_read_len boundary conditionsNo changes to src/ecdsa_impl.h or any production parsing logic
a9a61831by merge-script+117−01 file
No security note in commit
Informational 15 AI analysisMessage 88 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

tests: add coverage for the DER long form length encoding

This commit only adds new test cases to the project's test suite. It does not change any production parsing code. The tests verify that the existing DER signature parser correctly accepts valid long-form length encodings and rejects invali…

ddb1dfa7by Bruno Garcia+117−01 file
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1908: refactor: replace `_get_hash_context` with direct `->hash_ctx` access

This commit is a straightforward code cleanup: it removes a small internal helper function named secp256k1_get_hash_context() and replaces every call with direct access to the context's hash_ctx field. The behavior is identical; no securit…

bae6b89aby merge-script+67−7116 files
No security note in commit
Informational 15 AI analysisMessage 98 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1915: refactor: Move (de)ser helpers from musig and eckey to group

This is a routine internal code cleanup: it moves helper functions that convert between group elements and byte strings from one internal file to another, and renames a couple of private-key tweak helpers from 'privkey' to 'seckey'. The pu…

86c7cbafby merge-script+114−10710 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

refactor: Rename privkey to seckey in eckey helpers

This commit is a simple renaming of internal function names from 'privkey' to 'seckey' to match current project terminology. No behavior of the code changes, and there is no security fix or vulnerability introduced.

bfd40bd0by Fabian Jahr+6−63 files
No security note in commit
Informational 18 AI analysisMessage 98 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1916: ecdh/ellswift: simplify seckey loading with `_scalar_set_b32_seckey`

This is a small internal cleanup in Bitcoin Core's secp256k1 cryptography library. It replaces a manual secret-key validity check (overflow plus zero) with an existing helper function that does the same thing. The behavior is intended to b…

No security-relevant behavioral change is described or evidentRefactoring only: equivalent overflow-and-zero check via existing helperReturn value logic preserved with added parentheses for warning avoidance
a37d7cc0by merge-script+8−112 files
No security note in commit
Informational 15 AI analysisMessage 86 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1911: refactor: rename `ctx` param to `ecmult_gen_ctx` where applicable

This is a pure code cleanup change: it renames a function parameter from 'ctx' to 'ecmult_gen_ctx' in several internal files and moves the asterisk in pointer declarations for style consistency. No behavior, logic, or security properties o…

3d69f4ceby merge-script+41−414 files
No security note in commit
Low 27 AI analysisMessage 86 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1910: scratch: reject sizes that overflow when added to header

This commit fixes an integer overflow bug in the library's internal scratch-space memory allocator. If a caller requested a scratch space with a size near the maximum possible value, adding the allocator's own bookkeeping header could wrap…

Integer overflow in size calculationHeap allocation size mismatchPotential buffer overflow / out-of-bounds write
439278a6by merge-script+14−22 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

refactor: rename `ctx` param to `ecmult_gen_ctx` where applicable

This commit is a pure code cleanup: it renames a function parameter from 'ctx' to 'ecmult_gen_ctx' in several related files and moves the asterisk in pointer declarations from the left side to the right side (e.g., 'type* arg' to 'type *ar…

81a5a756by Sebastian Falbesoner+41−414 files
No security note in commit
Informational 23 AI analysisMessage 86 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

scratch: reject sizes that overflow when added to header

This commit fixes a low-level arithmetic overflow check in a special internal memory-pool helper called 'scratch space'. Because the scratch API is no longer exposed to users, the bug cannot be triggered by normal callers today. The change…

Integer overflow in size calculationPotential heap buffer under-allocationDefensive hardening of internal allocator helper
3d4340d1by Sebastian Falbesoner+14−22 files
No security note in commit
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
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

refactor: replace `_get_hash_context` with direct `->hash_ctx` access

This commit is a straightforward code cleanup: it removes a tiny internal helper function called secp256k1_get_hash_context() and replaces every call with direct access to the context's hash_ctx field. The behavior is identical; no securit…

c8745f6bby Sebastian Falbesoner+67−7116 files
No security note in commit
Informational 15 AI analysisMessage 86 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Merge bitcoin-core/secp256k1#1907: release cleanup: bump version after 0.8.0

This commit is a routine post-release bookkeeping change. It bumps the project's version number from 0.8.0 to 0.8.1, marks the current code as an unreleased development snapshot, and updates the changelog accordingly. There are no code, cr…

8a700a35by merge-script+8−53 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

release cleanup: bump version after 0.8.0

This commit is a routine post-release bookkeeping change. It bumps the project's version number from 0.8.0 to 0.8.1, marks the current code as an unreleased development snapshot, and updates the changelog accordingly. There are no code, cr…

78657bf2by Sebastian Falbesoner+8−53 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-prioritybench: improve context creation in ECDH benchmarkby Sebastian Falbesoner · dfe284ed · Sep 16, 2025 · 1 fileMessage 68 · AdequateInformational 17Details
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
AI analysis · Informational 17/100

This is a small cleanup in a benchmark test file for the ECDH module. It replaces a dynamically created cryptographic context with a pre-built static one and removes the matching cleanup call. The change is about making the benchmark follow the intended API more cleanly; it does not fix an exploitable vulnerability in production code.

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 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit is a simple code cleanup: it moves a small helper function that reads the system clock from one internal test/benchmark header file to a new shared test header file. There is no change to the cryptographic library, no change to how Bitcoin transactions or keys are handled, and no security fix or vulnerability introduced.

Lower-prioritytest: introduce group order byte-array constant for deduplicationby Sebastian Falbesoner · 0c91c560 · Sep 12, 2025 · 3 filesMessage 72 · AdequateInformational 15Details
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
AI analysis · Informational 15/100

This commit is a simple cleanup in the test code. It replaces several copies of the same 32-byte secp256k1 curve group-order constant with a single shared constant. There is no change to the actual cryptographic library or to how tests behave; it only removes duplicated code.

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 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This change removes a fallback path in an internal ABI-checking shell script. It is a cleanup of build tooling with no effect on the cryptographic library or its security.

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 · AdequateLow 44Details
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
AI analysis · Low 44/100

This commit fixes a small but real security hygiene issue in the Schnorr signature code. A 32-byte buffer that holds the secret signing nonce (the random-like value 'k') was not being wiped from memory after use. The patch renames the buffer to make its sensitive role obvious and adds an explicit clear operation so the nonce does not linger in stack memory after the function returns. If an attacker could read leftover process memory, the un-cleared nonce could help forge signatures for that message/key. The fix is straightforward and aligns the Schnorr code with the existing ECDSA behavior.

Lower-priorityUse size_t instead of int for RFC6979 outlen copyby John Moffett · 960ba5f9 · Sep 1, 2025 · 1 fileMessage 60 · AdequateLow 34Details
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
AI analysis · Low 34/100

This commit fixes a variable type mismatch in the RFC6979 nonce-generation code. The code copies a `size_t` length value into an `int` variable. On platforms where `int` is 32 bits and `size_t` is 64 bits, requesting more than about 2 billion bytes of output would cause the `int` to wrap around to a negative value. That negative value would then be treated as a very large positive number in later comparisons, potentially causing the loop to run far too long or to access memory out of bounds, which could crash or hang the program. In practice, callers inside libsecp256k1 request only 32 bytes, so the bug is unlikely to be reachable from normal use.

Lower-priorityci: Add more tests for clang-clby Hennadii Stepanov · 73791243 · Aug 24, 2025 · 1 fileMessage 67 · AdequateInformational 15Details
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
AI analysis · Informational 15/100

This commit only expands the project's automated testing on Windows by adding more clang-cl build configurations to GitHub Actions. It does not change any library code, cryptographic logic, or user-facing behavior. There is no security issue here.

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 · ThinInformational 15Details
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
AI analysis · Informational 15/100

This commit only fixes a broken hyperlink in a code comment, replacing an outdated academic paper URL with a working one. No code behavior changes.

Lower-prioritydoc: Add `--gcov-ignore-parse-errors=all` option to `gcovr` invocationsby Hennadii Stepanov · 0458def5 · Aug 12, 2025 · 1 fileMessage 77 · AdequateInformational 15Details
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
AI analysis · Informational 15/100

This commit only updates developer documentation (CONTRIBUTING.md) to add a command-line flag to code-coverage reporting instructions. It does not change any program code, build scripts, cryptographic logic, or runtime behavior. There is no security relevance.

Lower-prioritydoc: Add `--merge-mode-functions=separate` option to `gcovr` invocationsby Hennadii Stepanov · 1aecce59 · Aug 11, 2025 · 1 fileMessage 85 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit only updates developer documentation. It adds a command-line option to two example gcovr (code coverage reporting) commands so they work with newer versions of the tool. There is no change to source code, build scripts, tests, or anything users run.

Lower-prioritydoc: Exclude modules' `bench_impl.h` headers from coverage reportby Hennadii Stepanov · 106a7cbf · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
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
AI analysis · Informational 15/100

This commit only updates documentation. It changes two example commands in CONTRIBUTING.md so that code-coverage reports exclude additional benchmark-only header files. There is no code change, no security fix, and no change to how the software runs.

Lower-priorityautotools, docs: Adjust help string for `--enable-coverage` optionby Hennadii Stepanov · a9e955d3 · Aug 10, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
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
AI analysis · Informational 15/100

This commit only rewords the help text shown when a developer runs ./configure --help. It changes the description of the --enable-coverage option from mentioning 'kcov' to a more generic phrase. There is no code, build logic, or security change.

Lower-prioritychore(ci): Fix typo in Dockerfile commentby Maximilian Hubert · 24ba8ff1 · Aug 9, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Maximilian Hubert

chore(ci): Fix typo in Dockerfile comment

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit fixes a spelling mistake in a comment inside a Dockerfile used for automated testing. It changes 'dkpg-dev' to 'dpkg-dev' in an explanatory note only. No actual code, package names, or build behavior is changed.