logo
pub trait BlockEncryptMut: BlockSizeUser + Sized {
    fn encrypt_with_backend_mut(
        &mut self,
        f: impl BlockClosure<BlockSize = Self::BlockSize>
    ); fn encrypt_block_inout_mut(&mut self, block: InOut<'_, '_, Block<Self>>) { ... }
fn encrypt_blocks_inout_mut(
        &mut self,
        blocks: InOutBuf<'_, '_, Block<Self>>
    ) { ... }
fn encrypt_block_mut(&mut self, block: &mut Block<Self>) { ... }
fn encrypt_block_b2b_mut(
        &mut self,
        in_block: &Block<Self>,
        out_block: &mut Block<Self>
    ) { ... }
fn encrypt_blocks_mut(&mut self, blocks: &mut [Block<Self>]) { ... }
fn encrypt_blocks_b2b_mut(
        &mut self,
        in_blocks: &[Block<Self>],
        out_blocks: &mut [Block<Self>]
    ) -> Result<(), NotEqualError> { ... }
fn encrypt_padded_inout_mut<'inp, 'out, P: Padding<Self::BlockSize>>(
        self,
        data: InOutBufReserved<'inp, 'out, u8>
    ) -> Result<&'out [u8], PadError> { ... }
fn encrypt_padded_mut<P: Padding<Self::BlockSize>>(
        self,
        buf: &mut [u8],
        msg_len: usize
    ) -> Result<&[u8], PadError> { ... }
fn encrypt_padded_b2b_mut<'a, P: Padding<Self::BlockSize>>(
        self,
        msg: &[u8],
        out_buf: &'a mut [u8]
    ) -> Result<&'a [u8], PadError> { ... }
fn encrypt_padded_vec_mut<P: Padding<Self::BlockSize>>(
        self,
        msg: &[u8]
    ) -> Vec<u8> { ... } }
Expand description

Encrypt-only functionality for block ciphers and modes with mutable access to self.

The main use case for this trait is blocks modes, but it also can be used for hardware cryptographic engines which require &mut self access to an underlying hardware peripheral.

Required methods

Encrypt data using backend provided to the rank-2 closure.

Provided methods

Encrypt single inout block.

Encrypt inout blocks.

Encrypt single block in-place.

Encrypt in_block and write result to out_block.

Encrypt blocks in-place.

Encrypt blocks buffer-to-buffer.

Returns NotEqualError if provided in_blocks and out_blocks have different lengths.

This is supported on crate feature block-padding only.

Pad input and encrypt. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

This is supported on crate feature block-padding only.

Pad input and encrypt in-place. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

This is supported on crate feature block-padding only.

Pad input and encrypt buffer-to-buffer. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

This is supported on crate features block-padding and alloc only.

Pad input and encrypt into a newly allocated Vec. Returns resulting ciphertext Vec.

Implementors