[][src]Struct secp256k1::schnorrsig::PublicKey

pub struct PublicKey(_);

A Schnorr public key, used for verification of Schnorr signatures

Methods

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: Signing>(
    secp: &Secp256k1<C>,
    keypair: &KeyPair
) -> PublicKey
[src]

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: Verification>(
    &mut self,
    secp: &Secp256k1<V>,
    tweak: &[u8]
) -> Result<bool, Error>
[src]

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: Verification>(
    &self,
    secp: &Secp256k1<V>,
    tweaked_key: &Self,
    tweaked_parity: bool,
    tweak: [u8; 32]
) -> bool
[src]

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 From<XOnlyPublicKey> for PublicKey[src]

Creates a new Schnorr public key from a FFI x-only public key

impl From<PublicKey> for PublicKey[src]

impl Ord for PublicKey[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl PartialOrd<PublicKey> for PublicKey[src]

impl Clone for PublicKey[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl PartialEq<PublicKey> for PublicKey[src]

impl Eq for PublicKey[src]

impl Copy for PublicKey[src]

impl Display for PublicKey[src]

impl Debug for PublicKey[src]

impl Hash for PublicKey[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl FromStr for PublicKey[src]

type Err = Error

The associated error which can be returned from parsing.

impl LowerHex for PublicKey[src]

impl CPtr for PublicKey[src]

type Target = XOnlyPublicKey

Auto Trait Implementations

impl Unpin for PublicKey

impl Sync for PublicKey

impl Send for PublicKey

impl UnwindSafe for PublicKey

impl RefUnwindSafe for PublicKey

Blanket Implementations

impl<T> From<T> for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]