use cypher::{EcPkInvalid, EcSkInvalid, EcdhError};
#[derive(Clone, Eq, PartialEq, Debug, Display, Error, From)]
#[display(doc_comments)]
pub enum EncryptionError {
ExceedingMaxLength(usize),
#[from]
Ecdh(EcdhError),
#[from]
InvalidPk(EcPkInvalid),
#[from]
InvalidSk(EcSkInvalid),
#[from]
ChaCha(chacha20poly1305::aead::Error),
}
#[derive(Debug, Clone, PartialEq, Eq, Display, Error, From)]
#[display(doc_comments)]
pub enum HandshakeError {
UnexpectedVersion { version: u8, act: u8 },
InvalidEphemeralPubkey,
InvalidInitiatorPubkey,
InvalidActLen {
act: u8,
expected: usize,
found: usize,
},
#[from]
#[from(chacha20poly1305::aead::Error)]
#[display(inner)]
Encryption(EncryptionError),
Complete,
}
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug, Display, Error)]
#[display("incomplete Noise handshake")]
pub struct IncompleteHandshake;
#[derive(Clone, Eq, PartialEq, Debug, Display, Error, From)]
#[display(doc_comments)]
pub enum NoiseError {
PayloadNotEmpty,
HandshakeComplete,
#[display(inner)]
#[from]
Encryption(EncryptionError),
}