pub trait Padding: 'static {
// Required methods
fn raw_pad(block: &mut [u8], pos: usize);
fn raw_unpad(block: &[u8]) -> Result<&[u8], Error>;
// Provided methods
fn pad<BlockSize: ArraySize>(block: &mut Array<u8, BlockSize>, pos: usize) { ... }
fn unpad<BlockSize: ArraySize>(
block: &Array<u8, BlockSize>,
) -> Result<&[u8], Error> { ... }
fn pad_detached<BlockSize: ArraySize>(
data: &[u8],
) -> PaddedData<'_, BlockSize> { ... }
fn unpad_blocks<BlockSize: ArraySize>(
blocks: &[Array<u8, BlockSize>],
) -> Result<&[u8], Error> { ... }
}Expand description
Trait for message padding algorithms.
Required Methods§
Provided Methods§
Sourcefn pad<BlockSize: ArraySize>(block: &mut Array<u8, BlockSize>, pos: usize)
fn pad<BlockSize: ArraySize>(block: &mut Array<u8, BlockSize>, pos: usize)
Pads block filled with data up to pos (i.e the message length
stored in block is equal to pos).
§Panics
If pos is bigger than BlockSize. Most padding algorithms also
panic if they are equal.
Sourcefn unpad<BlockSize: ArraySize>(
block: &Array<u8, BlockSize>,
) -> Result<&[u8], Error>
fn unpad<BlockSize: ArraySize>( block: &Array<u8, BlockSize>, ) -> Result<&[u8], Error>
Unpad data in block.
Returns error if the block contains malformed padding.
Sourcefn pad_detached<BlockSize: ArraySize>(data: &[u8]) -> PaddedData<'_, BlockSize>
fn pad_detached<BlockSize: ArraySize>(data: &[u8]) -> PaddedData<'_, BlockSize>
Pad message and return padded tail block.
PaddedData::Error is returned only by NoPadding if data length is not multiple
of the block size. NoPadding and ZeroPadding return PaddedData::NoPad
if data length is multiple of block size. All other padding implementations
should always return PaddedData::Pad.
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.