TEE

接口描述

TEE (Trusted Execution Environment)可信执行环境。它保证在内部加载的代码和数据在保密性和完整性方面受到保护。作为独立执行环境的tee提供安全功能,如独立执行、使用tee执行的应用程序的完整性以及保密性。tee提供了一个执行空间,此空间内提供了更高级别的安全性。

csi_tee_aes_encrypt

int32_t csi_tee_aes_encrypt(const uint8_t *in, uint32_t in_len,
                            const uint8_t *key, uint32_t key_len,
                            uint8_t iv[16],
                            uint8_t *out,
                            tee_aes_mode_e mode);
  • 功能描述:
    • TEE AES加密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向纯文本缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • iv: 初始向量IV(Initialization Vector),CBC模式下使用。
    • out:输出缓存区,指向密文存储区域的指针。
    • mode:TEE AES模式,见tee_aes_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_aes_decrypt

int32_t csi_tee_aes_decrypt(const uint8_t *in, uint32_t in_len,
                            const uint8_t *key, uint32_t key_len,
                            uint8_t iv[16],
                            uint8_t *out,
                            uint32_t mode);
  • 功能描述:
    • TEE AES解密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向密文缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • iv: 初始向量IV(Initialization Vector),CBC模式下使用。
    • out:输出缓存区,指向明文存储区域的指针。
    • mode:TEE AES模式,见tee_aes_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

tee_aes_mode_e:

名字 定义 备注
TEE_AES_MODE_ECB TEE ECB 模式
TEE_AES_MODE_CBC TEE CBC 模式
TEE_AES_MODE_MAX 无效

csi_tee_aes_encrypt_ecb

#define csi_tee_aes_encrypt_ecb(in, in_len, key, key_len, out) \
    csi_tee_aes_encrypt(in, in_len, key, key_len, NULL, out, TEE_AES_MODE_ECB)
  • 功能描述:
    • TEE AES ECB模式加密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向纯文本缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • out:输出缓存区,指向密文存储区域的指针。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_aes_decrypt_ecb

#define csi_tee_aes_decrypt_ecb(in, in_len, key, key_len, out) \
    csi_tee_aes_decrypt(in, in_len, key, key_len, NULL, out, TEE_AES_MODE_ECB)
  • 功能描述:
    • TEE AES ECB模式解密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向密文缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • out:输出缓存区,指向明文存储区域的指针。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_aes_encrypt_cbc

#define csi_tee_aes_encrypt_cbc(in, in_len, key, key_len, iv, out) \
    csi_tee_aes_encrypt(in, in_len, key, key_len, iv, out, TEE_AES_MODE_CBC)
  • 功能描述:
    • TEE AES CBC模式加密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向纯文本缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • iv: 初始向量IV(Initialization Vector)。
    • out:输出缓存区,指向密文存储区域的指针。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_aes_decrypt_cbc

#define csi_tee_aes_decrypt_cbc(in, in_len, key, key_len, iv, out) \
    csi_tee_aes_decrypt(in, in_len, key, key_len, iv, out, TEE_AES_MODE_CBC)
  • 功能描述:
    • TEE AES CBC模式解密。长度应为块大小的倍数(16字节)调用此函数后,将更新iv的内容。
  • 参数:
    • in: 输入缓存区,指向密文缓冲区的指针。
    • in_len: 输入缓存区长度。
    • key:指向密钥的指针。
    • key_len:密钥长度(对于aes128,必须为16字节;对于aes192,必须为24字节;对于aes256,必须为32字节)。
    • iv: 初始向量IV(Initialization Vector)。
    • out:输出缓存区,指向明文存储区域的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_base64

int32_t csi_tee_base64(const uint8_t *in, uint32_t in_len,
                       uint8_t *out, uint32_t *out_len,
                       uint32_t is_encode,
                       uint32_t wsafe);
  • 功能描述:
    • TEE Base64编码/解码
  • 参数:
    • in: 输入缓存区。
    • in_len: 输入缓存区长度。
    • out:输出缓存区。
    • out_len:存储输出数据长度的地址。
    • is_encode: is_encode = 1 表示编码, is_encode = 0 表示解码。
    • wsafe: base64 websafe功能,设置1,用“-”替换“+/”
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_base64_encode

#define csi_tee_base64_encode(in,in_len,out,out_len) \
    csi_tee_base64(in,in_len,out,out_len,1,0)
  • 功能描述:
    • TEE Base64编码
  • 参数:
    • in: 输入缓存区。
    • in_len: 输入缓存区长度。
    • out:输出缓存区。
    • out_len:存储输出数据长度的地址。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_base64_decode

