pub trait Mode {
// Required methods
fn block_size(&self) -> usize;
fn encrypt(
&mut self,
iv: &mut [u8],
dst: &mut [u8],
src: &[u8]
) -> Result<()>;
fn decrypt(
&mut self,
iv: &mut [u8],
dst: &mut [u8],
src: &[u8]
) -> Result<()>;
}
Expand description
Block cipher mode of operation.
Block modes govern how a block cipher processes data spanning multiple blocks.
Required Methods§
sourcefn block_size(&self) -> usize
fn block_size(&self) -> usize
Block size of the underlying cipher in bytes.
sourcefn encrypt(&mut self, iv: &mut [u8], dst: &mut [u8], src: &[u8]) -> Result<()>
fn encrypt(&mut self, iv: &mut [u8], dst: &mut [u8], src: &[u8]) -> Result<()>
Encrypt a single block src
using the initialization vector
iv
to a ciphertext block dst
.
Both iv
and dst
are updated. The buffer iv
, dst
and
src
are expected to be at least as large as the block size
of the underlying cipher.
sourcefn decrypt(&mut self, iv: &mut [u8], dst: &mut [u8], src: &[u8]) -> Result<()>
fn decrypt(&mut self, iv: &mut [u8], dst: &mut [u8], src: &[u8]) -> Result<()>
Decrypt a single ciphertext block src
using the
initialization vector iv
to a plaintext block dst
.
Both iv
and dst
are updated. The buffer iv
, dst
and
src
are expected to be at least as large as the block size
of the underlying cipher.