pub struct AegisCipher(/* private fields */);Expand description
AEGIS-256X2 cipher bound to a single (key, nonce) pair.
All operations consume self, making it a compile-time error to reuse
the same (key, nonce) pair across two different calls.
See the module documentation for performance guidance and
trade-offs versus ChaCha20Poly1305Cipher.
Implementations§
Source§impl AegisCipher
impl AegisCipher
Sourcepub fn new(key: &[u8; 32], nonce: &[u8; 32]) -> Self
pub fn new(key: &[u8; 32], nonce: &[u8; 32]) -> Self
Initialises the cipher. The AEGIS key schedule runs here.
Sourcepub fn encrypt(
self,
aad: &[u8],
plaintext: &[u8],
ciphertext: &mut [u8],
) -> Result<(), Error>
pub fn encrypt( self, aad: &[u8], plaintext: &[u8], ciphertext: &mut [u8], ) -> Result<(), Error>
Encrypts plaintext and writes ciphertext || tag into ciphertext.
ciphertext must be at least plaintext.len() + TAG_LEN bytes long.
Sourcepub fn decrypt(
self,
aad: &[u8],
ciphertext: &[u8],
plaintext: &mut [u8],
) -> Result<(), Error>
pub fn decrypt( self, aad: &[u8], ciphertext: &[u8], plaintext: &mut [u8], ) -> Result<(), Error>
Decrypts and verifies ciphertext, writing plaintext into plaintext.
ciphertext must end with a TAG_LEN-byte tag; plaintext must be
at least ciphertext.len() - TAG_LEN bytes long.
On tag failure, plaintext is zeroed before returning Err.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AegisCipher
impl RefUnwindSafe for AegisCipher
impl Send for AegisCipher
impl Sync for AegisCipher
impl Unpin for AegisCipher
impl UnsafeUnpin for AegisCipher
impl UnwindSafe for AegisCipher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more