#define csi_tee_base64_decode(in,in_len,out,out_len) \
    csi_tee_base64(in,in_len,out,out_len,0,0)
  • 功能描述:
    • TEE Base64解码
  • 参数:
    • in: 输入缓存区。
    • in_len: 输入缓存区长度。
    • out:输出缓存区。
    • out_len:存储输出数据长度的地址。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_base64_websafe_encode

#define csi_tee_base64_websafe_encode(in,in_len,out,out_len) \
    csi_tee_base64(in,in_len,out,out_len,1,1)
  • 功能描述:
    • TEE Base64 web safe编码
  • 参数:
    • in: 输入缓存区。
    • in_len: 输入缓存区长度。
    • out:输出缓存区。
    • out_len:存储输出数据长度的地址。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_base64_websafe_decode

#define csi_tee_base64_websafe_decode(in,in_len,out,out_len) \
    csi_tee_base64(in,in_len,out,out_len,0,1)
  • 功能描述:
    • TEE Base64 web safe解码
  • 参数:
    • in: 输入缓存区。
    • in_len: 输入缓存区长度。
    • out:输出缓存区。
    • out_len:存储输出数据长度的地址。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_get_cid

int32_t csi_tee_get_cid(uint8_t *out, uint32_t *out_len);
  • 功能描述:
    • TEE 从密钥中获取CID
  • 参数:
    • out:输出缓存区,存储CID。
    • out_len:存储输出数据长度的地址。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_enter_lpm

int32_t csi_tee_enter_lpm(uint32_t gate, uint32_t irqid, tee_lpm_mode_e mode);
  • 功能描述:
    • TEE 设置低功耗模式。
  • 参数:
    • gate:暂不启用。
    • irqid:暂不启用。
    • tee_lpm_mode_e:低功耗模式,见tee_lpm_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

tee_lpm_mode_e:

名字 定义 备注
TEE_LPM_MODE_WAIT lpm等待
TEE_LPM_MODE_DOZE lpm低级省电模式
TEE_LPM_MODE_STOP lpm停止
TEE_LPM_MODE_STANDBY lpm空闲
TEE_LPM_MODE_CLOCK lpm时钟
TEE_LPM_MODE_MAX 无效

csi_tee_get_manifest_info

int32_t csi_tee_get_manifest_info(uint8_t *out, uint32_t *out_len, char *name);
  • 功能描述:
    • TEE 从清单列表提取清单信息。
  • 参数:
    • out:指向信息缓冲区的指针。
    • out_len:若提取成功,则存储提取数据的长度。
    • name: 需要获取的信息名称。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_get_sys_img_info

#define csi_tee_get_sys_img_info(out,out_len,img_name) \
    csi_tee_get_manifest_info(out,out_len,img_name)
  • 功能描述:
    • TEE 从清单列表提取镜像。
  • 参数:
    • out:指向镜像缓存区的指针。
    • out_len:若提取成功,则存储提取数据的长度。
    • img_name: 需要获的镜像名称。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_get_sys_os_version

#define csi_tee_get_sys_os_version(out,out_len) \
    csi_tee_get_manifest_info(out,out_len,"os_v")
  • 功能描述:
    • TEE 从清单列表提取镜像系统版本信息。
  • 参数:
    • out:指向系统版本存储缓冲区的指针。
    • out_len:若提取成功,则存储提取数据的长度。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_get_sys_partition

#define csi_tee_get_sys_partition(out,out_len) \
    csi_tee_get_manifest_info(out,out_len,"sys_p")
  • 功能描述:
    • TEE 从清单列表提系统分区信息。
  • 参数:
    • out:存储缓冲区的指针。
    • out_len:若提取成功,则存储提取数据的长度。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_rand_seed

 int32_t csi_tee_rand_seed(uint32_t seed);
  • 功能描述:
    • TEE 设置随机种子。
  • 参数:
    • seed:随机种子。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_rand_generate

int32_t csi_tee_rand_generate(uint8_t *out, uint32_t out_len);
  • 功能描述:
    • TEE 生成随机日期。
  • 参数:
    • out:随机日期的存储区。
    • out_len:数据存储器区的长度。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码。

csi_tee_rsa_sign

