嵌入式开发论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 111|回复: 0

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

[复制链接]

59

主题

64

帖子

255

积分

版主

Rank: 7Rank: 7Rank: 7

积分
255
发表于 2018-11-25 14:32:08 | 显示全部楼层 |阅读模式
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接口实现上述算法。
本文中的示例代码已经上传到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来执行相关的算法。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|TEE and Virtualization

GMT+8, 2019-5-25 18:51 , Processed in 0.071658 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表