pub struct StreamingAes256CbcHmacEncryptor {
ciphertext_buffer: CiphertextBuffer,
plaintext_buffer: Vec<u8>,
encryptor_state: EncryptorState,
}Expand description
Streaming AES-256-CBC + HMAC-SHA256 encryptor. The IV is generated at construction time
and the HMAC is computed over IV || ciphertext, matching the wire format consumed by
StreamingAes256CbcHmacDecryptor. Because the MAC depends on the entire ciphertext,
the complete wire stream (IV, ciphertext) is only emitted once update is
called with last_block = true, as a single ChunkEncryptionResult::FinalEncryptedChunk.
Fields§
§ciphertext_buffer: CiphertextBuffer§plaintext_buffer: Vec<u8>§encryptor_state: EncryptorStateImplementations§
Source§impl StreamingAes256CbcHmacEncryptor
impl StreamingAes256CbcHmacEncryptor
Sourcepub(crate) fn try_new(
key: &SymmetricCryptoKey,
plaintext_size: usize,
) -> Result<Self, StreamCreationError>
pub(crate) fn try_new( key: &SymmetricCryptoKey, plaintext_size: usize, ) -> Result<Self, StreamCreationError>
Creates a new encryptor with a fresh random IV. plaintext_size is the total number of
plaintext bytes that will be fed to the encryptor; it is used to pre-allocate the ciphertext
buffer to its exact final size so it never has to be resized.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StreamingAes256CbcHmacEncryptor
impl RefUnwindSafe for StreamingAes256CbcHmacEncryptor
impl Send for StreamingAes256CbcHmacEncryptor
impl Sync for StreamingAes256CbcHmacEncryptor
impl Unpin for StreamingAes256CbcHmacEncryptor
impl UnsafeUnpin for StreamingAes256CbcHmacEncryptor
impl UnwindSafe for StreamingAes256CbcHmacEncryptor
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more