[][src]Enum schnorrkel::errors::SignatureError

pub enum SignatureError {
    EquationFalse,
    PointDecompressionError,
    ScalarFormatError,
    BytesLengthError {
        name: &'static str,
        description: &'static str,
        length: usize,
    },
    MuSigAbsent {
        musig_stage: MultiSignatureStage,
    },
    MuSigInconsistent {
        musig_stage: MultiSignatureStage,
        duplicate: bool,
    },
}

Errors which may occur while processing signatures and keypairs.

All these errors represent a failed signature when they occur in the context of verifying a sitgnature, including in deserializaing for verification. We expose the distinction among them primarily for debugging purposes.

This error may arise due to:

  • Being given bytes with a length different to what was expected.

  • A problem decompressing r, a curve point, in the Signature, or the curve point for a PublicKey.

  • A problem with the format of s, a scalar, in the Signature. This is only raised if the high-bit of the scalar was set. (Scalars must only be constructed from 255-bit integers.)

  • Multi-signature protocol errors

Variants

EquationFalse

A signature verification equation failed.

We emphasise that all variants represent a failed signature, not only this one.

PointDecompressionError

Invalid point provided, usually to verify methods.

ScalarFormatError

Invalid scalar provided, usually to Signature::from_bytes.

BytesLengthError

An error in the length of bytes handed to a constructor.

To use this, pass a string specifying the name of the type which is returning the error, and the length in bytes which its constructor expects.

Fields of BytesLengthError

name: &'static str

Identifies the type returning the error

description: &'static str

Describes the type returning the error

length: usize

Length expected by the constructor in bytes

MuSigAbsent

There is no record of the preceeding multi-signautre protocol stage for the specified public key.

Fields of MuSigAbsent

musig_stage: MultiSignatureStage

Identifies the multi-signature protocol stage during which the error occured.

MuSigInconsistent

For this public key, there are either conflicting records for the preceeding multi-signautre protocol stage or else duplicate duplicate records for the current stage.

Fields of MuSigInconsistent

musig_stage: MultiSignatureStage

Identifies the multi-signature protocol stage during which the error occured.

duplicate: bool

Set true if the stage was reached correctly once but this duplicate disagrees.

Trait Implementations

impl Display for SignatureError[src]

impl Debug for SignatureError[src]

impl PartialEq<SignatureError> for SignatureError[src]

impl Eq for SignatureError[src]

impl Hash for SignatureError[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 Copy for SignatureError[src]

impl Clone for SignatureError[src]

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

Performs copy-assignment from source. Read more

impl Fail for SignatureError[src]

fn name(&self) -> Option<&str>[src]

Returns the "name" of the error. Read more

fn cause(&self) -> Option<&(dyn Fail + 'static)>[src]

Returns a reference to the underlying cause of this failure, if it is an error that wraps other errors. Read more

fn backtrace(&self) -> Option<&Backtrace>[src]

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more

fn context<D>(self, context: D) -> Context<D> where
    D: Display + Send + Sync + 'static, 
[src]

Provides context for this failure. Read more

fn compat(self) -> Compat<Self>[src]

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto 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, U> Into for T where
    U: From<T>, 
[src]

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

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

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

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

type Owned = T

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

impl<T> Same for T

type Output = T

Should always be Self

impl<T> AsFail for T where
    T: Fail
[src]