pub struct ChaCha20Poly1305Stream { /* private fields */ }Expand description
STREAM chunked AEAD using XChaCha20-Poly1305.
Nonce layout: 19-byte prefix ‖ 4-byte counter (big-endian) ‖ 1-byte flag.
Provide a 19-byte prefix to init.
Trait Implementations§
Source§impl Debug for ChaCha20Poly1305Stream
impl Debug for ChaCha20Poly1305Stream
Source§impl StreamingAead for ChaCha20Poly1305Stream
impl StreamingAead for ChaCha20Poly1305Stream
Source§fn init(key: &[u8], nonce: &[u8], aad: &[u8]) -> Result<Self, CryptoError>
fn init(key: &[u8], nonce: &[u8], aad: &[u8]) -> Result<Self, CryptoError>
Initialise the stream.
nonce must be exactly 19 bytes (XChaCha20 nonce prefix).
Source§fn encrypt_update(
&mut self,
chunk: &[u8],
out: &mut [u8],
) -> Result<usize, CryptoError>
fn encrypt_update( &mut self, chunk: &[u8], out: &mut [u8], ) -> Result<usize, CryptoError>
Feed a plaintext chunk; write ciphertext bytes into
out.
Returns the number of bytes written.Source§fn encrypt_finalize(self, out: &mut [u8]) -> Result<[u8; 16], CryptoError>
fn encrypt_finalize(self, out: &mut [u8]) -> Result<[u8; 16], CryptoError>
Flush remaining ciphertext into
out and return the 16-byte authentication tag.Source§fn decrypt_update(
&mut self,
chunk: &[u8],
out: &mut [u8],
) -> Result<usize, CryptoError>
fn decrypt_update( &mut self, chunk: &[u8], out: &mut [u8], ) -> Result<usize, CryptoError>
Feed a ciphertext chunk; write plaintext bytes into
out.
Returns the number of bytes written.Source§fn decrypt_finalize(self, expected_tag: &[u8]) -> Result<(), CryptoError>
fn decrypt_finalize(self, expected_tag: &[u8]) -> Result<(), CryptoError>
Verify
expected_tag in constant time and flush remaining plaintext.Auto Trait Implementations§
impl Freeze for ChaCha20Poly1305Stream
impl RefUnwindSafe for ChaCha20Poly1305Stream
impl Send for ChaCha20Poly1305Stream
impl Sync for ChaCha20Poly1305Stream
impl Unpin for ChaCha20Poly1305Stream
impl UnsafeUnpin for ChaCha20Poly1305Stream
impl UnwindSafe for ChaCha20Poly1305Stream
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