1use thiserror::Error;
2
3use crate::encoding::MarshallingError;
4
5#[derive(Error, Debug)]
6pub enum SignatureError {
7 #[error("marshalling error")]
8 MarshallingError(#[from] MarshallingError),
9 #[error("io error")]
10 IoError(#[from] std::io::Error),
11 #[error("signature is not valid")]
12 InvalidSignature(String),
13 #[error("wrong signature length")]
14 InvalidSignatureLength(String),
15 #[error("signature is not canonical")]
16 SignatureNotCanonical,
17 #[error("R is not canonical")]
18 RNotCanonical,
19 #[error("R has small order")]
20 RSmallOrder,
21 #[error("public key is not canonical")]
22 PublicKeyNotCanonical,
23 #[error("public key has small order")]
24 PublicKeySmallOrder,
25}