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

pub enum SignatureError {
    EquationFalse,
    PointDecompressionError,
    ScalarFormatError,
    BytesLengthError {
        name: &'static str,
        description: &'static str,
        length: usize,
    },
    NotMarkedSchnorrkel,
    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

NotMarkedSchnorrkel

Signature not marked as schnorrkel, maybe try ed25519 instead.

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 Clone for SignatureError[src]

impl Copy for SignatureError[src]

impl Debug for SignatureError[src]

impl Display for SignatureError[src]

impl Eq for SignatureError[src]

impl Hash for SignatureError[src]

impl PartialEq<SignatureError> for SignatureError[src]

impl StructuralEq for SignatureError[src]

impl StructuralPartialEq for SignatureError[src]

Auto Trait Implementations

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

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> ToString for T where
    T: Display + ?Sized
[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<V, T> VZip<V> for T where
    V: MultiLane<T>,