pub struct AesBlockX2(/* private fields */);Implementations§
Source§impl AesBlockX2
impl AesBlockX2
pub const fn new(value: [u8; 32]) -> Self
pub const fn to_bytes(self) -> [u8; 32]
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 AesBlockX2
impl AesBlockX2
Sourcepub fn chain_enc(self, keys: &[AesBlockX2]) -> AesBlockX2
pub fn chain_enc(self, keys: &[AesBlockX2]) -> AesBlockX2
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: &[AesBlockX2]) -> AesBlockX2
pub fn chain_dec(self, keys: &[AesBlockX2]) -> AesBlockX2
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: &[AesBlockX2]) -> AesBlockX2
pub fn chain_enc_with_last(self, keys: &[AesBlockX2]) -> AesBlockX2
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: &[AesBlockX2]) -> AesBlockX2
pub fn chain_dec_with_last(self, keys: &[AesBlockX2]) -> AesBlockX2
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 AesBlockX2
impl AesBlockX2
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 AesBlockX2
impl BitAnd for AesBlockX2
Source§impl BitAndAssign for AesBlockX2
impl BitAndAssign for AesBlockX2
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitOr for AesBlockX2
impl BitOr for AesBlockX2
Source§impl BitOrAssign for AesBlockX2
impl BitOrAssign for AesBlockX2
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|= operation. Read moreSource§impl BitXor for AesBlockX2
impl BitXor for AesBlockX2
Source§impl BitXorAssign for AesBlockX2
impl BitXorAssign for AesBlockX2
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^= operation. Read moreSource§impl Clone for AesBlockX2
impl Clone for AesBlockX2
Source§fn clone(&self) -> AesBlockX2
fn clone(&self) -> AesBlockX2
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more