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