Trait cipher::block::BlockEncrypt

source ·
pub trait BlockEncrypt: BlockSizeUser + Sized {
    // Required method
    fn encrypt_with_backend(
        &self,
        f: impl BlockClosure<BlockSize = Self::BlockSize>,
    );

    // Provided methods
    fn encrypt_block_inout(&self, block: InOut<'_, '_, Block<Self>>) { ... }
    fn encrypt_blocks_inout(&self, blocks: InOutBuf<'_, '_, Block<Self>>) { ... }
    fn encrypt_block(&self, block: &mut Block<Self>) { ... }
    fn encrypt_block_b2b(
        &self,
        in_block: &Block<Self>,
        out_block: &mut Block<Self>,
    ) { ... }
    fn encrypt_blocks(&self, blocks: &mut [Block<Self>]) { ... }
    fn encrypt_blocks_b2b(
        &self,
        in_blocks: &[Block<Self>],
        out_blocks: &mut [Block<Self>],
    ) -> Result<(), NotEqualError> { ... }
    fn encrypt_padded_inout<'inp, 'out, P: Padding<Self::BlockSize>>(
        &self,
        data: InOutBufReserved<'inp, 'out, u8>,
    ) -> Result<&'out [u8], PadError> { ... }
    fn encrypt_padded<'a, P: Padding<Self::BlockSize>>(
        &self,
        buf: &'a mut [u8],
        msg_len: usize,
    ) -> Result<&'a [u8], PadError> { ... }
    fn encrypt_padded_b2b<'a, P: Padding<Self::BlockSize>>(
        &self,
        msg: &[u8],
        out_buf: &'a mut [u8],
    ) -> Result<&'a [u8], PadError> { ... }
    fn encrypt_padded_vec<P: Padding<Self::BlockSize>>(
        &self,
        msg: &[u8],
    ) -> Vec<u8> { ... }
}
Expand description

Encrypt-only functionality for block ciphers.

Required Methods§

source

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

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

Provided Methods§

source

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

Encrypt single inout block.

source

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

Encrypt inout blocks.

source

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

Encrypt single block in-place.

source

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

Encrypt in_block and write result to out_block.

source

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

Encrypt blocks in-place.

source

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

Encrypt blocks buffer-to-buffer.

Returns NotEqualError if provided in_blocks and out_blocks have different lengths.

source

fn encrypt_padded_inout<'inp, 'out, P: Padding<Self::BlockSize>>( &self, data: InOutBufReserved<'inp, 'out, u8>, ) -> Result<&'out [u8], PadError>

Pad input and encrypt. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

source

fn encrypt_padded<'a, P: Padding<Self::BlockSize>>( &self, buf: &'a mut [u8], msg_len: usize, ) -> Result<&'a [u8], PadError>

Pad input and encrypt in-place. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

source

fn encrypt_padded_b2b<'a, P: Padding<Self::BlockSize>>( &self, msg: &[u8], out_buf: &'a mut [u8], ) -> Result<&'a [u8], PadError>

Pad input and encrypt buffer-to-buffer. Returns resulting ciphertext slice.

Returns PadError if length of output buffer is not sufficient.

source

fn encrypt_padded_vec<P: Padding<Self::BlockSize>>(&self, msg: &[u8]) -> Vec<u8>

Pad input and encrypt into a newly allocated Vec. Returns resulting ciphertext Vec.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<Alg: BlockEncrypt> BlockEncrypt for &Alg

source§

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

Implementors§