AES Encryption
bflb_aes_init(dev)
Enable aes.
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_deinit(dev)
Disable aes.
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_select_hwkey(dev, keysel0, keysel1)
Set aes hardware key.
Parameters:
dev:device handlekeysel0:hardware key mode in efuse tablekeysel1:hardware key mode in efuse table
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_set_hwkey_source(dev, source)
Set aes hardware key source.
Parameters:
dev:device handlesource:hardware key source
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_set_mode(dev, mode)
Set aes mode.
Parameters:
dev:device handlemode:aes mode, use @ref AES_MODE
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_setkey(dev, key, keybits)
Set aes key.
Parameters:
dev:device handlekey:pointer to aes key, if NULL, means use hardware keykeybits:aes keybits, can be 128/192/256
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_encrypt(dev, input, iv, output, len)
Perform aes encrypt.
Parameters:
dev:device handleinput:pointer to plaintextiv:input iv, if NULL, means use last iv.output:pointer to ciphertextlen:encrypt length, muse be multiple of 16
📎 Device name lookup: Supported Device Names (BL616)
Return value: A negated errno value on failure.
bflb_aes_decrypt(dev, input, iv, output, len)
Perform aes decrypt.
Parameters:
dev:device handleinput:pointer to ciphertextiv:input iv, if NULL, means use last iv.output:pointer to plaintextlen:decrypt length, muse be multiple of 16
📎 Device name lookup: Supported Device Names (BL616)
Return value: A negated errno value on failure.
bflb_aes_link_init(dev)
Enable aes link mode.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_link_deinit(dev)
Disable aes link mode.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_aes_link_update(dev, link_addr, input, output, len)
Perform encrypt or decrypt with link mode.
Parameters:
dev:device handlelink_addr:link struct pointer address, must be located in 0x2xxxxxxxinput:pointer to plaintext or ciphertextoutput:pointer to plaintext or ciphertextlen:update length, muse be multiple of 16
📎 Device name lookup: Supported Device Names (BL616)
Return value: A negated errno value on failure.
bflb_group0_request_aes_access(dev)
Enable aes in group0.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group1_request_aes_access(dev)
Enable aes in group1.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group0_release_aes_access(dev)
Disable aes in group0.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_group1_release_aes_access(dev)
Disable aes in group1.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
SHA Digest
bflb_sha_init(dev, mode)
Initialize the SHA engine and select the mode
Parameters:
dev:—mode:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha1_start(dev, ctx)
Start a SHA1 computation (init context)
Parameters:
dev:—ctx:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha256_start(dev, ctx)
Start a SHA256 computation (init context)
Parameters:
dev:—ctx:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha512_start(dev, ctx)
Start a SHA512 computation (init context)
Parameters:
dev:—ctx:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha1_update(dev, ctx, input, len)
Feed data into the SHA1 context
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha256_update(dev, ctx, input, len)
Feed data into the SHA256 context
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha512_update(dev, ctx, input, len)
Feed data into the SHA512 context
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha1_finish(dev, ctx, output)
Finish SHA1 and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha256_finish(dev, ctx, output)
Finish SHA256 and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha512_finish(dev, ctx, output)
Finish SHA512 and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha_link_init(dev)
Initialize SHA link-list (DMA) mode
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha_link_deinit(dev)
Disable SHA link-list mode
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha1_link_start(dev, ctx, link)
Start SHA1 in link-list (DMA) mode
Parameters:
dev:—ctx:—link:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha256_link_start(dev, ctx, link)
Start SHA256 in link-list mode (is224 selects SHA224)
Parameters:
dev:—ctx:—link:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha512_link_start(dev, ctx, link)
Start SHA512 in link-list mode (is384 selects SHA384)
Parameters:
dev:—ctx:—link:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha1_link_update(dev, ctx, input, len)
Feed data in SHA1 link-list mode
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha256_link_update(dev, ctx, input, len)
Feed data in SHA256 link-list mode
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha512_link_update(dev, ctx, input, len)
Feed data in SHA512 link-list mode
Parameters:
dev:—ctx:—input:—len:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: int
bflb_sha1_link_finish(dev, ctx, output)
Finish SHA1 link-list computation and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha256_link_finish(dev, ctx, output)
Finish SHA256 link-list computation and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha512_link_finish(dev, ctx, output)
Finish SHA512 link-list computation and output the digest
Parameters:
dev:—ctx:—output:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_group0_request_sha_access(dev)
Request Group0 access to the SHA engine
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group1_request_sha_access(dev)
Request Group1 access to the SHA engine
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group0_release_sha_access(dev)
Release Group0 SHA access
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_group1_release_sha_access(dev)
Release Group1 SHA access
Parameters:
dev:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sha_crc32_link_work(dev, addr, in, len, out)
One-shot SHA/CRC32 computation in link-list mode
Parameters:
dev:—addr:—in:—len:—out:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
bflb_sha1_once_padded(dev, input, output, nblock)
One-shot SHA1 computation (auto padding)
Parameters:
dev:—input:, 32 bytes alignedoutput:—nblock:—
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
TRNG
bflb_trng_read(dev, data)
Read trng data.
Parameters:
dev:device handledata:pointer to trng data
📎 Device name lookup: Supported Device Names (BL616)
Return value: A negated errno value on failure.
bflb_trng_readlen(data, len)
Read trng data with custom length.
Parameters:
data:pointer to trng datalen:length to read
Return value: A negated errno value on failure.
random()
Get trng data.
Return value: trng data with word
bflb_group0_request_trng_access(dev)
Enable trng in group0.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group1_request_trng_access(dev)
Enable trng in group1.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: 0 for success, -1 for failure
bflb_group0_release_trng_access(dev)
Disable trng in group0.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_group1_release_trng_access(dev)
Disable trng in group1.
Parameters:
dev:device handle
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
GMAC Authentication
bflb_sec_gmac_le_enable(dev)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sec_gmac_link_enable(dev, enable)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_sec_gmac_link_work(dev, addr, in, len, out)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
bflb_group0_request_gmac_access(dev)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
bflb_group0_release_gmac_access(dev)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_group1_request_gmac_access(dev)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
bflb_group1_release_gmac_access(dev)
SEC_ENG GMAC link config structure type definition
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
Engine Mutex
bflb_sec_mutex_init()
Initialize the AES/SHA/PKA engine mutexes
Return value: None
bflb_sec_aes_mutex_take()
Take the AES engine mutex
Return value: see the SDK header
bflb_sec_aes_mutex_give()
Give the AES engine mutex
Return value: see the SDK header
bflb_sec_sha_mutex_take()
Take the SHA engine mutex
Return value: see the SDK header
bflb_sec_sha_mutex_give()
Give the SHA engine mutex
Return value: see the SDK header
bflb_sec_pka_mutex_take()
Take the PKA engine mutex
Return value: see the SDK header
bflb_sec_pka_mutex_give()
Give the PKA engine mutex
Return value: see the SDK header
PKA Public-Key
bflb_pka_init(dev)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_deinit(dev)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lmod2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_ldiv2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lmul2n(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, bit_shift, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_ldiv(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lsqr(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lmul(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lsub(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_ladd(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_lcmp(dev, s0_regindex, s0_regsize, s1_regindex, s1_regsize)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: see the SDK header
bflb_pka_minv(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_mexp(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_msqr(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_mmul(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_mrem(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_msub(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_madd(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, s1_regindex, s1_regsize, s2_regindex, s2_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_regsize(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_movdat(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_nlir(dev, s0_regindex, s0_regsize, d0_regindex, d0_regsize, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_slir(dev, regindex, regsize, data, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_clir(dev, regindex, regsize, size, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_write(dev, regindex, regsize, data, size, lastop)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_read(dev, regindex, regsize, data, size)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
bflb_pka_gf2mont(dev, s_regindex, s_regsize, d_regindex, d_regsize, t_regindex, t_regsize, p_regindex, p_regsize, size)
@addtogroup SEC_PKA @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
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 @{
📎 Device name lookup: Supported Device Names (BL616)
Return value: None
Have questions?
For any other questions, visit the unified Q&A and discussion board: Ai-Thinker Discussions

