AES驱动的结构体
aes_init_t
AES驱动的初始化结构体aes_init_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
uint32_t key_size |
密钥长度。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t operation_mode |
工作模式(加密或解密)。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t chaining_mode |
数据流加解密方式。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t *p_key |
密钥。 |
指向密钥的指针。 |
uint32_t *p_init_vector |
初始化向量,此参数在CBC模式下有效。 |
指向初始化向量的指针。 |
uint32_t dpa_mode |
是否启用安全模式。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t *p_seed |
安全模式的随机种子。 |
指向长度为16字节的数组。 |
aes_handle_t
AES驱动的句柄结构体aes_handle_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
aes_regs_t *p_instance |
AES外设实例。 |
该参数的取值为AES。 |
|
aes_init_t init |
初始化结构体。 |
参考aes_init_t结构体。 |
|
uint32_t *p_cryp_input_buffer |
指向待加解密数据流缓冲区的指针(无需开发者初始化)。 |
N/A |
|
uint32_t *p_cryp_output_buffer |
指向加解密结果缓冲区的指针(无需开发者初始化)。 |
N/A |
|
uint32_t block_size |
待加解密数据块的大小(无需开发者初始化) |
N/A |
|
uint32_t block_count |
待加解密数据块的计数(无需开发者初始化)。 |
初始化为block_size,计算过程中递减到0。 |
|
__IO hal_lock_t lock |
AES锁(无需开发者初始化)。 |
N/A |
|
__IO hal_aes_state_t state |
AES运行状态(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
__IO uint32_t error_code |
AES错误码(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t timeout |
AES超时时间(无需开发者初始化)。 |
N/A |
|
uint32_t retention[18] |
保存AES寄存器信息(驱动负责管理,无需开发者初始化)。 |
N/A |
N/A表示参数没有取值选项。