ckb_crypto/secp/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use secp256k1::Error as SecpError;
use thiserror::Error;

/// The error type wrap SecpError
#[derive(Error, Debug, PartialEq, Eq)]
pub enum Error {
    /// Invalid privkey
    #[error("Invalid privkey")]
    InvalidPrivKey,
    /// Invalid pubkey
    #[error("Invalid pubkey")]
    InvalidPubKey,
    /// Invalid signature
    #[error("Invalid signature")]
    InvalidSignature,
    /// Invalid message
    #[error("Invalid message")]
    InvalidMessage,
    /// Invalid recovery_id
    #[error("Invalid recovery_id")]
    InvalidRecoveryId,
    /// Any error not part of this list.
    #[error("{0}")]
    Other(String),
}

impl From<SecpError> for Error {
    fn from(e: SecpError) -> Self {
        match e {
            SecpError::InvalidPublicKey => Error::InvalidPubKey,
            SecpError::InvalidSecretKey => Error::InvalidPrivKey,
            SecpError::InvalidMessage => Error::InvalidMessage,
            SecpError::InvalidRecoveryId => Error::InvalidRecoveryId,
            _ => Error::InvalidSignature,
        }
    }
}