3.8.1.1.3 Workflow
- Define sample data from NIST-800-38A appendix F for ECB mode.
#define AES_EXAMPLE_REFBUF_SIZE 4
/* @{ */
uint32_t ref_plain_text[AES_EXAMPLE_REFBUF_SIZE] = {
0xe2bec16b,
0x969f402e,
0x117e3de9,
0x2a179373
};
uint32_t ref_cipher_text_ecb[AES_EXAMPLE_REFBUF_SIZE] = {
0xb47bd73a,
0x60367a0d,
0xf3ca9ea8,
0x97ef6624
};
const
uint32_t key128[4] = {
0x16157e2b,
0xa6d2ae28,
0x8815f7ab,
0x3c4fcf09
};
/* @} */
- Create related module variable and software instance structure.
/* Output data array */
static
uint32_t output_data[AES_EXAMPLE_REFBUF_SIZE];
/* State indicate */
volatile
bool
state =
false
;
/* AES configuration */
struct
aes_config g_aes_cfg;
/* AES instance*/
struct
aes_module aes_instance;
struct
usart_module usart_instance;
- Configure, initialize, and enable AES module.
- Configuration AES struct, which can be filled out to adjust the configuration of a physical AES peripheral.
aes_get_config_defaults(&g_aes_cfg);
- Initialize the AES configuration struct with the module's default values.
aes_init(&aes_instance,AES, &g_aes_cfg);
- Enable the AES module.
aes_enable(&aes_instance);