cipher

Trait BlockDecrypt

Source
pub trait BlockDecrypt: BlockSizeUser {
    // Required method
    fn decrypt_with_backend(
        &self,
        f: impl BlockClosure<BlockSize = Self::BlockSize>,
    );

    // Provided methods
    fn decrypt_block_inout(&self, block: InOut<'_, '_, Block<Self>>) { ... }
    fn decrypt_blocks_inout(&self, blocks: InOutBuf<'_, '_, Block<Self>>) { ... }
    fn decrypt_block(&self, block: &mut Block<Self>) { ... }
    fn decrypt_block_b2b(
        &self,
        in_block: &Block<Self>,
        out_block: &mut Block<Self>,
    ) { ... }
    fn decrypt_blocks(&self, blocks: &mut [Block<Self>]) { ... }
    fn decrypt_blocks_b2b(
        &self,
        in_blocks: &[Block<Self>],
        out_blocks: &mut [Block<Self>],
    ) -> Result<(), NotEqualError> { ... }
    fn decrypt_padded_inout<'inp, 'out, P: Padding<Self::BlockSize>>(
        &self,
        data: InOutBuf<'inp, 'out, u8>,
    ) -> Result<&'out [u8], UnpadError> { ... }
    fn decrypt_padded<'a, P: Padding<Self::BlockSize>>(
        &self,
        buf: &'a mut [u8],
    ) -> Result<&'a [u8], UnpadError> { ... }
    fn decrypt_padded_b2b<'a, P: Padding<Self::BlockSize>>(
        &self,
        in_buf: &[u8],
        out_buf: &'a mut [u8],
    ) -> Result<&'a [u8], UnpadError> { ... }
    fn decrypt_padded_vec<P: Padding<Self::BlockSize>>(
        &self,
        buf: &[u8],
    ) -> Result<Vec<u8>, UnpadError> { ... }
}
Expand description

Decrypt-only functionality for block ciphers.

Required Methods§

Source

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

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

Provided Methods§

Source

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

Decrypt single inout block.

Source

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

Decrypt inout blocks.

Source

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

Decrypt single block in-place.

Source

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

Decrypt in_block and write result to out_block.

Source

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

Decrypt blocks in-place.

Source

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

Decrypt blocks buffer-to-buffer.

Returns NotEqualError if provided in_blocks and out_blocks have different lengths.

Source

fn decrypt_padded_inout<'inp, 'out, P: Padding<Self::BlockSize>>( &self, data: InOutBuf<'inp, 'out, u8>, ) -> Result<&'out [u8], UnpadError>

Decrypt input and unpad it. Returns resulting ciphertext slice.

Returns UnpadError if padding is malformed or if input length is not multiple of Self::BlockSize.

Source

fn decrypt_padded<'a, P: Padding<Self::BlockSize>>( &self, buf: &'a mut [u8], ) -> Result<&'a [u8], UnpadError>

Decrypt input and unpad it in-place. Returns resulting ciphertext slice.

Returns UnpadError if padding is malformed or if input length is not multiple of Self::BlockSize.

Source

fn decrypt_padded_b2b<'a, P: Padding<Self::BlockSize>>( &self, in_buf: &[u8], out_buf: &'a mut [u8], ) -> Result<&'a [u8], UnpadError>

Decrypt input and unpad it buffer-to-buffer. Returns resulting ciphertext slice.

Returns UnpadError if padding is malformed or if input length is not multiple of Self::BlockSize.

Source

fn decrypt_padded_vec<P: Padding<Self::BlockSize>>( &self, buf: &[u8], ) -> Result<Vec<u8>, UnpadError>

Decrypt input and unpad it in a newly allocated Vec. Returns resulting ciphertext Vec.

Returns UnpadError if padding is malformed or if input length is not multiple of Self::BlockSize.

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.

Implementations on Foreign Types§

Source§

impl<Alg: BlockDecrypt> BlockDecrypt for &Alg

Source§

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

Implementors§