Padding

Trait Padding 

Source
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§

Source

fn raw_pad(block: &mut [u8], 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 block.len(). Most padding algorithms also panic if they are equal.

Source

fn raw_unpad(block: &[u8]) -> Result<&[u8], Error>

Unpad data in block.

Returns error if the block contains malformed padding.

Provided Methods§

Source

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.

Source

fn unpad<BlockSize: ArraySize>( block: &Array<u8, BlockSize>, ) -> Result<&[u8], Error>

Unpad data in block.

Returns error if the block contains malformed padding.

Source

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.

Source

fn unpad_blocks<BlockSize: ArraySize>( blocks: &[Array<u8, BlockSize>], ) -> Result<&[u8], Error>

Unpad data in blocks and return unpadded byte slice.

Returns error if blocks contain malformed padding.

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.

Implementors§