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§
Sourcefn encrypt_with_backend(
&self,
f: impl BlockClosure<BlockSize = Self::BlockSize>,
)
fn encrypt_with_backend( &self, f: impl BlockClosure<BlockSize = Self::BlockSize>, )
Encrypt data using backend provided to the rank-2 closure.
Provided Methods§
Sourcefn encrypt_block_inout(&self, block: InOut<'_, '_, Block<Self>>)
fn encrypt_block_inout(&self, block: InOut<'_, '_, Block<Self>>)
Encrypt single inout
block.
Sourcefn encrypt_blocks_inout(&self, blocks: InOutBuf<'_, '_, Block<Self>>)
fn encrypt_blocks_inout(&self, blocks: InOutBuf<'_, '_, Block<Self>>)
Encrypt inout
blocks.
Sourcefn encrypt_block(&self, block: &mut Block<Self>)
fn encrypt_block(&self, block: &mut Block<Self>)
Encrypt single block in-place.
Sourcefn encrypt_block_b2b(&self, in_block: &Block<Self>, out_block: &mut Block<Self>)
fn encrypt_block_b2b(&self, in_block: &Block<Self>, out_block: &mut Block<Self>)
Encrypt in_block
and write result to out_block
.
Sourcefn encrypt_blocks(&self, blocks: &mut [Block<Self>])
fn encrypt_blocks(&self, blocks: &mut [Block<Self>])
Encrypt blocks in-place.
Sourcefn encrypt_blocks_b2b(
&self,
in_blocks: &[Block<Self>],
out_blocks: &mut [Block<Self>],
) -> Result<(), NotEqualError>
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.
Sourcefn encrypt_padded_inout<'inp, 'out, P: Padding<Self::BlockSize>>(
&self,
data: InOutBufReserved<'inp, 'out, u8>,
) -> Result<&'out [u8], PadError>
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.
Sourcefn encrypt_padded<'a, P: Padding<Self::BlockSize>>(
&self,
buf: &'a mut [u8],
msg_len: usize,
) -> Result<&'a [u8], PadError>
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.
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.