What changed, and why it matters
This commit simply stops publicly re-exporting a secp256k1 type called `Verification` from two Rust Bitcoin key modules. It is a routine API cleanup: the type is still available directly from the underlying secp256k1 library, so no cryptographic capability is removed, only a convenience shortcut. There is no security bug or vulnerability here.
No security action needed. Downstream maintainers should update any `use bitcoin::crypto::key::Verification` or `use crypto::key::Verification` imports to `use secp256k1::Verification` when upgrading.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch removes Verification from pub use secp256k1::{constants, Parity, Verification}; in bitcoin/src/crypto/key.rs and crypto/src/key.rs, leaving constants and Parity. The commit message explains this is because recent secp256k1 versions provide a global context, making an explicit Verification context re-export unnecessary. This is a breaking public-API change for downstream code that imported Verification via these modules, but it is not a security fix and does not alter cryptographic behavior.
Changed components
bitcoin/src/crypto/key.rscrypto/src/key.rsInspect captured patch +2 / −2
diff --git a/bitcoin/src/crypto/key.rs b/bitcoin/src/crypto/key.rs
index de717466..bf1c4aae 100644
--- a/bitcoin/src/crypto/key.rs
+++ b/bitcoin/src/crypto/key.rs
@@ -12,7 +12,7 @@ use crate::sign_message::MessageSignature;
use crate::taproot::{TapNodeHash, TapTweakHash, TapTweakHashExt as _};
#[rustfmt::skip] // Keep public re-exports separate.
-pub use secp256k1::{constants, Parity, Verification};
+pub use secp256k1::{constants, Parity};
#[doc(no_inline)]
pub use crypto::key::{
FromSliceError, FromWifError, InvalidAddressVersionError, InvalidBase58PayloadLengthError,
diff --git a/crypto/src/key.rs b/crypto/src/key.rs
index e0a6ff36..6f6a1fa2 100644
--- a/crypto/src/key.rs
+++ b/crypto/src/key.rs
@@ -33,7 +33,7 @@ use crate::ecdsa;
use crate::hex::{self, DecodeFixedLengthBytesError};
#[rustfmt::skip] // Keep public re-exports separate.
-pub use secp256k1::{constants, Parity, Verification};
+pub use secp256k1::{constants, Parity};
#[doc(no_inline)]
pub use self::error::{
FromSliceError, InvalidAddressVersionError, InvalidBase58PayloadLengthError, ParseKeypairError,
Why this scored 20/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.