Struct bitcoin::XOnlyPublicKey
source · [−]pub struct XOnlyPublicKey(_);
Expand description
A x-only public key, used for verification of Schnorr signatures and serialized according to BIP-340.
Implementations
Obtains a raw const pointer suitable for use with FFI functions
Obtains a raw mutable pointer suitable for use with FFI functions
Creates a new Schnorr public key from a Schnorr key pair.
Creates a Schnorr public key directly from a slice
Errors
Returns Error::InvalidPublicKey
if the length of the data slice is not 32 bytes or the
slice does not represent a valid Secp256k1 point x coordinate
Serialize the key as a byte-encoded x coordinate value (32 bytes).
pub fn tweak_add_assign<V>(
&mut self,
secp: &Secp256k1<V>,
tweak: &[u8]
) -> Result<Parity, Error> where
V: Verification,
pub fn tweak_add_assign<V>(
&mut self,
secp: &Secp256k1<V>,
tweak: &[u8]
) -> Result<Parity, Error> where
V: Verification,
Tweak an x-only PublicKey by adding the generator multiplied with the given tweak to it.
Return
An opaque type representing the parity of the tweaked key, this should be provided to
tweak_add_check
which can be used to verify a tweak more efficiently than regenerating
it and checking equality.
Error
If the resulting key would be invalid or if the tweak was not a 32-byte length slice.
pub fn tweak_add_check<V>(
&self,
secp: &Secp256k1<V>,
tweaked_key: &XOnlyPublicKey,
tweaked_parity: Parity,
tweak: [u8; 32]
) -> bool where
V: Verification,
pub fn tweak_add_check<V>(
&self,
secp: &Secp256k1<V>,
tweaked_key: &XOnlyPublicKey,
tweaked_parity: Parity,
tweak: [u8; 32]
) -> bool where
V: Verification,
Verify that a tweak produced by tweak_add_assign
was computed correctly.
Should be called on the original untweaked key. Takes the tweaked key and
output parity from tweak_add_assign
as input.
Currently this is not much more efficient than just recomputing the tweak and checking equality. However, in future this API will support batch verification, which is significantly faster, so it is wise to design protocols with this in mind.
Return
True if tweak and check is successful, false otherwise.
Trait Implementations
type Target = XOnlyPublicKey
pub fn deserialize<D>(
d: D
) -> Result<XOnlyPublicKey, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub fn deserialize<D>(
d: D
) -> Result<XOnlyPublicKey, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Performs the conversion.
Performs the conversion.
Creates a new Schnorr public key from a FFI x-only public key
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
pub fn serialize<S>(
&self,
s: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
pub fn serialize<S>(
&self,
s: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for XOnlyPublicKey
impl Send for XOnlyPublicKey
impl Sync for XOnlyPublicKey
impl Unpin for XOnlyPublicKey
impl UnwindSafe for XOnlyPublicKey
Blanket Implementations
Mutably borrows from an owned value. Read more