int32_t csi_tee_rsa_sign(const uint8_t *in, uint32_t in_len,
                         const uint8_t *key, uint32_t key_len,
                         uint8_t *sign, uint32_t *sign_len,
                         tee_rsa_sign_type_e type);
  • 功能描述:
    • TEE RSA 私钥签名。
  • 参数:
    • in:指向摘要缓冲区的指针。
    • in_len:摘要缓冲区长度。
    • key:密钥指,指向私钥,密钥包含n, e, d。
    • key_len:私钥大小,对于RSA1024必须是1283 = 384字节,对于RSA2048必须是2563 = 768字节。
    • sign:签名缓存区
    • sign_len:签名缓存区长度
    • tee_rsa_sign_type_e:签名类型,见tee_rsa_sign_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_rsa_verify

int32_t csi_tee_rsa_verify(const uint8_t *in, uint32_t in_len,
                           const uint8_t *key, uint32_t key_len,
                           uint8_t *sign, uint32_t sign_len,
                           tee_rsa_sign_type_e type);
  • 功能描述:
    • TEE RSA使用公钥验证。
  • 参数:
    • in:指向摘要缓冲区的指针。
    • in_len:摘要缓冲区长度。
    • key:密钥指,指向公包含n, e。
    • key_len:公钥大小,对于RSA1024必须是1282 = 256字节,对于RSA2048必须是2562 = 512字节
    • sign:签名缓存区
    • sign_len:签名缓存区长度
    • tee_rsa_sign_type_e:签名类型,见tee_rsa_sign_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码
名称 定义 备注
TEE_RSA_MD5 MD5
TEE_RSA_SHA1 哈希1
TEE_RSA_SHA256 哈希256
TEE_RSA_SIGN_TYPE_MAX 无效

csi_tee_rsa_encrypt

int32_t csi_tee_rsa_encrypt(const uint8_t *in, uint32_t in_len,
                            const uint8_t *key, uint32_t key_len,
                            uint8_t *out, uint32_t *out_len,
                            tee_rsa_padding_mode_e padding);
  • 功能描述:
    • TEE RSA使用公钥加密
  • 参数:
    • in:指向明文数据的指针。
    • in_len:明文数据长度。
    • key:密钥指,指向公钥包含n, e。
    • key_len:公钥大小,对于RSA1024必须是1282 = 256字节,对于RSA2048必须是2562 = 512字节
    • out:密文缓冲区。
    • out_len:密文数据长度。
    • tee_rsa_padding_mode_e:填充模式,tee_rsa_padding_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_rsa_decrypt

int32_t csi_tee_rsa_decrypt(const uint8_t *in, uint32_t in_len,
                            const uint8_t *key, uint32_t key_len,
                            uint8_t *out, uint32_t *out_len,
                            tee_rsa_padding_mode_e padding);
  • 功能描述:
    • TEE RSA使用私钥解密
  • 参数:
    • in:指向密文数据的指针指针。
    • in_len:密文数据长度。
    • key:密钥指,指向私钥,包含n, e,d。
    • key_len:密钥长度私钥大小,RSA1024必须为1283=384字节,RSA2048必须为2563=768字节。
    • out:明文数据存储区。
    • out_len:明文数据长度。
    • tee_rsa_padding_mode_e:填充模式,tee_rsa_padding_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

tee_rsa_padding_mode_e:

名称 定义 备注
TEE_RSA_PKCS1_PADDING RSA PKCS填充模式
TEE_RSA_NO_PADDING RSA 无填充模式

csi_tee_cid_rsa_sign

#define csi_tee_cid_rsa_sign(in,in_len,sign,sign_len,type) \
    csi_tee_rsa_sign(in,in_len,NULL,0,sign,sign_len,type)
  • 功能描述:
    • TEE RSA 使用内部私钥签名。(仅在密钥设置存在时使用)
  • 参数:
    • in:指向摘要缓冲区的指针。
    • in_len:摘要缓冲区长度。
    • sign:签名缓存区
    • sign_len:签名缓存区长度
    • tee_rsa_sign_type_e:签名类型,见tee_rsa_sign_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_rsa_sign

#define csi_tee_cid_rsa_verify(in,in_len,sign,sign_len,type) \
    csi_tee_rsa_verify(in,in_len,NULL,0,sign,sign_len,type)
  • 功能描述:
    • TEE RSA使用内部公钥验证。(仅在密钥设置存在时使用)
  • 参数:
    • in:指向摘要缓冲区的指针。
    • in_len:摘要缓冲区长度。
    • sign:签名缓存区
    • sign_len:签名缓存区长度
    • tee_rsa_sign_type_e:签名类型,见tee_rsa_sign_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_cid_rsa_encrypt

