AesBlock

Struct AesBlock 

Source
pub struct AesBlock(/* private fields */);

Implementations§

Source§

impl AesBlock

Source

pub const fn new(value: [u8; 16]) -> Self

Source

pub const fn to_bytes(self) -> [u8; 16]

Source

pub fn is_zero(self) -> bool

Source

pub fn enc(self, round_key: Self) -> Self

Performs one round of AES encryption function (ShiftRows->SubBytes->MixColumns->AddRoundKey)

Source

pub fn enc_last(self, round_key: Self) -> Self

Performs one round of AES encryption function without MixColumns (ShiftRows->SubBytes->AddRoundKey)

Source

pub fn dec(self, round_key: Self) -> Self

Performs one round of AES decryption function (InvShiftRows->InvSubBytes->InvMixColumns->AddRoundKey)

Source

pub fn dec_last(self, round_key: Self) -> Self

Performs one round of AES decryption function without InvMixColumns (InvShiftRows->InvSubBytes->AddRoundKey)

Source

pub fn mc(self) -> Self

Performs the MixColumns operation

Source

pub fn imc(self) -> Self

Performs the InvMixColumns operation

Source§

impl AesBlock

Source

pub fn chain_enc(self, keys: &[AesBlock]) -> AesBlock

Computes (self ^ keys[0]).enc(keys[1])...enc(keys[keys.len() - 1]) in the most optimized way

§Panics

If keys.len() == 0

Source

pub fn chain_dec(self, keys: &[AesBlock]) -> AesBlock

Computes (self ^ keys[0]).dec(keys[1])...dec(keys[keys.len() - 1]) in the most optimized way

§Panics

If keys.len() == 0

Source

pub fn chain_enc_with_last(self, keys: &[AesBlock]) -> AesBlock

Computes (self ^ keys[0]).enc(keys[1])...enc(keys[keys.len() - 2]).enc_last(keys[keys.len() - 1]) in the most optimized way

§Panics

If keys.len() < 2

Source

pub fn chain_dec_with_last(self, keys: &[AesBlock]) -> AesBlock

Computes (self ^ keys[0]).dec(keys[1])...dec(keys[keys.len() - 2]).dec_last(keys[keys.len() - 1]) in the most optimized way

§Panics

If keys.len() < 2

Source§

impl AesBlock

Source

pub const fn zero() -> Self

Source

pub fn store_to(self, dst: &mut [u8])

Stores the byte representation of the block to dst

§Panics

If dst doesn’t have enough space, i.e. 16 bytes for AesBlock, 32 bytes for AesBlockX2 and 64 bytes for AesBlockX4

Trait Implementations§

Source§

impl Binary for AesBlock

Source§

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

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

impl BitAnd for AesBlock

Source§

type Output = AesBlock

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAndAssign for AesBlock

Source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
Source§

impl BitOr for AesBlock

Source§

type Output = AesBlock

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOrAssign for AesBlock

Source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
Source§

impl BitXor for AesBlock

Source§

type Output = AesBlock

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXorAssign for AesBlock

Source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
Source§

impl Clone for AesBlock

Source§

fn clone(&self) -> AesBlock

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 AesBlock

Source§

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

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

impl Default for AesBlock

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Display for AesBlock

Source§

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

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

impl From<&[u8; 16]> for AesBlock

Source§

fn from(value: &[u8; 16]) -> Self

Converts to this type from the input type.
Source§

impl From<[u8; 16]> for AesBlock

Source§

fn from(value: [u8; 16]) -> Self

The conversion of u8 array to AesBlock is done using

Source§

impl From<AesBlock> for [u8; 16]

Source§

fn from(value: AesBlock) -> Self

Converts to this type from the input type.
Source§

impl From<AesBlock> for AesBlockX2

Source§

fn from(value: AesBlock) -> Self

Converts to this type from the input type.
Source§

impl From<AesBlock> for AesBlockX4

Source§

fn from(value: AesBlock) -> Self

Converts to this type from the input type.
Source§

impl From<AesBlock> for u128

Source§

fn from(value: AesBlock) -> Self

Returns an u128 whose big-endian byte-representation corresponds to the passed AesBlock

Source§

impl From<u128> for AesBlock

Source§

fn from(value: u128) -> Self

Returns an AesBlock corresponding to the big-endian byte-representation of value

Source§

impl LowerHex for AesBlock

Source§

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

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

impl Not for AesBlock

Source§

type Output = AesBlock

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl PartialEq for AesBlock

Available on not ((x86 or x86-64) and target feature aes).
Source§

fn eq(&self, other: &Self) -> 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 TryFrom<&[u8]> for AesBlock

Source§

type Error = usize

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

fn try_from(value: &[u8]) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl UpperHex for AesBlock

Source§

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

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

impl Copy for AesBlock

Source§

impl Eq for AesBlock

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, 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.