Trait block_padding::Padding [−][src]
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()
.
fn unpad(data: &[u8]) -> Result<&[u8], UnpadError>
[src]
fn unpad(data: &[u8]) -> Result<&[u8], UnpadError>
[src]Unpad given data
by truncating it according to the used padding.
In case of the malformed padding will return UnpadError
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
.