pub mod hpke;
mod open;
mod seal;
use crate::markers::{AesGcmSiv, XChaCha20Poly1305};
pub use open::{Decryptor, DecryptorBuilder, MissingSecretKey, WithSecretKey};
pub use seal::{
Encryptor, EncryptorBuilder, MissingPlaintext, MissingRecipient, WithPlaintext, WithRecipient,
};
pub use hpke::{open, seal};
mod private {
pub trait Sealed {}
}
pub trait AuthenticatedAead: private::Sealed {}
impl private::Sealed for XChaCha20Poly1305 {}
impl AuthenticatedAead for XChaCha20Poly1305 {}
impl private::Sealed for AesGcmSiv {}
impl AuthenticatedAead for AesGcmSiv {}