use thiserror::Error;
#[derive(Debug, Error)]
pub enum CryptoError {
#[error("key generation failed: {0}")]
KeyGenerationFailed(String),
#[error("encryption failed: {0}")]
EncryptionFailed(String),
#[error("decryption failed: {0}")]
DecryptionFailed(String),
#[error("signature creation failed: {0}")]
SignatureFailed(String),
#[error("signature verification failed")]
VerificationFailed,
#[error("invalid key: {0}")]
InvalidKey(String),
#[error("invalid input: {0}")]
InvalidInput(String),
#[error("random number generator failed: {0}")]
RandomGenerationFailed(String),
}