|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
45 #if dg_configUSE_HW_AES
47 #define HW_AES_USER_DATA_KEYS_MAX_ENTRIES ((MEMORY_EFLASH_USER_DATA_KEYS_END - \
48 MEMORY_EFLASH_USER_DATA_KEYS_BASE) \
49 / MEMORY_EFLASH_USER_DATA_KEY_SIZE)
57 HW_AES_ERROR_INVALID_INPUT_DATA_LEN = -2,
58 HW_AES_ERROR_CRYPTO_ENGINE_LOCKED = -1,
159 uint32_t crypto_ctrl_reg = AES_HASH->CRYPTO_CTRL_REG;
161 REG_SET_FIELD(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_HASH_SEL, crypto_ctrl_reg, 0);
162 REG_SET_FIELD(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_ALG, crypto_ctrl_reg, 0);
163 REG_SET_FIELD(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_ALG_MD, crypto_ctrl_reg, aes_mode);
165 AES_HASH->CRYPTO_CTRL_REG = crypto_ctrl_reg;
177 return REG_GETF(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_ALG_MD);
192 REG_SETF(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_ENCDEC, operation);
207 REG_SETF(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_AES_KEY_SZ, key_size);
222 REG_SETF(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_AES_KEXP, key_expand);
237 REG_SETF(AES_HASH, CRYPTO_CTRL_REG, CRYPTO_OUT_MD, output_data_mode);
uint32_t input_data_addr
Definition: hw_aes.h:142
__STATIC_INLINE HW_AES_MODE hw_aes_get_mode(void)
Get AES Mode.
Definition: hw_aes.h:175
#define REG_SETF(base, reg, field, new_val)
Set the value of a register field.
Definition: sdk_defs.h:738
__STATIC_INLINE void hw_aes_start_operation(HW_AES_OPERATION aes_operation)
Start AES operation (Encryption/Decryption).
Definition: hw_aes.h:247
HW_AES_OUTPUT_DATA_MODE output_data_mode
Definition: hw_aes.h:132
HW_AES_KEY_EXPAND key_expand
Definition: hw_aes.h:131
uint32_t keys_addr
Definition: hw_aes.h:138
HW_AES_OPERATION
AES operation.
Definition: hw_aes.h:74
HW_AES_MODE
AES Mode.
Definition: hw_aes.h:65
__STATIC_INLINE void hw_aes_set_key_expansion(HW_AES_KEY_EXPAND key_expand)
Set AES key expansion mode.
Definition: hw_aes.h:217
bool hw_aes_is_key_valid(uint8_t idx)
Check whether the Encryption Key is revoked or not.
uint32_t hw_aes_key_address_get(uint8_t key_idx)
Get User Data Encryption Key memory address.
__STATIC_INLINE void hw_aes_set_output_data_mode(HW_AES_OUTPUT_DATA_MODE output_data_mode)
Set AES engine output data mode.
Definition: hw_aes.h:232
AES engine configuration structure.
Definition: hw_aes.h:127
HW_AES_MODE mode
Definition: hw_aes.h:128
uint32_t input_data_len
Definition: hw_aes.h:144
Definition of API for the AES/HASH Engine Low Level Driver.
HW_AES_KEY_SIZE
AES key size.
Definition: hw_aes.h:82
bool wait_more_input
Definition: hw_aes.h:133
HW_AES_ERROR
AES engine error codes.
Definition: hw_aes.h:56
HW_AES_OPERATION operation
Definition: hw_aes.h:129
void(* hw_aes_hash_cb)(uint32_t status)
AES/Hash callback.
Definition: hw_aes_hash.h:168
hw_aes_hash_cb callback
Definition: hw_aes.h:134
bool hw_aes_check_input_data_len_restrictions(void)
Check if the restrictions of the input data length are fulfilled.
HW_AES_ERROR hw_aes_init(const hw_aes_config_t *aes_cfg)
AES engine initialization function.
HW_AES_KEY_EXPAND
AES key expansion modes.
Definition: hw_aes.h:91
__STATIC_INLINE void hw_aes_set_key_size(HW_AES_KEY_SIZE key_size)
Set AES key size.
Definition: hw_aes.h:202
const uint8_t * iv_cnt_ptr
Definition: hw_aes.h:135
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
uint32_t output_data_addr
Definition: hw_aes.h:143
HW_AES_KEY_SIZE key_size
Definition: hw_aes.h:130
HW_AES_OUTPUT_DATA_MODE
AES Output Mode.
Definition: hw_aes.h:99
__STATIC_INLINE void hw_aes_set_mode(HW_AES_MODE aes_mode)
Set AES Mode.
Definition: hw_aes.h:154
#define REG_SET_FIELD(base, reg, field, var, val)
Set register field value.
Definition: sdk_defs.h:626
__STATIC_INLINE void hw_aes_hash_start(void)
Start AES/HASH engine operation.
Definition: hw_aes_hash.h:231
void hw_aes_set_init_vector(const uint8_t *iv_cnt_ptr)
Set the Initialization Vector in CBC Mode or the Counter in CTR Mode.
__STATIC_INLINE void hw_aes_set_operation(HW_AES_OPERATION operation)
Set AES operation, e.g. encryption or decryption.
Definition: hw_aes.h:187
void hw_aes_load_keys(uint32_t key_src_addr, HW_AES_KEY_SIZE key_size, HW_AES_KEY_EXPAND key_exp)
Load the AES keys from OTP/RAM to Crypto Engine.