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 41 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: Use `ALIGNMENT` macro instead of hardcoded valueby Hennadii Stepanov · 153eea20 · Oct 27, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

bench: Use `ALIGNMENT` macro instead of hardcoded value

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This is a tiny code cleanup in a benchmark program. It replaces a hardcoded number (16) with a named constant (ALIGNMENT) when calculating memory size. There is no security issue here.

Lower-priorityecmult_multi: reduce strauss memory usage by 30%by Jonas Nick · 26166c4f · Oct 17, 2025 · 1 fileMessage 45 · ThinInformational 12Details
Commit message · Jonas Nick

ecmult_multi: reduce strauss memory usage by 30%

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 12/100

This commit is a straightforward memory optimization for a cryptographic calculation routine. It reduces the amount of temporary memory used during batch elliptic-curve multiplications by storing intermediate values in smaller integer types. There is no indication of a security bug being fixed.

Lower-priorityci: Switch to macOS 15 Sequoia Intel-based imageby Hennadii Stepanov · 8bc50b72 · Oct 15, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · Hennadii Stepanov

ci: Switch to macOS 15 Sequoia Intel-based image

The `macos-13` image has been deprecated and will be unavailable soon.
See: https://github.com/actions/runner-images/issues/13045.

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only changes the version of the macOS virtual machine used by the project's automated testing system. It replaces an older, soon-to-be-retired macOS test image with a newer one. There is no change to the actual cryptographic code, no bug fix, and no security-relevant behavior change.

Lower-priorityci: Drop workaround for Valgrind older than 3.20.0by Hennadii Stepanov · c09519f0 · Oct 15, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Drop workaround for Valgrind older than 3.20.0

62/100 · AdequateMessage clarity
✓ Specific, 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 simply removes a workaround in the continuous integration (CI) script that added a compiler flag for older versions of Valgrind. It does not change any cryptographic code, wallet logic, or network behavior, and has no direct security impact on the library itself.

Lower-priorityci: Drop default for `inputs.command` in `run-in-docker-action`by Hennadii Stepanov · 15d01480 · Oct 14, 2025 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Drop default for `inputs.command` in `run-in-docker-action`

This change decreases coupling.

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
documentation-only discount
AI analysis · Informational 15/100

This is a minor GitHub Actions CI cleanup. It removes a default shell command from a reusable workflow action and instead makes callers explicitly provide the command. There is no security-relevant change to the actual Bitcoin cryptography code or to how containers are built or executed.

Lower-priorityci: Use YAML anchor and aliases for repeated "CI script" stepsby Hennadii Stepanov · 1decc49a · Oct 14, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Use YAML anchor and aliases for repeated "CI script" steps

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
documentation-only discount
AI analysis · Informational 15/100

This change is a routine cleanup of the project's automated testing configuration file. It replaces repeated copies of the same CI step with YAML anchors and aliases, which is purely a maintainability improvement. There is no change to the actual commands run, the software code, or any security-sensitive behavior.

Lower-priorityci, refactor: Generalize use of `matrix.configuration.env_vars`by Hennadii Stepanov · dff1bc10 · Oct 14, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

ci, refactor: Generalize use of `matrix.configuration.env_vars`

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

This is a routine cleanup of the project's automated testing configuration. It renames and restructures how environment variables are grouped in GitHub Actions workflow files so the setup is more consistent across different test jobs. There is no change to the actual cryptographic code, no new capability for an attacker, and no security fix.

Lower-priorityci: Use YAML anchor and aliases for repeated "Print logs" stepsby Hennadii Stepanov · 4b644da1 · Oct 14, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Use YAML anchor and aliases for repeated "Print logs" steps

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
documentation-only discount
AI analysis · Informational 15/100

This commit is a routine cleanup of the project's automated testing configuration file. It replaces several copy-pasted 'Print logs' steps with a single reusable template reference, making the file shorter and easier to maintain. There is no change to the actual software code, no change to how tests run, and no security relevance.

Lower-priorityci: Bump `actions/checkout` versionby Hennadii Stepanov · a889cd93 · Oct 14, 2025 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · Hennadii Stepanov

ci: Bump `actions/checkout` version

See https://github.com/actions/checkout/releases.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply updates the version of a GitHub-provided action used to check out source code during automated testing. There is no indication of a security vulnerability or code change affecting the secp256k1 library itself.

Lower-priorityci: Use YAML anchor and aliases for repeated "Checkout" stepsby Hennadii Stepanov · 574c2f30 · Oct 14, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Use YAML anchor and aliases for repeated "Checkout" steps

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
documentation-only discount
AI analysis · Informational 15/100

This commit is a routine cleanup of the project's automated testing configuration file. It replaces many repeated copies of the same 'checkout the code' step with a single shared template reference. There is no change to the actual software code, no change to security settings, and no security relevance.

Lower-priorityci: Use clang-snapshot in "MSan" jobby Hennadii Stepanov · 53585f93 · Oct 14, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Hennadii Stepanov

