Struct schnorrkel::context::SigningContext[][src]

pub struct SigningContext(_);

Schnorr signing context

We expect users to have seperate SigningContexts for each role that signature play in their protocol. These SigningContexts may be global lazy_static!s, or perhaps constants in future.

To sign a message, apply the appropriate inherent method to create a signature transcript.

You should use merlin::Transcripts directly if you must do anything more complex, like use signatures in larger zero-knoweldge protocols or sign several components but only reveal one later.

We declare these methods #[inline(always)] because rustc does not handle large returns as efficently as one might like. https://github.com/rust-random/rand/issues/817

Implementations

impl SigningContext[src]

pub fn new(context: &[u8]) -> SigningContext[src]

Initialize a signing context from a static byte string that identifies the signature’s role in the larger protocol.

pub fn bytes(&self, bytes: &[u8]) -> Transcript[src]

Initalize an owned signing transcript on a message provided as a byte array.

Avoid this method when processing large slices because it calls merlin::Transcript::append_message directly and merlin is designed for domain seperation, not performance.

pub fn xof<D: ExtendableOutput>(&self, h: D) -> Transcript[src]

Initalize an owned signing transcript on a message provided as a hash function with extensible output mode (XOF) by finalizing the hash and extracting 32 bytes from XOF.

pub fn hash256<D: FixedOutput<OutputSize = U32>>(&self, h: D) -> Transcript[src]

Initalize an owned signing transcript on a message provided as a hash function with 256 bit output.

pub fn hash512<D: FixedOutput<OutputSize = U64>>(&self, h: D) -> Transcript[src]

Initalize an owned signing transcript on a message provided as a hash function with 512 bit output, usually a gross over kill.

Trait Implementations

impl Clone for SigningContext[src]

Auto Trait Implementations

impl RefUnwindSafe for SigningContext

impl Send for SigningContext

impl Sync for SigningContext

impl Unpin for SigningContext

impl UnwindSafe for SigningContext

Blanket Implementations

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

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

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

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

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

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

type Output = T

Should always be Self

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

type Owned = T

The resulting type after obtaining ownership.

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<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]