#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("invalid argument name: {argument_name}")]
InvalidArgument {
argument_name: &'static str,
},
#[error("signing failed")]
SigningFailed,
#[error("encryption failed")]
EncryptionFailed,
#[error("decryption failed")]
DecryptionFailed,
#[error("key generation failed")]
KeyGenerationFailed,
#[error("invalid q_bits and/or p_bits values")]
InvalidBitSizes,
#[error("arguments are not on the same EC")]
InconsistentCurves,
}
impl Error {
pub(crate) fn invalid_argument(name: &'static str) -> Self {
Error::InvalidArgument {
argument_name: name,
}
}
}
pub type Result<T> = ::std::result::Result<T, Error>;