Enum block_padding::Pkcs7
source · [−]pub enum 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};
let msg = b"test";
let n = msg.len();
let mut buffer = [0xff; 8];
buffer[..n].copy_from_slice(msg);
let padded_msg = Pkcs7::pad(&mut buffer, n, 8).unwrap();
assert_eq!(padded_msg, b"test\x04\x04\x04\x04");
assert_eq!(Pkcs7::unpad(&padded_msg).unwrap(), msg);
let padded_msg = Pkcs7::pad(&mut buffer, n, 2).unwrap();
assert_eq!(padded_msg, b"test\x02\x02");
assert_eq!(Pkcs7::unpad(&padded_msg).unwrap(), msg);
let mut buffer = [0xff; 5];
assert!(Pkcs7::pad(&mut buffer, 4, 2).is_err());
assert!(Pkcs7::unpad(&buffer).is_err());
In addition to conditions stated in the Padding
trait documentation,
pad_block
will return PadError
if block.len() > 255
, and in case of
pad
if block_size > 255
.
Trait Implementations
sourceimpl Padding for Pkcs7
impl Padding for Pkcs7
sourcefn pad_block(block: &mut [u8], pos: usize) -> Result<(), PadError>
fn pad_block(block: &mut [u8], pos: usize) -> Result<(), PadError>
Pads block
filled with data up to pos
. Read more
impl Copy for Pkcs7
Auto Trait Implementations
impl RefUnwindSafe for Pkcs7
impl Send for Pkcs7
impl Sync for Pkcs7
impl Unpin for Pkcs7
impl UnwindSafe for Pkcs7
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more