Struct schnorr_fun::binonce::Nonce

source ·
pub struct Nonce<Z = NonZero>(pub [Point<Normal, Public, Z>; 2]);
Expand description

A nonce (pair of points) that each party must share with the others in the first stage of signing.

The type argument determines whether the nonces can be Zero or not. The musig spec specifies that the aggregate nonce is allowed to be zero to avoid having to abort the protocol in this case.

Tuple Fields§

§0: [Point<Normal, Public, Z>; 2]

Implementations§

source§

impl<Z: ZeroChoice> Nonce<Z>

source

pub fn from_bytes(bytes: [u8; 66]) -> Option<Self>

Reads the pair of nonces from 66 bytes (two 33-byte serialized points).

If either pair of 33 bytes is [0u8;32] that point is interpreted as Zero.

source§

impl<Z> Nonce<Z>

source

pub fn conditional_negate(&mut self, needs_negation: bool)

Negate the two nonces

source

pub fn to_bytes(&self) -> [u8; 66]

Serializes a public nonce as as 66 bytes (two 33-byte serialized points).

If either point is Zero it will be serialized as [0u8;32].

Trait Implementations§

source§

impl<'de, Z: ZeroChoice> BorrowDecode<'de> for Nonce<Z>

Available on crate feature bincode only.
source§

fn borrow_decode<D: BorrowDecoder<'de>>( decoder: &mut D ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
source§

impl<Z: Clone> Clone for Nonce<Z>

source§

fn clone(&self) -> Nonce<Z>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Z: Debug> Debug for Nonce<Z>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Z: ZeroChoice> Decode for Nonce<Z>

Available on crate feature bincode only.
source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
source§

impl<'de, Z: ZeroChoice> Deserialize<'de> for Nonce<Z>

Available on crate feature serde only.
source§

fn deserialize<Deser: Deserializer<'de>>( deserializer: Deser ) -> Result<Nonce<Z>, Deser::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Z> Display for Nonce<Z>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Displays as hex.

source§

impl<Z> Encode for Nonce<Z>

Available on crate feature bincode only.
source§

fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError>

Encode a given type.
source§

impl<Z: ZeroChoice> FromStr for Nonce<Z>

source§

fn from_str(hex: &str) -> Result<Nonce<Z>, HexError>

Parses the string as hex and interprets tries to convert the resulting byte array into the desired value.

§

type Err = HexError

The associated error which can be returned from parsing.
source§

impl<Z: PartialEq> PartialEq for Nonce<Z>

source§

fn eq(&self, other: &Nonce<Z>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Z> Serialize for Nonce<Z>

Available on crate feature serde only.
source§

fn serialize<Ser: Serializer>( &self, serializer: Ser ) -> Result<Ser::Ok, Ser::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl<Z: Copy> Copy for Nonce<Z>

source§

impl<Z: Eq> Eq for Nonce<Z>

source§

impl<Z> StructuralPartialEq for Nonce<Z>

Auto Trait Implementations§

§

impl<Z> RefUnwindSafe for Nonce<Z>
where Z: RefUnwindSafe,

§

impl<Z> Send for Nonce<Z>
where Z: Send,

§

impl<Z> Sync for Nonce<Z>
where Z: Sync,

§

impl<Z> Unpin for Nonce<Z>
where Z: Unpin,

§

impl<Z> UnwindSafe for Nonce<Z>
where Z: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,