pub trait Padding<BlockSize: ArrayLength<u8>> {
    const TYPE: PadType;

    // Required methods
    fn pad(block: &mut Block<BlockSize>, pos: usize);
    fn unpad(block: &Block<BlockSize>) -> Result<&[u8], UnpadError>;

    // Provided method
    fn unpad_blocks(blocks: &[Block<BlockSize>]) -> Result<&[u8], UnpadError> { ... }
}
Expand description

Trait for padding messages divided into blocks

Required Associated Constants§

source

const TYPE: PadType

Padding type

Required Methods§

source

fn pad(block: &mut Block<BlockSize>, pos: usize)

Pads block filled with data up to pos (i.e length of a message stored in the block is equal to pos).

Panics

If pos is bigger than BlockSize. Most padding algorithms also panic if they are equal.

source

fn unpad(block: &Block<BlockSize>) -> Result<&[u8], UnpadError>

Unpad data in the block.

Returns Err(UnpadError) if the block contains malformed padding.

Provided Methods§

source

fn unpad_blocks(blocks: &[Block<BlockSize>]) -> Result<&[u8], UnpadError>

Unpad data in the blocks.

Returns Err(UnpadError) if the block contains malformed padding.

Implementors§

source§

impl<T, B: ArrayLength<u8>> Padding<B> for Twhere T: RawPadding,

source§

const TYPE: PadType = T::TYPE