Skip to main content
This is unreleased documentation for the main (development) branch of crypto-glue.

BlockCipherEncrypt

Trait BlockCipherEncrypt 

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

    // Provided methods
    fn encrypt_block_inout(
        &self,
        block: InOut<'_, '_, Array<u8, Self::BlockSize>>,
    ) { ... }
    fn encrypt_blocks_inout(
        &self,
        blocks: InOutBuf<'_, '_, Array<u8, Self::BlockSize>>,
    ) { ... }
    fn encrypt_block(&self, block: &mut Array<u8, Self::BlockSize>) { ... }
    fn encrypt_block_b2b(
        &self,
        in_block: &Array<u8, Self::BlockSize>,
        out_block: &mut Array<u8, Self::BlockSize>,
    ) { ... }
    fn encrypt_blocks(&self, blocks: &mut [Array<u8, Self::BlockSize>]) { ... }
    fn encrypt_blocks_b2b(
        &self,
        in_blocks: &[Array<u8, Self::BlockSize>],
        out_blocks: &mut [Array<u8, Self::BlockSize>],
    ) -> Result<(), NotEqualError> { ... }
}
Expand description

Encrypt-only functionality for block ciphers.

Required Methods§

Source

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = Self::BlockSize>, )

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

Provided Methods§

Source

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

Encrypt single inout block.

Source

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

Encrypt inout blocks.

Source

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

Encrypt single block in-place.

Source

fn encrypt_block_b2b( &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(&self, blocks: &mut [Array<u8, Self::BlockSize>])

Encrypt blocks in-place.

Source

fn encrypt_blocks_b2b( &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".

Implementations on Foreign Types§

Source§

impl BlockCipherEncrypt for Aes128

Source§

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>, )

Source§

impl BlockCipherEncrypt for Aes192

Source§

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>, )

Source§

impl BlockCipherEncrypt for Aes128Enc

Source§

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>, )

Source§

impl BlockCipherEncrypt for Aes192Enc

Source§

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>, )

Source§

impl BlockCipherEncrypt for Aes256Enc

Source§

fn encrypt_with_backend( &self, f: impl BlockCipherEncClosure<BlockSize = UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>, )

Source§

impl<Alg> BlockCipherEncrypt for &Alg
where Alg: BlockCipherEncrypt,

Implementors§