[][src]Trait block_padding::Padding

pub trait Padding {
    fn pad_block(block: &mut [u8], pos: usize) -> Result<(), PadError>;
fn unpad(data: &[u8]) -> Result<&[u8], UnpadError>; fn pad(
        buf: &mut [u8],
        pos: usize,
        block_size: usize
    ) -> Result<&mut [u8], PadError> { ... } }

Trait for padding messages divided into blocks

Required methods

fn pad_block(block: &mut [u8], pos: usize) -> Result<(), PadError>

Pads block filled with data up to pos.

pos should be inside of the block and block must not be full, i.e. pos < block.len() must be true. Otherwise method will return PadError. Some potentially irreversible padding schemes can allow padding of the full block, in this case aforementioned condition is relaxed to pos <= block.len().

fn unpad(data: &[u8]) -> Result<&[u8], UnpadError>

Unpad given data by truncating it according to the used padding. In case of the malformed padding will return UnpadError

Loading content...

Provided methods

fn pad(
    buf: &mut [u8],
    pos: usize,
    block_size: usize
) -> Result<&mut [u8], PadError>

Pads message with length pos in the provided buffer.

&buf[..pos] is perceived as the message, the buffer must contain enough leftover space for padding: block_size - (pos % block_size) extra bytes must be available. Otherwise method will return PadError.

Loading content...

Implementors

impl Padding for AnsiX923[src]

impl Padding for Iso7816[src]

impl Padding for NoPadding[src]

impl Padding for Pkcs7[src]

impl Padding for ZeroPadding[src]

Loading content...