Skip to main content

BlockModeEncrypt

Trait BlockModeEncrypt 

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

    // Provided methods
    fn encrypt_block_inout(
        &mut self,
        block: InOut<'_, '_, Array<u8, Self::BlockSize>>,
    ) { ... }
    fn encrypt_blocks_inout(
        &mut self,
        blocks: InOutBuf<'_, '_, Array<u8, Self::BlockSize>>,
    ) { ... }
    fn encrypt_block(&mut self, block: &mut Array<u8, Self::BlockSize>) { ... }
    fn encrypt_block_b2b(
        &mut self,
        in_block: &Array<u8, Self::BlockSize>,
        out_block: &mut Array<u8, Self::BlockSize>,
    ) { ... }
    fn encrypt_blocks(&mut self, blocks: &mut [Array<u8, Self::BlockSize>]) { ... }
    fn encrypt_blocks_b2b(
        &mut self,
        in_blocks: &[Array<u8, Self::BlockSize>],
        out_blocks: &mut [Array<u8, Self::BlockSize>],
    ) -> Result<(), NotEqualError> { ... }
}
Available on crate features aes or tdes only.
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 self, f: impl BlockModeEncClosure<BlockSize = Self::BlockSize>, )

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

Provided Methods§

Source

fn encrypt_block_inout( &mut self, block: InOut<'_, '_, Array<u8, Self::BlockSize>>, )

Encrypt single inout block.

Source

fn encrypt_blocks_inout( &mut self, blocks: InOutBuf<'_, '_, Array<u8, Self::BlockSize>>, )

Encrypt inout blocks.

Source

fn encrypt_block(&mut self, block: &mut Array<u8, Self::BlockSize>)

Encrypt single block in-place.

Source

fn encrypt_block_b2b( &mut self, in_block: &Array<u8, Self::BlockSize>, out_block: &mut Array<u8, Self::BlockSize>, )

Encrypt in_block and write result to out_block.

Source

fn encrypt_blocks(&mut self, blocks: &mut [Array<u8, Self::BlockSize>])

Encrypt blocks in-place.

Source

fn encrypt_blocks_b2b( &mut self, in_blocks: &[Array<u8, Self::BlockSize>], out_blocks: &mut [Array<u8, Self::BlockSize>], ) -> Result<(), NotEqualError>

Encrypt blocks buffer-to-buffer.

§Errors

Returns NotEqualError if provided in_blocks and out_blocks have different lengths.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<C: BlockCipher> BlockModeEncrypt for Encryptor<C>