Skip to main content

OperationMode

Enum OperationMode 

Source
pub enum OperationMode<W: Word, const N: usize> {
    ECB,
    CBC {
        iv: [W; N],
    },
    CTR {
        nonce_and_counter: [W; N],
    },
}
Expand description

Modes of operation for a block cipher.

  • ECB: Electronic Codebook mode.
  • CBC: Cipher Block Chaining mode.
  • CTR: Counter mode.

ECB mode of operation is less secure and is not recommended to use in production applications since it can be broken muc easily, special care should be kept while using this mode.

Variants§

§

ECB

Electronic Codebook

Encrypt/Decrypt each block independently Without any additional security.

§

CBC

Cipher Block Chaining

Requires an initialization vector to add one stage enhanced security.

Fields

§

CTR

Counter

Requires a starting nonce + counter block, this way it adds two stage complexity over encryption/decryption.

Fields

§nonce_and_counter: [W; N]

Auto Trait Implementations§

§

impl<W, const N: usize> Freeze for OperationMode<W, N>
where W: Freeze,

§

impl<W, const N: usize> RefUnwindSafe for OperationMode<W, N>
where W: RefUnwindSafe,

§

impl<W, const N: usize> Send for OperationMode<W, N>
where W: Send,

§

impl<W, const N: usize> Sync for OperationMode<W, N>
where W: Sync,

§

impl<W, const N: usize> Unpin for OperationMode<W, N>
where W: Unpin,

§

impl<W, const N: usize> UnsafeUnpin for OperationMode<W, N>
where W: UnsafeUnpin,

§

impl<W, const N: usize> UnwindSafe for OperationMode<W, N>
where W: UnwindSafe,

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> 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V