pub struct Pkcs7;Expand description
Pad block with bytes with value equal to the number of bytes added.
PKCS#7 described in the RFC 5652.
use block_padding::{Pkcs7, Padding};
use block_padding::array::{Array, typenum::U8};
let msg = b"test";
let pos = msg.len();
let mut block: Array::<u8, U8> = [0xff; 8].into();
block[..pos].copy_from_slice(msg);
Pkcs7::pad(&mut block, pos);
assert_eq!(&block[..], b"test\x04\x04\x04\x04");
let res = Pkcs7::unpad(&block).unwrap();
assert_eq!(res, msg);Trait Implementations§
Source§impl Padding for Pkcs7
impl Padding for Pkcs7
Source§fn raw_pad(block: &mut [u8], pos: usize)
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). Read moreSource§fn pad<BlockSize: ArraySize>(block: &mut Array<u8, BlockSize>, pos: usize)
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). Read moreSource§fn unpad<BlockSize: ArraySize>(
block: &Array<u8, BlockSize>,
) -> Result<&[u8], Error>
fn unpad<BlockSize: ArraySize>( block: &Array<u8, BlockSize>, ) -> Result<&[u8], Error>
Unpad data in
block. Read moreSource§fn pad_detached<BlockSize: ArraySize>(data: &[u8]) -> PaddedData<'_, BlockSize>
fn pad_detached<BlockSize: ArraySize>(data: &[u8]) -> PaddedData<'_, BlockSize>
Pad message and return padded tail block. Read more
impl Copy for Pkcs7
Auto Trait Implementations§
impl Freeze for Pkcs7
impl RefUnwindSafe for Pkcs7
impl Send for Pkcs7
impl Sync for Pkcs7
impl Unpin for Pkcs7
impl UnwindSafe for Pkcs7
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