pub struct AesBlockX4(/* private fields */);Implementations§
Source§impl AesBlockX4
impl AesBlockX4
pub const fn new(value: [u8; 64]) -> Self
pub const fn to_bytes(self) -> [u8; 64]
pub fn is_zero(self) -> bool
Sourcepub fn enc(self, round_key: Self) -> Self
pub fn enc(self, round_key: Self) -> Self
Performs one round of AES encryption function (ShiftRows->SubBytes->MixColumns->AddRoundKey)
Sourcepub fn dec(self, round_key: Self) -> Self
pub fn dec(self, round_key: Self) -> Self
Performs one round of AES decryption function (InvShiftRows->InvSubBytes->InvMixColumns->AddRoundKey)
Sourcepub fn enc_last(self, round_key: Self) -> Self
pub fn enc_last(self, round_key: Self) -> Self
Performs one round of AES encryption function without MixColumns (ShiftRows->SubBytes->AddRoundKey)
Source§impl AesBlockX4
impl AesBlockX4
Sourcepub fn chain_enc(self, keys: &[AesBlockX4]) -> AesBlockX4
pub fn chain_enc(self, keys: &[AesBlockX4]) -> AesBlockX4
Computes (self ^ keys[0]).enc(keys[1])...enc(keys[keys.len() - 1]) in the most optimized way
§Panics
If keys.len() == 0
Sourcepub fn chain_dec(self, keys: &[AesBlockX4]) -> AesBlockX4
pub fn chain_dec(self, keys: &[AesBlockX4]) -> AesBlockX4
Computes (self ^ keys[0]).dec(keys[1])...dec(keys[keys.len() - 1]) in the most optimized way
§Panics
If keys.len() == 0
Sourcepub fn chain_enc_with_last(self, keys: &[AesBlockX4]) -> AesBlockX4
pub fn chain_enc_with_last(self, keys: &[AesBlockX4]) -> AesBlockX4
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
Sourcepub fn chain_dec_with_last(self, keys: &[AesBlockX4]) -> AesBlockX4
pub fn chain_dec_with_last(self, keys: &[AesBlockX4]) -> AesBlockX4
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 AesBlockX4
impl AesBlockX4
pub const fn zero() -> Self
Sourcepub fn store_to(self, dst: &mut [u8])
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 BitAnd for AesBlockX4
impl BitAnd for AesBlockX4
Source§impl BitAndAssign for AesBlockX4
impl BitAndAssign for AesBlockX4
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitOr for AesBlockX4
impl BitOr for AesBlockX4
Source§impl BitOrAssign for AesBlockX4
impl BitOrAssign for AesBlockX4
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|= operation. Read moreSource§impl BitXor for AesBlockX4
impl BitXor for AesBlockX4
Source§impl BitXorAssign for AesBlockX4
impl BitXorAssign for AesBlockX4
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^= operation. Read moreSource§impl Clone for AesBlockX4
impl Clone for AesBlockX4
Source§fn clone(&self) -> AesBlockX4
fn clone(&self) -> AesBlockX4
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AesBlockX4
impl Debug for AesBlockX4
Source§impl Default for AesBlockX4
impl Default for AesBlockX4
Source§impl From<[AesBlockX2; 2]> for AesBlockX4
impl From<[AesBlockX2; 2]> for AesBlockX4
Source§fn from([a, b]: [AesBlockX2; 2]) -> Self
fn from([a, b]: [AesBlockX2; 2]) -> Self
Source§impl From<(AesBlockX2, AesBlockX2)> for AesBlockX4
impl From<(AesBlockX2, AesBlockX2)> for AesBlockX4
Source§fn from((hi, lo): (AesBlockX2, AesBlockX2)) -> Self
fn from((hi, lo): (AesBlockX2, AesBlockX2)) -> Self
Source§impl From<AesBlock> for AesBlockX4
impl From<AesBlock> for AesBlockX4
Source§impl From<AesBlockX2> for AesBlockX4
impl From<AesBlockX2> for AesBlockX4
Source§fn from(value: AesBlockX2) -> Self
fn from(value: AesBlockX2) -> Self
Source§impl From<AesBlockX4> for [AesBlock; 4]
impl From<AesBlockX4> for [AesBlock; 4]
Source§fn from(value: AesBlockX4) -> Self
fn from(value: AesBlockX4) -> Self
Source§impl From<AesBlockX4> for [AesBlockX2; 2]
impl From<AesBlockX4> for [AesBlockX2; 2]
Source§fn from(value: AesBlockX4) -> Self
fn from(value: AesBlockX4) -> Self
Source§impl From<AesBlockX4> for [u8; 64]
impl From<AesBlockX4> for [u8; 64]
Source§fn from(value: AesBlockX4) -> Self
fn from(value: AesBlockX4) -> Self
Source§impl From<AesBlockX4> for (AesBlock, AesBlock, AesBlock, AesBlock)
impl From<AesBlockX4> for (AesBlock, AesBlock, AesBlock, AesBlock)
Source§fn from(value: AesBlockX4) -> Self
fn from(value: AesBlockX4) -> Self
Source§impl From<AesBlockX4> for (AesBlockX2, AesBlockX2)
impl From<AesBlockX4> for (AesBlockX2, AesBlockX2)
Source§fn from(value: AesBlockX4) -> Self
fn from(value: AesBlockX4) -> Self
Source§impl Not for AesBlockX4
impl Not for AesBlockX4
Source§impl PartialEq for AesBlockX4
Available on not (crate feature nightly and (x86 or x86-64) and target feature vaes and target feature avx512f).
impl PartialEq for AesBlockX4
nightly and (x86 or x86-64) and target feature vaes and target feature avx512f).