ci: Use clang-snapshot in "MSan" job

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 change updates the project's automated testing setup. It adds a second compiler ('clang-snapshot', a preview version of the next Clang release) to the MemorySanitizer (MSan) CI job and installs an extra compiler support package needed by that snapshot compiler. There is no change to the cryptographic library code itself, no bug fix, and no security patch.

Lower-priorityFix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSanby Hennadii Stepanov · 6894c964 · Oct 14, 2025 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

Fix Clang 21+ `-Wuninitialized-const-pointer` warning when using MSan

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

This is a build-system hygiene patch that suppresses a compiler warning in test-only sanitizer code. It does not change runtime behavior, fix a vulnerability, or affect how Bitcoin/crypto operations work. The change only tells Clang 21+ to ignore a new warning when using MemorySanitizer during tests.

Lower-priorityci: Set `DEBIAN_FRONTEND=noninteractive`by Hennadii Stepanov · f163c358 · Oct 13, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Set `DEBIAN_FRONTEND=noninteractive`

This suppresses `debconf: unable to initialize frontend: ...` warnings.

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This change only adjusts how a Docker container used for automated testing installs Debian packages. It sets an environment variable that tells Debian's package installer not to prompt for user input, which simply removes harmless warning messages during automated builds. There is no security issue here.

Lower-priorityci: Bump `docker/build-push-action` versionby Hennadii Stepanov · 70ae177c · Oct 13, 2025 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · Hennadii Stepanov

ci: Bump `docker/build-push-action` version

See https://github.com/docker/build-push-action/releases.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply updates a GitHub Actions helper used to build Docker containers from version 5 to version 6. It is a routine maintenance change to the project's continuous integration (CI) configuration and does not alter the cryptographic library code, build scripts, or any software that end users run.

Lower-priorityci: Drop `tags` input for `docker/build-push-action`by Hennadii Stepanov · b2a95a42 · Oct 13, 2025 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Drop `tags` input for `docker/build-push-action`

The `tags` input is unused for caching.

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
documentation-only discount
AI analysis · Informational 15/100

This is a routine cleanup of the project's automated CI (Continuous Integration) configuration. It removes an unused 'tag' input from GitHub Actions Docker build steps and switches to referencing the most recently built Docker image by ID instead of by tag. There is no security issue here.

Lower-priorityci: Add `scope` parameter to `cache-{to,from}` optionsby Hennadii Stepanov · 122014ed · Oct 13, 2025 · 2 filesMessage 77 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Add `scope` parameter to `cache-{to,from}` options

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

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit changes how Bitcoin Core's libsecp256k1 project caches Docker images in its automated testing system. It adds a 'scope' label to GitHub Actions cache settings so that separate caches are kept for different CPU architectures (like x86_64 vs ARM). Previously, all architectures shared one cache, meaning only the most recently used image was kept. This is a CI infrastructure improvement, not a security fix.

Lower-prioritytest: support running specific tests/modules targetsby furszy · 953f7b00 · Oct 1, 2025 · 2 filesMessage 95 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit adds a new command-line option (-t or --target) to the project's internal test runner so developers can run a single test or a whole module instead of the entire test suite. It is a testing convenience feature with no apparent security relevance.

Lower-prioritytest: Add option to display all available testsby furszy · 95b9953e · Oct 1, 2025 · 2 filesMessage 94 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit adds a simple command-line option to the project's test runner that prints a list of all available tests and modules. It is a pure test-infrastructure convenience feature with no effect on the cryptographic library or any production code paths.

Lower-prioritytest: add --log option to display tests executionby furszy · 2f4546ce · Oct 1, 2025 · 2 filesMessage 82 · StrongInformational 15Details
Commit message · furszy

test: add --log option to display tests execution

When enabled (--log=1), shows test start, completion, and execution time.

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit adds a new optional '--log=1' command-line flag to the project's internal test runner so users can see when each test starts, finishes, and how long it took. It also adds a small safety check to make sure the test framework is initialized before tests are run. There is no change to cryptographic code, no network code, and no behavior that affects normal users of the library.

Lower-prioritytest: add --help for command-line optionsby furszy · 0302c1a3 · Oct 1, 2025 · 2 filesMessage 90 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit adds a --help / -h command-line option to the project's internal test suite. It simply prints usage instructions and exits. There is no security-relevant change to any cryptographic code, network handling, or production library behavior.

Lower-prioritytest: adapt modules to the new test infrastructureby furszy · 9ec3bfe2 · Oct 1, 2025 · 8 filesMessage 95 · StrongInformational 15Details
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
AI analysis · Informational 15/100

This commit is purely a test-code refactoring. It reorganizes how the project's test cases are registered and run, allowing individual tests to be selected and run in parallel. No production cryptographic code is changed, and there is no indication this fixes or introduces a security vulnerability.

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.

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.