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
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
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
musig_stage: MultiSignatureStageIdentifies 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
musig_stage: MultiSignatureStageIdentifies the multi-signature protocol stage during which the error occured.
Trait Implementations§
Source§impl Clone for SignatureError
impl Clone for SignatureError
Source§fn clone(&self) -> SignatureError
fn clone(&self) -> SignatureError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SignatureError
impl Debug for SignatureError
Source§impl Display for SignatureError
impl Display for SignatureError
Source§impl Hash for SignatureError
impl Hash for SignatureError
Source§impl PartialEq for SignatureError
impl PartialEq for SignatureError
impl Copy for SignatureError
impl Eq for SignatureError
impl StructuralPartialEq for SignatureError
Auto Trait Implementations§
impl Freeze for SignatureError
impl RefUnwindSafe for SignatureError
impl Send for SignatureError
impl Sync for SignatureError
impl Unpin for SignatureError
impl UnwindSafe for SignatureError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CallHasher for Twhere
T: Hash,
impl<T> CallHasher for Twhere
T: Hash,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.