use thiserror::Error;
#[derive(Debug, Error)]
pub enum CryptoError {
#[error("invalid key length: expected {expected}, got {actual}")]
InvalidKeyLength {
expected: usize,
actual: usize,
},
#[error("invalid signature length: expected {expected}, got {actual}")]
InvalidSignatureLength {
expected: usize,
actual: usize,
},
#[error("invalid public key: {0}")]
InvalidPublicKey(String),
#[error("signature verification failed")]
SignatureVerificationFailed,
#[error("invalid hex encoding")]
InvalidHexEncoding,
#[error("invalid base64 encoding")]
InvalidBase64Encoding,
#[error("I/O error: {0}")]
IoError(String),
}
pub type CryptoResult<T> = Result<T, CryptoError>;