#define csi_tee_cid_rsa_encrypt(in,in_len,out,out_len,padding) \
    csi_tee_rsa_encrypt(in,in_len,NULL,0,out,out_len,padding)
  • 功能描述:
    • TEE RSA使用内部公钥加密。(仅在密钥设置存在时使用)
  • 参数:
    • in:指向明文数据的指针。
    • in_len:明文数据长度。
    • out:密文缓冲区。
    • out_len:密文数据长度。
    • tee_rsa_padding_mode_e:填充模式,tee_rsa_padding_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_cid_rsa_decrypt

#define csi_tee_cid_rsa_decrypt(in,in_len,out,out_len,padding) \
    csi_tee_rsa_decrypt(in,in_len,NULL,0,out,out_len,padding)
  • 功能描述:
    • TEE RSA使用内部私钥解密
  • 参数:
    • in:指向密文数据的指针指针。
    • in_len:密文数据长度。
    • out:明文数据存储区。
    • out_len:明文数据长度。
    • tee_rsa_padding_mode_e:填充模式,tee_rsa_padding_mode_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_img_rsa_verify

int32_t csi_tee_img_rsa_verify(const uint8_t *in, uint32_t in_len,
                               uint8_t *sign, uint32_t sign_len,
                               tee_rsa_sign_type_e type);
  • 功能描述:
    • TEE 使用boot公钥验证boot镜像
  • 参数:
    • in:指向摘要缓冲区的指针。
    • in_len:摘要缓冲区长度。
    • sign:签名缓存区
    • sign_len:签名缓存区长度
    • tee_rsa_sign_type_e:签名类型,见tee_rsa_sign_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_hmac

int32_t csi_tee_hmac(const uint8_t *in, uint32_t  in_len,
                     const uint8_t *key, uint32_t key_len,
                     uint8_t *out,
                     tee_hmac_type_e type,
                     tee_hash_op_e hash_op,
                     uint32_t *ctx);
  • 功能描述:
    • TEE hmac
  • 参数:
    • in:指向输入数据存储区。
    • in_len:输入数据长度。
    • key:密钥存储区。
    • key_len:密钥长度。
    • out:输出数据存储区
    • type:见tee_hmac_type_e定义。
    • hash_op:hash操作,见tee_hash_op_e定义。
    • ctx:指向hmac上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_hmac_digest

#define csi_tee_hmac_digest(in,in_len,key,key_len,out,type) \
    csi_tee_hmac(in,in_len,key,key_len,out,type,TEE_HASH_OP_NONE,NULL)
  • 功能描述:
    • TEE HAMC digest
  • 参数:
    • in:指向输入数据存储区。
    • in_len:输入数据长度。
    • key:密钥存储区。
    • key_len:密钥长度。
    • out:输出数据存储区
    • type:见Tee_hmac_type_e定义。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

tee_hmac_type_e:

名称 定义 备注
TEE_HMAC_SHA1 = 1, ///< HMAC with SHA1

tee_hash_op_e:

名称 定义 备注
TEE_HASH_OP_NONE 无操作
TEE_HASH_OP_START hash 初始化
TEE_HASH_OP_UPDATA hash 更新
TEE_HASH_OP_FINISH hash 结束
TEE_HASH_OP_MAX 无效

csi_tee_sha

int32_t csi_tee_sha(const uint8_t *in, uint32_t in_len,
                    uint8_t *out,
                    tee_sha_type_t type,
                    tee_hash_op_e hash_op,
                    void *ctx);
  • 功能描述:
    • TEE SHA,调用csi_tee_sha_digest、csi_tee_sha_start、csi_tee_sha_update或csi_tee_sha_finish优于使用csi_tee_sha。根据类型,需要设置足够大的缓存区,例如TEE_SHA1是20字节,TEE_SHA256是32字节。
  • 参数:
    • in:指向输入数据存储区。
    • in_len:输入数据长度。
    • out:数据输出缓存区
    • type:见tee_hmac_type_e]定义。
    • hash_op:hash操作,见tee_hash_op_e定义。
    • ctx:指向sha上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_sha_digest

#define csi_tee_sha_digest(in,in_len,out,type) \
    csi_tee_sha(in,in_len,out,type,TEE_HASH_OP_NONE,NULL);
  • 功能描述:
    • TEE SHA digest
  • 参数:
    • in:指向输入数据存储区。
    • in_len:输入数据长度。
    • out:数据输出缓存区
    • type:见tee_hmac_type_e定义。
    • ctx:指向sha上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_sha_start

