Remove deprecated `secp256k1_context_no_precomp` pointer
What changed, and why it matters
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. The change is a routine API cleanup, not a security fix, but any external code still using the old name will fail to compile or link after updating.
Developers depending on libsecp256k1 should replace any remaining use of secp256k1_context_no_precomp with secp256k1_context_static before upgrading. No runtime security mitigation is needed.
Security signals we found
Removal of a deprecated public API symbol
No change to cryptographic logic, memory handling, or context semantics
Potential downstream build breakage for consumers still using the deprecated alias
Evidence from the diff
The commit deletes the deprecated public symbol secp256k1_context_no_precomp, which was an alias to secp256k1_context_static. It removes the declaration in include/secp256k1.h, the definition in src/secp256k1.c, and the alias-equality test in src/tests.c. The CHANGELOG records this as a removal. There is no functional change to the library’s behavior; only the old name is dropped.
Changed components
include/secp256k1.hsrc/secp256k1.csrc/tests.cPublic C APIInspect captured patch +1 / −8
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef82c73..92b9b1f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- CMake: Shared libraries built with CMake on OpenBSD and NetBSD now create the full versioned filename (e.g. `libsecp256k1.so.6.2` instead of `libsecp256k1.so.6`) and symlink chain, matching the behavior of GNU Autotools builds.
#### Removed
+- Removed previously deprecated pointer `secp256k1_context_no_precomp`. Use `secp256k1_context_static` instead.
- Removed previously deprecated function alias `secp256k1_schnorrsig_sign`. Use `secp256k1_schnorrsig_sign32` instead.
## [0.7.1] - 2026-01-26
diff --git a/include/secp256k1.h b/include/secp256k1.h
index 984972c..f67852e 100644
--- a/include/secp256k1.h
+++ b/include/secp256k1.h
@@ -236,10 +236,6 @@ typedef int (*secp256k1_nonce_function)(
*/
SECP256K1_API const secp256k1_context * const secp256k1_context_static;
-/** Deprecated alias for secp256k1_context_static. */
-SECP256K1_API const secp256k1_context * const secp256k1_context_no_precomp
-SECP256K1_DEPRECATED("Use secp256k1_context_static instead");
-
/** Perform basic self tests (to be used in conjunction with secp256k1_context_static)
*
* This function performs self tests that detect some serious usage errors and
diff --git a/src/secp256k1.c b/src/secp256k1.c
index 91b9e82..6f6a218 100644
--- a/src/secp256k1.c
+++ b/src/secp256k1.c
@@ -74,7 +74,6 @@ static const secp256k1_context secp256k1_context_static_ = {
0
};
const secp256k1_context * const secp256k1_context_static = &secp256k1_context_static_;
-const secp256k1_context * const secp256k1_context_no_precomp = &secp256k1_context_static_;
/* Helper function that determines if a context is proper, i.e., is not the static context or a copy thereof.
*
diff --git a/src/tests.c b/src/tests.c
index c0ab8aa..7fb51da 100644
--- a/src/tests.c
+++ b/src/tests.c
@@ -194,9 +194,6 @@ static void run_ec_illegal_argument_tests(void) {
}
static void run_static_context_tests(int use_prealloc) {
- /* Check that deprecated secp256k1_context_no_precomp is an alias to secp256k1_context_static. */
- CHECK(secp256k1_context_no_precomp == secp256k1_context_static);
-
{
unsigned char seed[32] = {0x17};
Why this scored 21/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.