[][src]Struct block_padding::NoPadding

pub struct NoPadding;

Don't pad the data. Useful for key wrapping.

use block_padding::{NoPadding, 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);
NoPadding::pad(&mut block, pos);
assert_eq!(&block[..], b"test\xff\xff\xff\xff");
let res = NoPadding::unpad(&block).unwrap();
assert_eq!(res, b"test\xff\xff\xff\xff");

Note that even though the passed length of the message is equal to 4, the size of unpadded message is equal to the block size of 8 bytes. Also padded message contains "garbage" bytes stored in the block buffer. Thus NoPadding generally should not be used with data length of which is not multiple of block size.

Trait Implementations

impl Clone for NoPadding[src]

impl Copy for NoPadding[src]

impl Debug for NoPadding[src]

impl<B: ArrayLength<u8>> Padding<B> for NoPadding[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.