#define csi_tee_sha_start(type,ctx) \
    csi_tee_sha(NULL,0,NULL,type,TEE_HASH_OP_START,ctx);
  • 功能描述:
    • TEE 初始化启动SHA
  • 参数:
    • type:见tee_hmac_type_e定义。
    • ctx:指向sha上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_sha_update

#define csi_tee_sha_update(in,in_len,ctx) \
    csi_tee_sha(in,in_len,NULL,0,TEE_HASH_OP_UPDATA,ctx);
  • 功能描述:
    • TEE SHA更新数据
  • 参数:
    • in:指向输入数据存储区。
    • in_len:输入数据长度。
    • ctx:指向sha上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_sha_finish

#define csi_tee_sha_finish(out,ctx) \
    csi_tee_sha(NULL,0,out,0,TEE_HASH_OP_FINISH,ctx);
  • 功能描述:
    • 获取TEE SHA摘要
  • 参数:
    • out:数据输出缓存区
    • ctx:指向sha上下文的指针
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_dev_info_get

int32_t csi_tee_dev_info_get(const uint8_t *name_encrypted, uint32_t name_encrypted_len,
                             const uint8_t *product_key_encrypted, 
                             uint32_t product_key_encrypted_len,
                             const uint8_t *name, uint32_t *name_len,
                             const uint8_t *product_key, uint32_t *product_key_len);
  • 功能描述:
    • TEE获取设备名称和产品密钥
  • 参数:
    • name_encrypted:指向设备名称密文
    • name_encrypted_len:设备名称密文长度
    • product_key_encrypted:指向设备产品密钥密文
    • product_key_encrypted_len:设备产品密钥密文长度
    • name:设备名称存储区
    • name_len:设备名称长度
    • product_key:产品密钥
    • product_key_len:产品密钥长度
  • 返回值:
    • 0: 成功。
    • 其它: 错误码、

csi_tee_dev_info_sign

int32_t csi_tee_dev_info_sign(const uint8_t *in, uint32_t in_len,
                              const uint8_t *device_secret, uint32_t device_secret_len,
                              const uint8_t *sign, uint32_t *sign_len);
  • 功能描述:
    • TEE设备信息签名
  • 参数:
    • in:输入数据
    • in_len:输入数据长度
    • device_secret:设备密文
    • device_secret_len:设备密文长度
    • sign: 签名缓存区
    • sign_len:签名长度
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_dev_info_crypt

int32_t csi_tee_dev_info_crypt(const uint8_t *in, uint32_t in_len,
                               uint8_t *out, uint32_t *out_len,
                               uint8_t is_enc);
  • 功能描述:
    • TEE设备信息加密/解密。
  • 参数:
    • in:输入数据。
    • in_len:输入数据长度。
    • out:输出数据。
    • out_len:输出数据长度。
    • is_enc: 1加密,0解密。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_dev_info_crypt

#define csi_tee_dev_info_encrypt(in, in_len, out, out_len) \
    csi_tee_dev_info_crypt(in, in_len, out, out_len, 1)
  • 功能描述:
    • TEE设备信息加密
  • 参数:
    • in:输入数据。
    • in_len:输入数据长度。
    • out:输出数据。
    • out_len:输出数据长度。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_dev_info_decrypt

#define csi_tee_dev_info_decrypt(in, in_len, out, out_len) \
    csi_tee_dev_info_crypt(in, in_len, out, out_len, 0)
  • 功能描述:
    • TEE设备信息解密。
  • 参数:
    • in:输入数据。
    • in_len:输入数据长度。
    • out:输出数据。
    • out_len:输出数据长度。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_set_sys_freq

int32_t csi_tee_set_sys_freq(uint32_t clk_src, uint32_t clk_val)
  • 功能描述:
    • TEE设置系统频率。
  • 参数:
    • clk_src: 时钟源。
    • clk_val :系统时钟频率。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_get_sys_freq

int32_t csi_tee_get_sys_freq(uint32_t *clk_val);
  • 功能描述:
    • TEE设备信息解密。
  • 参数:
    • clk_val:系统时钟频率
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_read_reg

int32_t csi_tee_read_reg(uint32_t addr, uint32_t *val);
  • 功能描述:
    • TEE读取系统寄存器值。
  • 参数:
    • addr: 寄存器地址。
    • val:寄存器值。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

csi_tee_write_reg

int32_t csi_tee_write_reg(uint32_t addr, uint32_t val);
  • 功能描述:
    • TEE写系统寄存器。
  • 参数:
    • addr: 寄存器地址。
    • val:寄存器值。
  • 返回值:
    • 0: 成功。
    • 其它: 错误码

results matching ""

    No results matching ""