[−][src]Trait threefish_cipher::BlockCipher
The trait which defines in-place encryption and decryption over single block or several blocks in parallel.
Associated Types
type KeySize: ArrayLength<u8>
Key size in bytes with which cipher guaranteed to be initialized
type BlockSize: ArrayLength<u8>
Size of the block in bytes
type ParBlocks: ArrayLength<GenericArray<u8, Self::BlockSize>>
Number of blocks which can be processed in parallel by cipher implementation
Required Methods
fn new(key: &GenericArray<u8, Self::KeySize>) -> Self
Create new block cipher instance from key with fixed size.
fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)
Encrypt block in-place
fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)
Decrypt block in-place
Provided Methods
fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>
Create new block cipher instance from key with variable size.
Default implementation will accept only keys with length equal to
KeySize, but some ciphers can accept range of key lengths.
fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)
Encrypt several blocks in parallel using instruction level parallelism if possible.
If ParBlocks equals to 1 it's equivalent to encrypt_block.
fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)
Decrypt several blocks in parallel using instruction level parallelism if possible.
If ParBlocks equals to 1 it's equivalent to decrypt_block.
Implementors
impl BlockCipher for Threefish1024[src]
impl BlockCipher for Threefish1024type BlockSize = U128
type KeySize = U128
type ParBlocks = U1
fn new(key: &GenericArray<u8, U128>) -> Threefish1024[src]
fn new(key: &GenericArray<u8, U128>) -> Threefish1024fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>[src]
fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)impl BlockCipher for Threefish256[src]
impl BlockCipher for Threefish256type BlockSize = U32
type KeySize = U32
type ParBlocks = U1
fn new(key: &GenericArray<u8, U32>) -> Threefish256[src]
fn new(key: &GenericArray<u8, U32>) -> Threefish256fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>[src]
fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)impl BlockCipher for Threefish512[src]
impl BlockCipher for Threefish512type BlockSize = U64
type KeySize = U64
type ParBlocks = U1
fn new(key: &GenericArray<u8, U64>) -> Threefish512[src]
fn new(key: &GenericArray<u8, U64>) -> Threefish512fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)[src]
fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>[src]
fn new_varkey(key: &[u8]) -> Result<Self, InvalidKeyLength>fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn encrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)[src]
fn decrypt_blocks(
&self,
blocks: &mut GenericArray<GenericArray<u8, Self::BlockSize>, Self::ParBlocks>
)