Trait cipher::block::BlockCipher[][src]

pub trait BlockCipher {
    type BlockSize: ArrayLength<u8>;
    type ParBlocks: ArrayLength<Block<Self>>;
    fn encrypt_block(&self, block: &mut Block<Self>);
fn decrypt_block(&self, block: &mut Block<Self>); fn encrypt_blocks(&self, blocks: &mut ParBlocks<Self>) { ... }
fn encrypt_slice(&self, blocks: &mut [Block<Self>]) { ... }
fn decrypt_blocks(&self, blocks: &mut ParBlocks<Self>) { ... }
fn decrypt_slice(&self, blocks: &mut [Block<Self>]) { ... } }
Expand description

The trait which defines in-place encryption and decryption over single block or several blocks in parallel.

Associated Types

Size of the block in bytes

Number of blocks which can be processed in parallel by cipher implementation

Required methods

Encrypt block in-place

Decrypt block in-place

Provided methods

Encrypt several blocks in parallel using instruction level parallelism if possible.

If ParBlocks equals to 1 it’s equivalent to encrypt_block.

Encrypt a slice of blocks, leveraging parallelism when available.

Decrypt several blocks in parallel using instruction level parallelism if possible.

If ParBlocks equals to 1 it’s equivalent to decrypt_block.

Decrypt a slice of blocks, leveraging parallelism when available.

Implementations on Foreign Types

Implementors