CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

AES驱动的结构体

aes_init_t

AES驱动的初始化结构体aes_init_t的定义如下:

表 154 aes_init_t结构体
数据域 域段描述 取值

uint32_t key_size

密钥长度。

该参数的取值可以是下列值中的任意一个:

  • AES_KEYSIZE_128BITS(128位)
  • AES_KEYSIZE_192BITS(192位)
  • AES_KEYSIZE_256BITS(256位)

uint32_t operation_mode

工作模式(加密或解密)。

该参数的取值可以是下列值中的任意一个:

  • AES_OPERATION_MODE_ENCRYPT(加密)
  • AES_OPERATION_MODE_DECRYPT(解密)

uint32_t chaining_mode

数据流加解密方式。

该参数的取值可以是下列值中的任意一个:

  • AES_CHAININGMODE_ECB(ECB数据流操作)
  • AES_CHAININGMODE_CBC(CBC数据流操作)

uint32_t *p_key

密钥。

指向密钥的指针。

uint32_t *p_init_vector

初始化向量,此参数在CBC模式下有效。

指向初始化向量的指针。

uint32_t dpa_mode

是否启用安全模式。

该参数的取值可以是下列值中的任意一个:

  • ENABLE(启用)
  • DISABLE(禁用)

uint32_t *p_seed

安全模式的随机种子。

指向长度为16字节的数组。

aes_handle_t

AES驱动的句柄结构体aes_handle_t的定义如下:

表 155 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运行状态(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_AES_STATE_RESET(未初始化)
  • HAL_AES_STATE_READY(已初始化且空闲)
  • HAL_AES_STATE_BUSY(忙)
  • HAL_AES_STATE_ERROR(运行错误)
  • HAL_AES_STATE_TIMEOUT(超时)
  • HAL_AES_STATE_SUSPENDED(已挂起)

__IO uint32_t error_code

AES错误码(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_AES_ERROR_NONE(无错误)
  • HAL_AES_ERROR_TIMEOUT(超时)
  • HAL_AES_ERROR_TRANSFER(传输错误)
  • HAL_AES_ERROR_INVALID_PARAM(非法参数)

uint32_t timeout

AES超时时间(无需开发者初始化)。

N/A

uint32_t retention[18]

保存AES寄存器信息(驱动负责管理,无需开发者初始化)。

N/A

说明:

N/A表示参数没有取值选项。

扫描关注

打开微信,使用“扫一扫”即可关注。