【FAQ】全志R329Tina中TA下有哪些加解密接口?
-
问题背景
客户希望在安全OS端实现如下功能:
- RSA私钥的生成与存储;
- 公钥的提取(指定私钥,提取对应的公钥)
- 指定信息的签名;对非安全OS传入的信息进行签名后,返回签名结果;
- 信息的加密、解密;对传入的信息进行加密、解密等操作,并返回结果;
想咨询一下当前Tina optee是否支持openssl库,如果不支持openssl库,如何实现上述功能。
问题分析
首先optee不支持openssl库,但是有其他替代方案。
GlobalPlatform API
OPTEE实现了《GPD_TEE_Internal_Core_API_Specification》这一套API,提供了对称加密、非对称加密、签名、提取密钥等操作。
mbedtls库
mbedtls是为嵌入式设备而开发的一个TLS协议的轻量级实现,虽然是为嵌入式设备而开发,但它也能被用于其他各种平台,因此也常常被用作OpenSSL的一个轻量级替代。Tina SDK中optee-3.7.0中已经支持。
解决办法
GlobalPlatform API
密钥生成API:
TEE_GenerateKey密钥提取API:
TEE_GetObjectBufferAttribute签名验证API:
TEE_AsymmetricSignDigest
TEE_AsymmetricVerifyDigest加解密API:
TEE_CipherInit
TEE_CipherUpdate
TEE_CipherDoFinal
TEE_AsymmetricEncrypt
TEE_AsymmetricDecrypt可参考Linaro Security Working Group提供的例子,https://github.com/linaro-swg/optee_examples
mbedtls库
mbedtls算是比较常用的库,可参考官方API文档:https://tls.mbed.org/api/本文提供了一个rsa例子,如附件0003-optee-add-optee-mbedtls-rsa-demo.patch
0003-optee-add-optee-mbedtls-rsa-demo.patch -
-
-
-
-
Copyright © 2023 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号