pub struct PrivateKey {
pub compressed: bool,
pub network: NetworkKind,
pub inner: SecretKey,
}Expand description
A Bitcoin ECDSA private key
Fields§
§compressed: boolWhether this private key should be serialized as compressed
network: NetworkKindThe network kind on which this key should be used
inner: SecretKeyThe actual ECDSA key
Implementations§
Source§impl PrivateKey
impl PrivateKey
Sourcepub fn generate(network: impl Into<NetworkKind>) -> PrivateKey
pub fn generate(network: impl Into<NetworkKind>) -> PrivateKey
Constructs new compressed ECDSA private key using the secp256k1 algorithm and a secure random number generator.
Sourcepub fn new(key: SecretKey, network: impl Into<NetworkKind>) -> PrivateKey
pub fn new(key: SecretKey, network: impl Into<NetworkKind>) -> PrivateKey
Constructs compressed ECDSA private key from the provided generic Secp256k1 private key and the specified network
Sourcepub fn new_uncompressed(
key: SecretKey,
network: impl Into<NetworkKind>,
) -> PrivateKey
pub fn new_uncompressed( key: SecretKey, network: impl Into<NetworkKind>, ) -> PrivateKey
Constructs uncompressed (legacy) ECDSA private key from the provided generic Secp256k1 private key and the specified network
Sourcepub fn public_key<C>(&self, secp: &Secp256k1<C>) -> PublicKeywhere
C: Signing,
pub fn public_key<C>(&self, secp: &Secp256k1<C>) -> PublicKeywhere
C: Signing,
Creates a public key from this private key
Sourcepub fn from_slice(
data: &[u8],
network: impl Into<NetworkKind>,
) -> Result<PrivateKey, Error>
pub fn from_slice( data: &[u8], network: impl Into<NetworkKind>, ) -> Result<PrivateKey, Error>
Deserialize a private key from a slice
Sourcepub fn fmt_wif(&self, fmt: &mut dyn Write) -> Result<(), Error>
pub fn fmt_wif(&self, fmt: &mut dyn Write) -> Result<(), Error>
Format the private key to WIF format.
Sourcepub fn from_wif(wif: &str) -> Result<PrivateKey, FromWifError>
pub fn from_wif(wif: &str) -> Result<PrivateKey, FromWifError>
Parse WIF encoded private key.
Sourcepub fn negate(&self) -> PrivateKey
pub fn negate(&self) -> PrivateKey
Returns a new private key with the negated secret value.
The resulting key corresponds to the same x-only public key (identical x-coordinate) but with the opposite y-coordinate parity. This is useful for ensuring compatibility with specific public key formats and BIP-340 requirements.
Trait Implementations§
Source§impl Clone for PrivateKey
impl Clone for PrivateKey
Source§fn clone(&self) -> PrivateKey
fn clone(&self) -> PrivateKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PrivateKey
impl Debug for PrivateKey
Source§impl<'de> Deserialize<'de> for PrivateKey
Available on crate feature serde only.
impl<'de> Deserialize<'de> for PrivateKey
serde only.Source§fn deserialize<D>(d: D) -> Result<PrivateKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(d: D) -> Result<PrivateKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl Display for PrivateKey
impl Display for PrivateKey
Source§impl FromStr for PrivateKey
impl FromStr for PrivateKey
Source§type Err = FromWifError
type Err = FromWifError
Source§fn from_str(s: &str) -> Result<PrivateKey, FromWifError>
fn from_str(s: &str) -> Result<PrivateKey, FromWifError>
s to return a value of this type. Read moreSource§impl<Ctx> GeneratableKey<Ctx> for PrivateKeywhere
Ctx: ScriptContext,
impl<Ctx> GeneratableKey<Ctx> for PrivateKeywhere
Ctx: ScriptContext,
Source§type Options = PrivateKeyGenerateOptions
type Options = PrivateKeyGenerateOptions
generate_with_entropySource§fn generate_with_entropy(
options: <PrivateKey as GeneratableKey<Ctx>>::Options,
entropy: <PrivateKey as GeneratableKey<Ctx>>::Entropy,
) -> Result<GeneratedKey<PrivateKey, Ctx>, <PrivateKey as GeneratableKey<Ctx>>::Error>
fn generate_with_entropy( options: <PrivateKey as GeneratableKey<Ctx>>::Options, entropy: <PrivateKey as GeneratableKey<Ctx>>::Entropy, ) -> Result<GeneratedKey<PrivateKey, Ctx>, <PrivateKey as GeneratableKey<Ctx>>::Error>
Source§fn generate(
options: Self::Options,
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
fn generate( options: Self::Options, ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
Source§fn generate_with_aux_rand(
options: Self::Options,
rng: &mut (impl CryptoRng + RngCore),
) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
fn generate_with_aux_rand( options: Self::Options, rng: &mut (impl CryptoRng + RngCore), ) -> Result<GeneratedKey<Self, Ctx>, Self::Error>
Source§impl Index<RangeFull> for PrivateKey
impl Index<RangeFull> for PrivateKey
Source§impl<Ctx> IntoDescriptorKey<Ctx> for PrivateKeywhere
Ctx: ScriptContext,
impl<Ctx> IntoDescriptorKey<Ctx> for PrivateKeywhere
Ctx: ScriptContext,
Source§fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>
fn into_descriptor_key(self) -> Result<DescriptorKey<Ctx>, KeyError>
DescriptorKey within the requested ScriptContextSource§impl PartialEq for PrivateKey
impl PartialEq for PrivateKey
Source§impl Serialize for PrivateKey
Available on crate feature serde only.
impl Serialize for PrivateKey
serde only.Source§fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl Copy for PrivateKey
impl Eq for PrivateKey
impl StructuralPartialEq for PrivateKey
Auto Trait Implementations§
impl Freeze for PrivateKey
impl RefUnwindSafe for PrivateKey
impl Send for PrivateKey
impl Sync for PrivateKey
impl Unpin for PrivateKey
impl UnwindSafe for PrivateKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.