Struct block_padding::AnsiX923
source · pub struct AnsiX923;
Expand description
Pad block with zeros except the last byte which will be set to the number bytes.
use block_padding::{AnsiX923, Padding};
use generic_array::{GenericArray, typenum::U8};
let msg = b"test";
let pos = msg.len();
let mut block: GenericArray::<u8, U8> = [0xff; 8].into();
block[..pos].copy_from_slice(msg);
AnsiX923::pad(&mut block, pos);
assert_eq!(&block[..], b"test\x00\x00\x00\x04");
let res = AnsiX923::unpad(&block).unwrap();
assert_eq!(res, msg);
Trait Implementations§
source§impl RawPadding for AnsiX923
impl RawPadding for AnsiX923
impl Copy for AnsiX923
Auto Trait Implementations§
impl Freeze for AnsiX923
impl RefUnwindSafe for AnsiX923
impl Send for AnsiX923
impl Sync for AnsiX923
impl Unpin for AnsiX923
impl UnwindSafe for AnsiX923
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T, B> Padding<B> for T
impl<T, B> Padding<B> for T
source§fn pad(block: &mut GenericArray<u8, B>, pos: usize)
fn pad(block: &mut GenericArray<u8, B>, pos: usize)
Pads
block
filled with data up to pos
(i.e length of a message
stored in the block is equal to pos
). Read moresource§fn unpad(block: &GenericArray<u8, B>) -> Result<&[u8], UnpadError>
fn unpad(block: &GenericArray<u8, B>) -> Result<&[u8], UnpadError>
Unpad data in the
block
. Read moresource§fn unpad_blocks(blocks: &[Block<BlockSize>]) -> Result<&[u8], UnpadError>
fn unpad_blocks(blocks: &[Block<BlockSize>]) -> Result<&[u8], UnpadError>
Unpad data in the
blocks
. Read more