Trait block_padding::Padding
source · [−]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> { ... }
}Expand description
Trait for padding messages divided into blocks
Required methods
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().
Provided methods
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.
