use crate::ciphersuite::*;
use crate::credentials::*;
use crate::group::*;
use crate::messages::{proposals::*, *};
use crate::schedule::{message_secrets::*, *};
use serde::{Deserialize, Serialize};
use tls_codec::*;
pub(crate) mod ciphertext;
pub(crate) mod codec;
pub(crate) mod message;
pub(crate) mod plaintext;
pub(crate) mod sender;
pub(crate) mod validation;
pub(crate) use ciphertext::*;
pub(crate) use errors::*;
pub(crate) use plaintext::*;
pub(crate) use sender::*;
pub mod errors;
pub use message::*;
pub use sender::*;
pub use validation::*;
#[cfg(test)]
mod test_framing;
#[derive(
PartialEq, Clone, Copy, Debug, Serialize, Deserialize, TlsDeserialize, TlsSerialize, TlsSize,
)]
#[repr(u8)]
pub enum WireFormat {
MlsPlaintext = 1,
MlsCiphertext = 2,
}
#[derive(Clone, Copy, PartialEq, Debug)]
pub(crate) struct FramingParameters<'a> {
aad: &'a [u8],
wire_format: WireFormat,
}
impl<'a> FramingParameters<'a> {
pub(crate) fn new(aad: &'a [u8], wire_format: impl Into<WireFormat>) -> Self {
Self {
aad,
wire_format: wire_format.into(),
}
}
pub(crate) fn aad(&self) -> &'a [u8] {
self.aad
}
pub(crate) fn wire_format(&self) -> WireFormat {
self.wire_format
}
}