use crate::signature::Encoding;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error("invalid PEM public key: {0}")]
InvalidPublicKey(String),
#[error("invalid PEM secret key: {0}")]
InvalidSecretKey(String),
#[error("invalid HMAC secret length")]
InvalidSecretLength,
#[error("signature decode failed ({encoding:?}): {reason}")]
SignatureDecode {
encoding: Encoding,
reason: String,
},
#[error("symmetric verification failed")]
SymmetricVerifyFailed,
#[error("asymmetric verification failed")]
AsymmetricVerifyFailed,
#[cfg(feature = "snap-bi")]
#[error("snap-bi recipe error: {0}")]
SnapBi(String),
#[cfg(feature = "webhook")]
#[error("webhook verifier error: {0}")]
Webhook(String),
}
pub type Result<T> = core::result::Result<T, Error>;