35. OP-TEE中基本算法接口调用实现

   

OP-TEE根据GP标准支持当前主流的基本算法,包括RAS/AES/HMAC/SHA/RANDOM等,本文将介绍在OP-TEE中添加一个TA和CA来调用上述算法的GP接口实现对数据的加密,解密,签名,验签,计算hash值等操作。

  在xtest中也有上述算法的接口调用用例,但是查看下来比较零散,并不符合使用者直接调用。例如在xtest中,如果要对数据进行AES的加密操作,在xtest中可能需要在TA和CA之间多次传递数据来完成。而正常的用户希望能达到的效果是只要在CA中带需要被处理的数据调用接口就能够对数据的完成AES操作。代码中的TA实现了在TEE侧完整调用GP接口实现上述算法。代码可以从如下链接中下载,

basicAlog_use源代码

本文中的示例代码已经上传到gitHub,可使用如下命令从gitHub中获取示例代码:

git clone https://github.com/shuaifengyun/basicAlg_use.git

  上述代码在OP-TEE+qemu的环境下测试通过,但是AES的cts模式解密和解密有点问题,计算的结果跟openssl的AES cts模式的结果不大一样,貌似是OP-TEE的AES的cts算法的软件实现有问题,这个不大确定,有高手找到root cause还望不吝赐教。下面将介绍如何将上述TA和CA添加OP-TEE中并允许。首先可以参考《2. OP-TEE中添加自己的TA和CA》一文熟悉如何在OP-TEE中添加TA和CA。

Note:   由于OP-TEE代码更新,在上述git链接中已经添加了两个patch,读者可以直接应用包中的patch后就可以将链接中的

示例集成到最新的op-tee中并运行。

1. 测试编译下载的代码

  下载上述代码后,将代码放在OP-TEE的根目录下,进入到basicAlg_use目录然后运行build_ta_cryverify_qemu.sh脚本来测试代码是否能够编译通过(需要OP-TEE已经编译通过)。

2. 将basicAlg的TA和CA集成到系统中

  如果运行build_ta_cryverify_qemu.sh脚本测试编译通过之后。可以将basicAlg_use这个TA和CA添加到系统中去,代码在qemu+OP-TEE的方式运行是通过的。

2.1 修改Makefile文件

  修改build目录中的Makefile或者qemu.mk,我将build目录下的Make链接成了qemu.mk,在Makefile中添加编译basicAlg_use的target,内容如下:

2.2 修改comm.mk文件

  修改build目录下的common.mk文件,添加basicAlg_use所在目录变量:BASIC_ALG_USE_PATH

添加编译basicAlg的相关配置变量,添加的内容如下图所示

在filelist-tee-common的target中添加对basicAlg_use的依赖

在filelist-tee-common的target中添加basicAlg的相关操作,主要是在编译的时候将basicAlg_use的TA image和CA binary添加到REE中的文件系统中。添加的内容如下图中的红框中部分:

3. 其他

  在basicAlg_use目录中可以修改CA binary的名字,记得修改之后也需要同步修改comm.mk文件中的file-tee-common中的部分。同样也可以根据实际情况修改TA image的UUID,同时修改之后也需要同步修改comm.mk文件中的file-tee-common中的部分。关于如何修改UUID,怎么将自己的代码作为TA程序来运行的方法可参考《2. OP-TEE中添加自己的TA和CA》。

4. 整体编译工程进行测试

  修改完毕之后,进入到build目录中运行make -f qemu.mk all编译整个工程。关于如何使用basicAlg_use的CA binary,请参与basicAlg_use目录中的README.md一文。

  编译完成之后在build目录下执行make -f qemu.mk run-only开始启动QEMU+OP-TEE的环境,启动完成之后在启动的linux shell端直接安全REAMME.md文中运行指令就可以调用TA来执行相关的算法。

评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值