Skip to content

AES 加密

bflb_aes_init(dev)

使能 aes。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_deinit(dev)

关闭 aes。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_select_hwkey(dev, keysel0, keysel1)

设置 aes hardware 密钥。

参数

  • dev:设备句柄
  • keysel0:hardware 密钥 模式 in eFuse table
  • keysel1:hardware 密钥 模式 in eFuse table

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_set_hwkey_source(dev, source)

设置 aes hardware 密钥 source。

参数

  • dev:设备句柄
  • source:hardware 密钥 source

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_set_mode(dev, mode)

设置 aes 模式。

参数

  • dev:设备句柄
  • mode:aes 模式, 使用 AES_MODE

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_setkey(dev, key, keybits)

设置 aes 密钥。

参数

  • dev:设备句柄
  • key:pointer to aes 密钥, if NULL, means use hardware 密钥
  • keybits:aes keybits, can be 128/192/256

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_encrypt(dev, input, iv, output, len)

Perform aes encrypt.

参数

  • dev:设备句柄
  • input:pointer to plaintext
  • iv:input iv, if NULL, means use last iv.
  • output:pointer to ciphertext
  • len:encrypt length, muse be multiple of 16

📎 设备名速查:支持的设备名(BL616)

返回值:A negated errno 值 on failure.

bflb_aes_decrypt(dev, input, iv, output, len)

Perform aes decrypt.

参数

  • dev:设备句柄
  • input:pointer to ciphertext
  • iv:input iv, if NULL, means use last iv.
  • output:pointer to plaintext
  • len:decrypt length, muse be multiple of 16

📎 设备名速查:支持的设备名(BL616)

返回值:A negated errno 值 on failure.

bflb_aes_link_init(dev)

使能 aes link 模式。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_link_deinit(dev)

关闭 aes link 模式。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_aes_link_update(dev, link_addr, input, output, len)

Perform encrypt or decrypt with link 模式.

参数

  • dev:设备句柄
  • link_addr:link struct pointer 地址, must be located in 0x2xxxxxxx
  • input:pointer to plaintext or ciphertext
  • output:pointer to plaintext or ciphertext
  • len:update length, muse be multiple of 16

📎 设备名速查:支持的设备名(BL616)

返回值:A negated errno 值 on failure.

bflb_group0_request_aes_access(dev)

使能 aes in group0。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group1_request_aes_access(dev)

使能 aes in group1。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group0_release_aes_access(dev)

关闭 aes in group0。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_group1_release_aes_access(dev)

关闭 aes in group1。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

SHA 摘要

bflb_sha_init(dev, mode)

初始化 SHA 引擎并选择模式

参数

  • dev:设备句柄
  • mode:模式

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha1_start(dev, ctx)

开始一次 SHA1 计算(初始化上下文)

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha256_start(dev, ctx)

开始一次 SHA256 计算(初始化上下文)

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha512_start(dev, ctx)

开始一次 SHA512 计算(初始化上下文)

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha1_update(dev, ctx, input, len)

向 SHA1 上下文输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha256_update(dev, ctx, input, len)

向 SHA256 上下文输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha512_update(dev, ctx, input, len)

向 SHA512 上下文输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha1_finish(dev, ctx, output)

完成 SHA1 计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha256_finish(dev, ctx, output)

完成 SHA256 计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha512_finish(dev, ctx, output)

完成 SHA512 计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha_link_init(dev)

初始化 SHA 链表(DMA)模式

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha_link_deinit(dev)

关闭 SHA 链表模式

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha1_link_start(dev, ctx, link)

开始 SHA1 链表(DMA)计算

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • link:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha256_link_start(dev, ctx, link)

开始 SHA256 链表计算(is224 选 SHA224)

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • link:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha512_link_start(dev, ctx, link)

开始 SHA512 链表计算(is384 选 SHA384)

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • link:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha1_link_update(dev, ctx, input, len)

向 SHA1 链表模式输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha256_link_update(dev, ctx, input, len)

向 SHA256 链表模式输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha512_link_update(dev, ctx, input, len)

向 SHA512 链表模式输入数据

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • input:输入数据
  • len:长度

📎 设备名速查:支持的设备名(BL616)

返回值:int

bflb_sha1_link_finish(dev, ctx, output)

完成 SHA1 链表计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha256_link_finish(dev, ctx, output)

完成 SHA256 链表计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha512_link_finish(dev, ctx, output)

