block_padding

Enum NoPadding

Source
pub enum NoPadding {}
Expand description

Don’t pad the data. Useful for key wrapping. Padding will fail if the data cannot be fitted into blocks without padding.

use block_padding::{NoPadding, Padding};

let msg = b"test";
let n = msg.len();
let mut buffer = [0xff; 16];
buffer[..n].copy_from_slice(msg);
let padded_msg = NoPadding::pad(&mut buffer, n, 4).unwrap();
assert_eq!(padded_msg, b"test");
assert_eq!(NoPadding::unpad(&padded_msg).unwrap(), msg);
let padded_msg = NoPadding::pad(&mut buffer, n, 2).unwrap();
assert_eq!(padded_msg, b"test");
assert_eq!(NoPadding::unpad(&padded_msg).unwrap(), msg);

Trait Implementations§

Source§

impl Clone for NoPadding

Source§

fn clone(&self) -> NoPadding

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NoPadding

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Padding for NoPadding

Source§

fn pad_block(block: &mut [u8], pos: usize) -> Result<(), PadError>

Pads block filled with data up to pos. Read more
Source§

fn pad( buf: &mut [u8], pos: usize, block_size: usize, ) -> Result<&mut [u8], PadError>

Pads message with length pos in the provided buffer. Read more
Source§

fn unpad(data: &[u8]) -> Result<&[u8], UnpadError>

Unpad given data by truncating it according to the used padding. In case of the malformed padding will return UnpadError
Source§

impl Copy for NoPadding

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.