Skip to main content

Padding

Enum Padding 

Source
pub enum Padding {
    None,
    Pkcs7,
    Iso9797M1,
    Iso9797M2,
    AnsiX923,
}
Expand description

Padding scheme used at the end of an Cipher block-mode stream.

Padding only applies to ECB and CBC. CTR mode requires Padding::None and the constructor will return Error::InvalidPaddingForMode otherwise.

Variants§

§

None

No padding. Caller must feed a multiple of the block size in total; otherwise finalize returns Error::UnpaddedInput.

§

Pkcs7

PKCS#7 padding (RFC 5652 §6.3). Pads with n copies of the byte n, where n is the number of bytes added (1..=block). Always adds at least one byte. Equivalent to JCE’s PKCS5Padding for 8-byte blocks.

§

Iso9797M1

ISO/IEC 9797-1 Padding Method 1: append 0x00 bytes until the block is full. Adds zero bytes if the input is already block-aligned, which makes the operation lossy on decryption (trailing zero bytes of the original message are indistinguishable from padding). Also known as zero padding.

§

Iso9797M2

ISO/IEC 9797-1 Padding Method 2: append 0x80 followed by as many 0x00 bytes as needed to fill the block. Always adds at least one byte. Identical to ISO/IEC 7816-4 padding (also called “bit padding”).

§

AnsiX923

ANSI X9.23 padding: append 0x00 bytes followed by a final byte holding the padding length. Always adds at least one byte. Legacy; ships for interop with X9.23-encoded data.

Trait Implementations§

Source§

impl Clone for Padding

Source§

fn clone(&self) -> Padding

Returns a duplicate 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 Padding

Source§

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

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

impl PartialEq for Padding

Source§

fn eq(&self, other: &Padding) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Padding

Source§

impl Eq for Padding

Source§

impl StructuralPartialEq for Padding

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.