#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Error from `snow`: {0}")]
Snow(#[from] snow::Error),
#[error("Error from `crypto_secretstream`: {0}")]
SecretStream(crypto_secretstream::aead::Error),
#[error("Cipher IO is not set.")]
NoIoSetError,
#[error("{0}")]
StdIoError(#[from] std::io::Error),
#[error("IK pattern requires remote public key")]
MissingRemoteKey,
#[error("XX pattern does not use remote public key at initialization")]
UnexpectedRemoteKey,
}
impl From<crypto_secretstream::aead::Error> for Error {
fn from(value: crypto_secretstream::aead::Error) -> Self {
Error::SecretStream(value)
}
}
impl From<Error> for std::io::Error {
fn from(value: Error) -> Self {
std::io::Error::other(value)
}
}