31#if defined(SHUFFLING) || defined(DUMMY_OPS)
52 AES(
const aes_key_t masterKey);
66 static uint8_t
mRCs[ROUNDS];
80 #if defined(SHUFFLING) || defined(DUMMY_OPS)
Class providing functionality for 128-bit AES decryption.
Definition aes.h:46
void invShiftRows(state_t state)
Inverse ShiftRows sublayer.
static uint8_t mRCs[ROUNDS]
Array of round coefficients that are used in the key schedule.
Definition aes.h:66
uint8_t mShuffledSBoxIndices[STATE_BYTES]
Array of indices of the S-Box, if shuffling is enabled.
Definition aes.h:85
void createKeySchedule(const aes_key_t masterKey, sub_keys_t subKeys) const
Create the AES key-schedule & store all subkeys in mSubkeys.
sub_keys_t mOriginalSubKeys
Array that contains all original subkeys, if masking is enabled.
Definition aes.h:76
Masking mMasking
Masking object.
Definition aes.h:75
void addRoundKey(const aes_key_t roundKey, state_t state)
Add the key for the current round to state.
sub_keys_t mSubkeys
Array that contains all subkeys.
Definition aes.h:65
Hiding mHiding
Hiding object.
Definition aes.h:81
void decrypt(uint8_t *cipher)
Decrypt a cipher using the 128-bit AES algorithm.
void invByteSub(state_t state)
Inverse Byte Substituion layer.
void invMixCols(state_t state)
Inverse MixColumn sublayer.
AES(const aes_key_t masterKey)
Construct a new AES object.
Logger mLog
Logger.
Definition aes.h:70
Class that implements 2 hiding techniques: dummy-ops & shuffling.
Definition hiding.h:32
Logger class that outputs logs over USART.
Definition logger.h:27
Masking class that provides functionality for masking and unmasking AES-decryption.
Definition masking.h:37