Struct PrivateKey
pub struct PrivateKey {
pub compressed: bool,
pub network: NetworkKind,
pub inner: SecretKey,
}
Expand description
A Bitcoin ECDSA private key
Fields§
§compressed: bool
Whether this private key should be serialized as compressed
network: NetworkKind
The network kind on which this key should be used
inner: SecretKey
The actual ECDSA key
Implementations§
§impl PrivateKey
impl PrivateKey
pub 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.
pub 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
pub 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
pub 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
pub 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
pub 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.
pub fn from_wif(wif: &str) -> Result<PrivateKey, FromWifError>
pub fn from_wif(wif: &str) -> Result<PrivateKey, FromWifError>
Parse WIF encoded private key.
pub 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§
§impl Clone for PrivateKey
impl Clone for PrivateKey
§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 more§impl Debug for PrivateKey
impl Debug for PrivateKey
§impl<'de> Deserialize<'de> for PrivateKey
impl<'de> Deserialize<'de> for PrivateKey
§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>,
§impl Display for PrivateKey
impl Display for PrivateKey
§impl FromStr for PrivateKey
impl FromStr for PrivateKey
§type Err = FromWifError
type Err = FromWifError
§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 more§impl Index<RangeFull> for PrivateKey
impl Index<RangeFull> for PrivateKey
§impl PartialEq for PrivateKey
impl PartialEq for PrivateKey
§impl Serialize for PrivateKey
impl Serialize for PrivateKey
§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 Send for PrivateKey
impl Sync for PrivateKey
impl RefUnwindSafe for PrivateKey
impl Unpin for PrivateKey
impl UnwindSafe for PrivateKey
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request