pub trait Aead: Sized {
const TAG_SIZE: usize;
const NONCE_SIZE: usize;
// Required methods
fn encrypt_in_place(
&self,
in_out: &mut [u8],
nonce: &[u8],
aad: &[u8],
) -> Tag;
fn decrypt_in_place(
&self,
in_out: &mut [u8],
nonce: &[u8],
aad: &[u8],
tag: &[u8],
) -> Result<(), AeadError>;
// Provided methods
fn encrypt(&self, plaintext: &[u8], nonce: &[u8], aad: &[u8]) -> Vec<u8> ⓘ { ... }
fn decrypt(
&self,
ciphertext: &[u8],
nonce: &[u8],
aad: &[u8],
) -> Result<Vec<u8>, AeadError> { ... }
}Required Associated Constants§
Required Methods§
fn encrypt_in_place(&self, in_out: &mut [u8], nonce: &[u8], aad: &[u8]) -> Tag
fn decrypt_in_place( &self, in_out: &mut [u8], nonce: &[u8], aad: &[u8], tag: &[u8], ) -> Result<(), AeadError>
Provided Methods§
fn encrypt(&self, plaintext: &[u8], nonce: &[u8], aad: &[u8]) -> Vec<u8> ⓘ
fn decrypt( &self, ciphertext: &[u8], nonce: &[u8], aad: &[u8], ) -> Result<Vec<u8>, AeadError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".