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,
},
}
Expand description
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 theSignature
, or the curve point for aPublicKey
. -
A problem with the format of
s
, a scalar, in theSignature
. 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
Fields
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
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.
NotMarkedSchnorrkel
Signature not marked as schnorrkel, maybe try ed25519 instead.
MuSigAbsent
Fields
musig_stage: MultiSignatureStage
Identifies the multi-signature protocol stage during which the error occured.
There is no record of the preceeding multi-signautre protocol stage for the specified public key.
MuSigInconsistent
Fields
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.
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.
Trait Implementations
sourceimpl Clone for SignatureError
impl Clone for SignatureError
sourcepub fn clone(&self) -> SignatureError
pub fn clone(&self) -> SignatureError
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SignatureError
impl Debug for SignatureError
sourceimpl Display for SignatureError
impl Display for SignatureError
sourceimpl Hash for SignatureError
impl Hash for SignatureError
sourceimpl PartialEq<SignatureError> for SignatureError
impl PartialEq<SignatureError> for SignatureError
sourcepub fn eq(&self, other: &SignatureError) -> bool
pub fn eq(&self, other: &SignatureError) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcepub fn ne(&self, other: &SignatureError) -> bool
pub fn ne(&self, other: &SignatureError) -> bool
This method tests for !=
.
impl Copy for SignatureError
impl Eq for SignatureError
impl StructuralEq for SignatureError
impl StructuralPartialEq for SignatureError
Auto Trait Implementations
impl RefUnwindSafe for SignatureError
impl Send for SignatureError
impl Sync for SignatureError
impl Unpin for SignatureError
impl UnwindSafe for SignatureError
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CallHasher for T where
T: Hash,
impl<T> CallHasher for T where
T: Hash,
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
sourcepub fn unchecked_into(self) -> T
pub fn unchecked_into(self) -> T
The counterpart to unchecked_from
.