1. 功能概述¶
本文的demo sample实现从用户层调用HSM中的硬件加解密引擎,完成对称算法、HASH算法、MAC算法、AEAD算法、非对称算法、密钥协商算法的计算。
1.1. 软件架构说明¶
按照调用的算法,将本demo分为三个部分,第一部分为hsm engine,通过调用openssl标准api,利用openssl engine机制,调用TA进入OP-TEE,OP-TEE通过IPC将请求发送给HSM执行;第二部分为 libhb_crypto,用于调用openssl标准API不支持的一些算法,同样是调用TA进入OP-TEE,OP-TEE通过IPC将请求发送给HSM执行;第三部分为tee engine,通过调用openssl标准api, 利用openssl engine机制,调用TA进入OP-TEE,调用软件算法库完成计算。 具体支持算法参考: 支持算法。
hsm engine软件架构框图如下图所示 :

libhb_crypto软件架构框图如下图所示 :

tee engine软件架构框图如下图所示 :

openssl provider调用TA进入OP-TEE,OP-TEE通过IPC将请求发送给HSM执行;
openssl provider软件架构框图如下图所示 :

1.2. 代码位置及目录结构¶
代码位置如下:
目录结构如下:
2. 编译¶
2.1. 编译环境¶
本sample的编译环境使用SDK中的build工具,请参考: Build 环境建立。
编译命令
3. 运行¶
3.1. 支持平台¶
J6X Matrix
3.2. 运行指南¶
3.2.1. 运行环境搭建¶
1.确认SOC软件版本,并更新软件版本至当前发版的最新版本;
2.升级SOC的全量包,确保/app分区被升级;
3.2.2. 执行sample¶
运行openssl engine sample:
运行libhb_crypto sample:
运行tee engine sample:
运行openssl provider sample:
3.2.3. 执行结果¶
openssl engine sample:
libhb_crypto sample:
tee engine sample:
openssl_provider_sample: