cipher

Trait BlockEncryptMut

Source
pub trait BlockEncryptMut: BlockSizeUser + Sized {
    // Required method
    fn encrypt_with_backend_mut(
        &mut self,
        f: impl BlockClosure<BlockSize = Self::BlockSize>,
    );

    // Provided methods
    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§

Source

fn encrypt_with_backend_mut( &mut self, f: impl BlockClosure<BlockSize = Self::BlockSize>, )

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

Provided Methods§

Source

fn encrypt_block_inout_mut(&mut self, block: InOut<'_, '_, Block<Self>>)

Encrypt single inout block.

Source

fn encrypt_blocks_inout_mut(&mut self, blocks: InOutBuf<'_, '_, Block<Self>>)

Encrypt inout blocks.

Source

fn encrypt_block_mut(&mut self, block: &mut Block<Self>)

Encrypt single block in-place.

Source

fn encrypt_block_b2b_mut( &mut self, in_block: &Block<Self>, out_block: &mut Block<Self>, )

Encrypt in_block and write result to out_block.

Source

fn encrypt_blocks_mut(&mut self, blocks: &mut [Block<Self>])

Encrypt blocks in-place.

Source

fn encrypt_blocks_b2b_mut( &mut self, in_blocks: &[Block<Self>], out_blocks: &mut [Block<Self>], ) -> Result<(), NotEqualError>

Encrypt blocks buffer-to-buffer.

Returns NotEqualError if provided in_blocks and out_blocks have different lengths.

Source

fn encrypt_padded_inout_mut<'inp, 'out, P: Padding<Self::BlockSize>>( self, data: InOutBufReserved<'inp, 'out, u8>, ) -> Result<&'out [u8], PadError>

Pad input and encrypt. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

Source

fn encrypt_padded_mut<P: Padding<Self::BlockSize>>( self, buf: &mut [u8], msg_len: usize, ) -> Result<&[u8], PadError>

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

Returns PadError if length of output buffer is not sufficient.

Source

fn encrypt_padded_b2b_mut<'a, P: Padding<Self::BlockSize>>( self, msg: &[u8], out_buf: &'a mut [u8], ) -> Result<&'a [u8], PadError>

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

Returns PadError if length of output buffer is not sufficient.

Source

fn encrypt_padded_vec_mut<P: Padding<Self::BlockSize>>( self, msg: &[u8], ) -> Vec<u8>

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§