Struct cashweb::secp256k1::schnorrsig::PublicKey [−][src]
A Schnorr public key, used for verification of Schnorr signatures
Implementations
impl PublicKey
[src]
pub fn as_ptr(&self) -> *const XOnlyPublicKey
[src]
Obtains a raw const pointer suitable for use with FFI functions
pub fn as_mut_ptr(&mut self) -> *mut XOnlyPublicKey
[src]
Obtains a raw mutable pointer suitable for use with FFI functions
pub fn from_keypair<C>(secp: &Secp256k1<C>, keypair: &KeyPair) -> PublicKey where
C: Signing,
[src]
C: Signing,
Creates a new Schnorr public key from a Schnorr key pair
pub fn from_slice(data: &[u8]) -> Result<PublicKey, Error>
[src]
Creates a Schnorr public key directly from a slice
pub fn serialize(&self) -> [u8; 32]
[src]
Serialize the key as a byte-encoded pair of values. In compressed form the y-coordinate is represented by only a single bit, as x determines it up to one bit.
pub fn tweak_add_assign<V>(
&mut self,
secp: &Secp256k1<V>,
tweak: &[u8]
) -> Result<bool, Error> where
V: Verification,
[src]
&mut self,
secp: &Secp256k1<V>,
tweak: &[u8]
) -> Result<bool, Error> where
V: Verification,
Tweak an x-only PublicKey by adding the generator multiplied with the given tweak to it.
Returns a boolean representing the parity of the tweaked key, which can be provided to
tweak_add_check
which can be used to verify a tweak more efficiently than regenerating
it and checking equality. Will return an 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: &PublicKey,
tweaked_parity: bool,
tweak: [u8; 32]
) -> bool where
V: Verification,
[src]
&self,
secp: &Secp256k1<V>,
tweaked_key: &PublicKey,
tweaked_parity: bool,
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.
Trait Implementations
impl CPtr for PublicKey
[src]
type Target = XOnlyPublicKey
pub fn as_c_ptr(&self) -> *const <PublicKey as CPtr>::Target
[src]
pub fn as_mut_c_ptr(&mut self) -> *mut <PublicKey as CPtr>::Target
[src]
impl Clone for PublicKey
[src]
impl Copy for PublicKey
[src]
impl Debug for PublicKey
[src]
impl Display for PublicKey
[src]
impl Eq for PublicKey
[src]
impl From<PublicKey> for PublicKey
[src]
impl From<XOnlyPublicKey> for PublicKey
[src]
Creates a new Schnorr public key from a FFI x-only public key
pub fn from(pk: XOnlyPublicKey) -> PublicKey
[src]
impl FromStr for PublicKey
[src]
type Err = Error
The associated error which can be returned from parsing.
pub fn from_str(s: &str) -> Result<PublicKey, Error>
[src]
impl Hash for PublicKey
[src]
pub fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl LowerHex for PublicKey
[src]
impl Ord for PublicKey
[src]
pub fn cmp(&self, other: &PublicKey) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<PublicKey> for PublicKey
[src]
impl PartialOrd<PublicKey> for PublicKey
[src]
pub fn partial_cmp(&self, other: &PublicKey) -> Option<Ordering>
[src]
pub fn lt(&self, other: &PublicKey) -> bool
[src]
pub fn le(&self, other: &PublicKey) -> bool
[src]
pub fn gt(&self, other: &PublicKey) -> bool
[src]
pub fn ge(&self, other: &PublicKey) -> bool
[src]
impl StructuralEq for PublicKey
[src]
impl StructuralPartialEq for PublicKey
[src]
Auto Trait Implementations
impl RefUnwindSafe for PublicKey
[src]
impl Send for PublicKey
[src]
impl Sync for PublicKey
[src]
impl Unpin for PublicKey
[src]
impl UnwindSafe for PublicKey
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
[src]
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,