Struct block_padding::Pkcs7
source · 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 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);
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 RawPadding for Pkcs7
impl RawPadding for Pkcs7
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
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