Qualifier and Type | Method Name and Description |
|---|---|
TEE_Result | TEE_AllocateOperation(TEE_OperationHandle *operation, uint32_t algorithm, uint32_t mode, uint32_t maxKeySize) 分配加解密资源,为需要运行的算法分配资源,初始化部分变量。 |
void | TEE_FreeOperation(TEE_OperationHandle operation) 释放加解密相关的资源。 |
void | TEE_GetOperationInfo(const TEE_OperationHandle operation, TEE_OperationInfo *operationInfo) 获取模块句柄的加解密信息,保存到operationInfo中。 |
void | TEE_ResetOperation(TEE_OperationHandle operation) 重置加解密模块句柄。 |
TEE_Result | TEE_SetOperationKey(TEE_OperationHandle operation, const TEE_ObjectHandle key) 设置加解密模块密钥。 |
TEE_Result | TEE_SetOperationKey2(TEE_OperationHandle operation, const TEE_ObjectHandle key1, const TEE_ObjectHandle key2) 设置加解密模块密钥1和密钥2。 |
void | TEE_CopyOperation(TEE_OperationHandle dstOperation, const TEE_OperationHandle srcOperation) 拷贝加解密模块句柄到另一个句柄。 |
void | TEE_CipherInit(TEE_OperationHandle operation, const void *IV, size_t IVLen) 加解密初始化,包括AES和DES初始化,不推荐DES。 |
TEE_Result | TEE_CipherUpdate(TEE_OperationHandle operation, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 加解密运算,包括AES和DES运算。 |
TEE_Result | TEE_CipherDoFinal(TEE_OperationHandle operation, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 结束加解密运算。 |
void | TEE_DigestUpdate(TEE_OperationHandle operation, const void *chunk, size_t chunkSize) 摘要运算,支持SHA1,SHA224,SHA256,SHA384,SHA512,推荐SHA256。 |
TEE_Result | TEE_DigestDoFinal(TEE_OperationHandle operation, const void *chunk, size_t chunkLen, void *hash, size_t *hashLen) 摘要运算结束,支持SHA1,SHA224,SHA256,SHA384,SHA512,推荐SHA256。 |
void | TEE_MACInit(TEE_OperationHandle operation, void *IV, size_t IVLen) MAC初始化。 |
void | TEE_MACUpdate(TEE_OperationHandle operation, const void *chunk, size_t chunkSize) MAC运算。 |
TEE_Result | TEE_MACComputeFinal(TEE_OperationHandle operation, const void *message, size_t messageLen, void *mac, size_t *macLen) MAC运算结束,并将计算出的mac写入到出参。 |
TEE_Result | TEE_MACCompareFinal(TEE_OperationHandle operation, const void *message, size_t messageLen, const void *mac, const size_t macLen) MAC运算结束,并将结果和输入数据比较。 |
void | TEE_DeriveKey(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, TEE_ObjectHandle derivedKey) 根据传入公私钥派生共享密钥。 |
void | TEE_GenerateRandom(void *randomBuffer, size_t randomBufferLen) 生成随机数。 |
TEE_Result | TEE_AEInit(TEE_OperationHandle operation, void *nonce, size_t nonceLen, uint32_t tagLen, size_t AADLen, size_t payloadLen) 认证加解密初始化。 |
void | TEE_AEUpdateAAD(TEE_OperationHandle operation, const void *AADdata, size_t AADdataLen) 认证加解密AAD运算。 |
TEE_Result | TEE_AEUpdate(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen) 认证加解密运算 |
TEE_Result | TEE_AEEncryptFinal(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen, void *tag, size_t *tagLen) 认证加密运算结束,并计算tag |
TEE_Result | TEE_AEDecryptFinal(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen, void *tag, size_t tagLen) 认证解密运算结束,并计算tag和输入tag进行比较 |
TEE_Result | TEE_AsymmetricEncrypt(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 非对称数据加密,只执行一次 |
TEE_Result | TEE_AsymmetricDecrypt(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 非对称数据解密,只执行一次 |
TEE_Result | TEE_AsymmetricSignDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, size_t digestLen, void *signature, size_t *signatureLen) 非对称数据签名摘要 |
TEE_Result | TEE_AsymmetricVerifyDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, size_t digestLen, void *signature, size_t signatureLen) 非对称数据签名摘要 |
TEE_Result | TEE_GetOperationInfoMultiple(TEE_OperationHandle operation, TEE_OperationInfoMultiple *operationInfoMultiple, const size_t *operationSize) 获取模块句柄的加解密信息,保存到operationInfoMultiple中 |
TEE_Result | TEE_IsAlgorithmSupported(uint32_t algId, uint32_t element) 查询TEE是否支持指定的加密算法和算法因子 |
Method |
|---|
TEE_Result TEE_AllocateOperation(TEE_OperationHandle *operation, uint32_t algorithm, uint32_t mode, uint32_t maxKeySize) 分配加解密资源,为需要运行的算法分配资源,初始化部分变量。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
algorithm | 加解密算法。 |
mode | 加解密模式。 |
maxKeySize | 最大密钥长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
void TEE_FreeOperation(TEE_OperationHandle operation) 释放加解密相关的资源。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
void TEE_GetOperationInfo(const TEE_OperationHandle operation, TEE_OperationInfo *operationInfo) 获取模块句柄的加解密信息,保存到operationInfo中。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
operationInfo | 加解密信息。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
void TEE_ResetOperation(TEE_OperationHandle operation) 重置加解密模块句柄。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_SetOperationKey(TEE_OperationHandle operation, const TEE_ObjectHandle key) 设置加解密模块密钥。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
key | 密钥句柄。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_SetOperationKey2(TEE_OperationHandle operation, const TEE_ObjectHandle key1, const TEE_ObjectHandle key2) 设置加解密模块密钥1和密钥2。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
key1 | 密钥1句柄。 |
Key2 | 密钥2句柄。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
void TEE_CopyOperation(TEE_OperationHandle dstOperation, const TEE_OperationHandle srcOperation) 拷贝加解密模块句柄到另一个句柄。 |
Parameters
Name | Description |
|---|---|
dstOperation | 目标加解密模块句柄。 |
srcOperation | 源加解密模块句柄。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
void TEE_CipherInit(TEE_OperationHandle operation, const void *IV, size_t IVLen) 加解密初始化,包括AES和DES初始化,不推荐DES。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
IV | 初始化向量指针,如果不需要初始化向量的话设为NULL。 |
IVLen | 初始化向量长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_CipherUpdate(TEE_OperationHandle operation, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 加解密运算,包括AES和DES运算。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
srcData | 输入加密/解密数据指针。 |
srcLen | 输入加密/解密数据长度。 |
destData | 输出解密/加密数据指针。 |
destLen | 输出解密/加密数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_CipherDoFinal(TEE_OperationHandle operation, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 结束加解密运算。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
srcData | 输入加密/解密数据指针。 |
srcLen | 输入加密/解密数据长度。 |
destData | 输出解密/加密数据指针。 |
destLen | 输出解密/加密数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义 |
Method |
|---|
void TEE_DigestUpdate(TEE_OperationHandle operation, const void *chunk, size_t chunkSize) 摘要运算,支持SHA1、SHA224、SHA256、SHA384、SHA512,推荐SHA256。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
chunk | 输入数据指针。 |
chunkSize | 输入数据长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_DigestDoFinal(TEE_OperationHandle operation, const void *chunk, size_t chunkLen, void *hash, size_t *hashLen) 摘要运算结束,支持SHA1、SHA224、SHA256、SHA384、SHA512,推荐SHA256。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
chunk | 输入数据指针。 |
chunkLen | 输入数据长度 |
hash | 输出摘要数据指针。 |
hashLen | 输出摘要数据长度 固定长度且与算法有关。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
void TEE_MACInit(TEE_OperationHandle operation, void *IV, size_t IVLen) MAC初始化。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
IV | 初始化向量指针。 |
IVLen | 初始化向量长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
void TEE_MACUpdate(TEE_OperationHandle operation, const void *chunk, size_t chunkSize) MAC运算。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
chunk | 输入数据指针。 |
chunkSize | 输入数据长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_MACComputeFinal(TEE_OperationHandle operation, const void *message, size_t messageLen, void *mac, size_t *macLen) MAC运算结束,并将计算出的mac写入到出参。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
message | 输入比较数据指针。 |
messageLen | 输入比较数据长度。 |
mac | 输出摘要数据指针。 |
macLen | 输出摘要数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_MACCompareFinal(TEE_OperationHandle operation, const void *message, size_t messageLen, const void *mac, const size_t macLen) MAC运算结束,并将结果和输入数据比较。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
message | 输入比较数据指针。 |
messageLen | 输入比较数据长度。 |
mac | 输出摘要数据指针。 |
macLen | 输出摘要数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
void TEE_DeriveKey(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, TEE_ObjectHandle derivedKey) 根据传入公私钥派生共享密钥。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
params | 共享机密数据指针。 |
paramCount | 共享机密数据个数。 |
derivedKey | 派生密钥句柄。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
void TEE_GenerateRandom(void *randomBuffer, size_t randomBufferLen) 生成随机数。 |
Parameters
Name | Description |
|---|---|
randomBuffer | 随机数指针。 |
randomBufferLen | 随机数长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_AEInit(TEE_OperationHandle operation, void *nonce, size_t nonceLen, uint32_t tagLen, size_t AADLen, size_t payloadLen) 认证加解密初始化 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
nonce | 输入随机数数据指针。 |
nonceLen | 输入随机数数据长度。 |
tagLen | 按位表示的摘要数据长度。 |
AADLen | 附加认证数据长度。 |
payloadLen | 加解密数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
void TEE_AEUpdateAAD(TEE_OperationHandle operation, const void *AADdata, size_t AADdataLen) 认证加解密AAD运算。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
AADdata | 输入附加认证数据指针。 |
AADdataLen | 输入附加认证数据长度。 |
Return
Type | Description |
|---|---|
void | - |
Method |
|---|
TEE_Result TEE_AEUpdate(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen) 认证加解密运算。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
srcData | 输入加密/解密数据指针。 |
srcLen | 输入加密/解密数据长度。 |
destData | 输出解密/加密数据指针。 |
destLen | 输出解密/加密数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AEEncryptFinal(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen, void *tag, size_t *tagLen) 认证加密运算结束,并计算tag。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
srcData | 输入加密/解密数据指针。 |
srcLen | 输入加密/解密数据长度。 |
destData | 输出解密/加密数据指针。 |
destLen | 输出解密/加密数据长度。 |
tag | 校验数据指针。 |
tagLen | 校验数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AEDecryptFinal(TEE_OperationHandle operation, void *srcData, size_t srcLen, void *destData, size_t *destLen, void *tag, size_t tagLen) 认证解密运算结束,并计算tag和输入tag进行比较。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
srcData | 输入加密/解密数据指针。 |
srcLen | 输入加密/解密数据长度。 |
destData | 输出解密/加密数据指针。 |
destLen | 输出解密/加密数据长度。 |
tag | 校验数据指针。 |
tagLen | 校验数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AsymmetricEncrypt(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 非对称数据加密,只执行一次。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
params | 参数指针。 |
paramCount | 参数个数。 |
srcData | 输入加密数据指针。 |
srcLen | 输入加密数据长度。 |
destData | 输出加密后的数据指针。 |
destLen | 输出加密后数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AsymmetricDecrypt(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *srcData, size_t srcLen, void *destData, size_t *destLen) 非对称数据解密,只执行一次。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
params | 参数指针。 |
paramCount | 参数个数。 |
srcData | 输入加密数据指针。 |
srcLen | 输入加密数据长度。 |
destData | 输出加密后的数据指针。 |
destLen | 输出加密后数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AsymmetricSignDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, size_t digestLen, void *signature, size_t *signatureLen) 非对称数据签名摘要。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
params | 参数指针。 |
paramCount | 参数个数。 |
digest | 摘要数据指针。 |
digestLen | 摘要数据长度。 |
signature | 签名数据指针。 |
signatureLen | 签名数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_AsymmetricVerifyDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, size_t digestLen, void *signature, size_t signatureLen) 验证非对称数据签名摘要。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
params | 参数指针。 |
paramCount | 参数个数。 |
digest | 摘要数据指针。 |
digestLen | 摘要数据长度。 |
signature | 签名数据指针。 |
signatureLen | 签名数据长度。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_GetOperationInfoMultiple(TEE_OperationHandle operation, TEE_OperationInfoMultiple *operationInfoMultiple, const size_t *operationSize) 获取模块句柄的加解密信息,保存到operationInfoMultiple中。 |
Parameters
Name | Description |
|---|---|
operation | 加解密模块句柄。 |
operationInfoMultiple | 加解密信息。 |
operationSize | 加解密模块句柄数量。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |
Method |
|---|
TEE_Result TEE_IsAlgorithmSupported(uint32_t algId, uint32_t element) 查询TEE是否支持指定的加密算法和算法因子。 |
Parameters
Name | Description |
|---|---|
algId | 加密算法。 |
element | 加密因子。 |
Return
Type | Description |
|---|---|
TEE_Result | 参见错误码定义。 |