完成 SHA512 链表计算并输出摘要

参数

  • dev:设备句柄
  • ctx:参数说明见 SDK 头文件
  • output:输出缓冲区

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_group0_request_sha_access(dev)

申请 Group0 对 SHA 引擎的访问权限

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group1_request_sha_access(dev)

申请 Group1 对 SHA 引擎的访问权限

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group0_release_sha_access(dev)

释放 Group0 的 SHA 访问权限

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_group1_release_sha_access(dev)

释放 Group1 的 SHA 访问权限

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sha_crc32_link_work(dev, addr, in, len, out)

链表模式下一次性完成 SHA/CRC32 计算

参数

  • dev:设备句柄
  • addr:地址
  • in:参数说明见 SDK 头文件
  • len:长度
  • out:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

bflb_sha1_once_padded(dev, input, output, nblock)

一次性计算 SHA1(自动填充)

参数

  • dev:设备句柄
  • input:, 32 bytes aligned
  • output:输出缓冲区
  • nblock:参数说明见 SDK 头文件

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

真随机数 TRNG

bflb_trng_read(dev, data)

读取 trng 数据。

参数

  • dev:设备句柄
  • data:pointer to trng 数据

📎 设备名速查:支持的设备名(BL616)

返回值:A negated errno 值 on failure.

bflb_trng_readlen(data, len)

读取 trng 数据 with custom length。

参数

  • data:pointer to trng 数据
  • len:length to read

返回值:A negated errno 值 on failure.

random()

获取 trng 数据。

返回值:trng 数据 with word

bflb_group0_request_trng_access(dev)

使能 trng in group0。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group1_request_trng_access(dev)

使能 trng in group1。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:0 for success, -1 for failure

bflb_group0_release_trng_access(dev)

关闭 trng in group0。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_group1_release_trng_access(dev)

关闭 trng in group1。

参数

  • dev:设备句柄

📎 设备名速查:支持的设备名(BL616)

返回值:无

GMAC 认证

bflb_sec_gmac_le_enable(dev)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sec_gmac_link_enable(dev, enable)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_sec_gmac_link_work(dev, addr, in, len, out)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

bflb_group0_request_gmac_access(dev)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

bflb_group0_release_gmac_access(dev)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_group1_request_gmac_access(dev)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

bflb_group1_release_gmac_access(dev)

SEC_ENG GMAC link 配置 structure type definition

📎 设备名速查:支持的设备名(BL616)

返回值:无

引擎互斥

bflb_sec_mutex_init()

初始化 AES/SHA/PKA 引擎互斥锁

返回值:无

bflb_sec_aes_mutex_take()

获取 AES 引擎互斥锁

返回值:见 SDK 头文件

bflb_sec_aes_mutex_give()

释放 AES 引擎互斥锁

返回值:见 SDK 头文件

bflb_sec_sha_mutex_take()

获取 SHA 引擎互斥锁

返回值:见 SDK 头文件

bflb_sec_sha_mutex_give()

释放 SHA 引擎互斥锁

返回值:见 SDK 头文件

bflb_sec_pka_mutex_take()

获取 PKA 引擎互斥锁

返回值:见 SDK 头文件

bflb_sec_pka_mutex_give()

释放 PKA 引擎互斥锁

返回值:见 SDK 头文件

PKA 公钥算法

bflb_pka_init(dev)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_deinit(dev)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lmod2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_ldiv2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lmul2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_ldiv(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lsqr(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lmul(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lsub(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_ladd(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_lcmp(dev, s0_regindex, s0_regsize, s1_regindex, s1_regsize)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:见 SDK 头文件

bflb_pka_minv(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_mexp(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_msqr(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_mmul(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_mrem(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_msub(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_madd(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_regsize(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_movdat(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_nlir(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_slir(dev, regindex, regsize, data, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_clir(dev, regindex, regsize, size, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_write(dev, regindex, regsize, data, size, lastop)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_read(dev, regindex, regsize, data, size)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_gf2mont(dev, s_regindex, s_regsize, d_regindex, d_regsize, t_regindex, t_regsize, p_regindex, p_regsize, size)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

bflb_pka_mont2gf(dev, s_regindex, s_regsize, d_regindex, d_regsize, invt_regindex, invt_regsize, t_regindex, t_regsize, p_regindex, p_regsize)

@addtogroup SEC_PKA @{

📎 设备名速查:支持的设备名(BL616)

返回值:无

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23