1ac4d6d58Sopenharmony_ci# device_attest_lite部件<a name="ZH-CN_TOPIC_001"></a>
2ac4d6d58Sopenharmony_ci
3ac4d6d58Sopenharmony_ci## 简介<a id="section100"></a>
4ac4d6d58Sopenharmony_ci
5ac4d6d58Sopenharmony_cidevice_attest_lite,轻量级设备证明部件,是OpenHarmony compatibility agreement约定需要设备厂商在产品中集成的模块,用于支撑生态伙伴完成产品的兼容性测试。其基本功能是看护OpenHarmony生态设备认证结果,通过端云校验机制,支撑OpenHarmony南北向生态统一,保障用户体验。该部件用于轻量系统(mini system)和小型系统(small system)。生态伙伴(即设备厂商)兼容性测试工作流程:  
6ac4d6d58Sopenharmony_ci1、设备厂商在[OpenHarmony兼容性平台](https://openatom.cn/atomavatar/#/login?redirect=%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3D6bdacef0a8bd11ec938bd9550d2decfd%26redirect_uri%3Dhttps%3A%2F%2Fcompatibility.openharmony.cn%2Fconsole%26appName%3DOpenHarmony%E8%AE%A4%E8%AF%81%E5%B9%B3%E5%8F%B0%26scope%3D0,1,2,3%26state%3D%2Fpersonal)注册企业账号,完成设备信息登记,将登记的设备信息写入设备,并完成依赖接口适配;  
7ac4d6d58Sopenharmony_ci2、设备厂商启动兼容性测试,上传xts测试报告;  
8ac4d6d58Sopenharmony_ci3、OpenHarmony认证云认证通过设备厂商产品信息,发放token到OpenHarmony兼容性平台;  
9ac4d6d58Sopenharmony_ci4、设备厂商从OpenHarmony兼容性平台获取token;  
10ac4d6d58Sopenharmony_ci5、设备厂商经三方产线将token烧录到OpenHarmony设备;  
11ac4d6d58Sopenharmony_ci6、轻量级设备证明部件与OpenHarmony认证云通信,对设备进行激活/认证,设备从OpenHarmony认证云获取证明结果,存储到本地;  
12ac4d6d58Sopenharmony_ci7、系统服务、系统应用等可通过轻量级设备证明部件提供的接口获取认证结果,并基于认证结果进行业务设计。  
13ac4d6d58Sopenharmony_ci
14ac4d6d58Sopenharmony_ci工作流程图:  
15ac4d6d58Sopenharmony_ci![](figures/image_002.png)
16ac4d6d58Sopenharmony_ci## 目录<a id="section200"></a>
17ac4d6d58Sopenharmony_ci
18ac4d6d58Sopenharmony_ci```
19ac4d6d58Sopenharmony_ci/test/xts
20ac4d6d58Sopenharmony_ci├── device_attest_lite          # 轻量级设备证明部件代码存放目录
21ac4d6d58Sopenharmony_ci│   └── build                   # 编译配置存放目录
22ac4d6d58Sopenharmony_ci│   └── figures                 
23ac4d6d58Sopenharmony_ci│   └── framework               # 系统能力服务框架
24ac4d6d58Sopenharmony_ci│       └── mini                # 轻量系统服务框架
25ac4d6d58Sopenharmony_ci│       └── small               # 小型系统服务框架
26ac4d6d58Sopenharmony_ci│   └── interfaces              # 对外接口
27ac4d6d58Sopenharmony_ci│   └── services                # 服务主体和业务逻辑代码
28ac4d6d58Sopenharmony_ci│       └── core                # 业务逻辑代码
29ac4d6d58Sopenharmony_ci│   └── test                    # 测试用例编译配置存放目录
30ac4d6d58Sopenharmony_ci│       └── startup             # 小型系统启动示例存放目录
31ac4d6d58Sopenharmony_ci│       └── unittest            # 测试用例代码存放目录
32ac4d6d58Sopenharmony_ci```
33ac4d6d58Sopenharmony_ci
34ac4d6d58Sopenharmony_ci## 架构图<a id="section300"></a>
35ac4d6d58Sopenharmony_ci
36ac4d6d58Sopenharmony_ci1、设备启动联网后,主动调起轻量级设备证明部件主流程,读取token和系统参数,发起设备认证端云通信;  
37ac4d6d58Sopenharmony_ci2、端云通信采用coap+tls协议,轻量级设备证明部件将token和系统参数上传到OpenHarmony认证云,并获取认证结果和新token;  
38ac4d6d58Sopenharmony_ci3、轻量级设备证明部件将认证结果存储到沙箱目录,并更新token;  
39ac4d6d58Sopenharmony_ci4、轻量级设备证明部件对外提供认证结果查询接口,供其他模块判定设备是否已通过认证,比如系统服务、系统应用等。 
40ac4d6d58Sopenharmony_ci
41ac4d6d58Sopenharmony_ci![](figures/image_001.png)
42ac4d6d58Sopenharmony_ci
43ac4d6d58Sopenharmony_ci## 约束<a id="section400"></a>
44ac4d6d58Sopenharmony_ci
45ac4d6d58Sopenharmony_ci**表 1 轻量级设备证明部件集成依赖库**
46ac4d6d58Sopenharmony_ci| 库名称    | 版本号           | 功能描述                                        | 仓库路径                                     |
47ac4d6d58Sopenharmony_ci| --------- | ---------------- | ----------------------------------------------- | ---------------------------------------- |
48ac4d6d58Sopenharmony_ci| mbedtls   | 2.16.11          | 供嵌入式设备使用的一个 TLS 协议的轻量级实现库。 | third_party\mbedtls           |
49ac4d6d58Sopenharmony_ci| cJSON     | 1.7.15           | JSON 文件解析库。                               | third_party\cJSON |
50ac4d6d58Sopenharmony_ci| libsec    | 1.1.10           | 安全函数库。                                    | bounds_checking_function      |
51ac4d6d58Sopenharmony_ci| parameter | OpenHarmony 1.0 release及之后版本 | 获取设备信息的系统接口。                        |base\startup\init\interfaces\innerkits\include\syspara\parameter.h                    |
52ac4d6d58Sopenharmony_ci
53ac4d6d58Sopenharmony_ci## 对外接口<a id="section500"></a>
54ac4d6d58Sopenharmony_ci
55ac4d6d58Sopenharmony_ci**表 2 轻量级设备证明部件对外接口**
56ac4d6d58Sopenharmony_ci
57ac4d6d58Sopenharmony_ci| **接口名**                                              | **描述**     |
58ac4d6d58Sopenharmony_ci| ------------------------------------------------------- | ------------ |
59ac4d6d58Sopenharmony_ci| int32_t  StartDevAttestTask(void);                           | 启动轻量级设备证明服务主流程 |
60ac4d6d58Sopenharmony_ci| int32_t  GetAttestStatus(AttestResultInfo* attestResultInfo); | 获取设备认证结果 |
61ac4d6d58Sopenharmony_ci
62ac4d6d58Sopenharmony_ci集成轻量级设备证明部件的设备在网络连接成功后主动调用StartDevAttestTask函数,启动轻量级设备证明服务主流程。通过调用GetAttestStatus接口,可以获得设备认证结果。
63ac4d6d58Sopenharmony_ci
64ac4d6d58Sopenharmony_ci## 编译指令<a id="section600"></a>
65ac4d6d58Sopenharmony_ci### mini设备<a id="section601"></a>
66ac4d6d58Sopenharmony_ci
67ac4d6d58Sopenharmony_ci```sh
68ac4d6d58Sopenharmony_cihb set
69ac4d6d58Sopenharmony_ci#选择 设备类型
70ac4d6d58Sopenharmony_cihb build
71ac4d6d58Sopenharmony_ci```
72ac4d6d58Sopenharmony_ci
73ac4d6d58Sopenharmony_ci编译成功后,在out/芯片类型/产品类型/libs路径下生成libdevattest_core.alibdevattest_sdk.a
74ac4d6d58Sopenharmony_ci
75ac4d6d58Sopenharmony_ci### small设备<a id="section602"></a>
76ac4d6d58Sopenharmony_ci```sh
77ac4d6d58Sopenharmony_cihb set
78ac4d6d58Sopenharmony_ci#选择 设备类型
79ac4d6d58Sopenharmony_cihb build
80ac4d6d58Sopenharmony_ci```
81ac4d6d58Sopenharmony_ci
82ac4d6d58Sopenharmony_ci编译成功后,在out/芯片类型/产品类型/usr/lib下生成libdevattest_core.solibdevattest_server.solibdevattest_client.so
83ac4d6d58Sopenharmony_ci
84ac4d6d58Sopenharmony_ci## 相关仓<a id="section700"></a>
85ac4d6d58Sopenharmony_ci
86ac4d6d58Sopenharmony_ci[xts\_device\_attest](https://gitee.com/openharmony-sig/xts_device_attest/)
87ac4d6d58Sopenharmony_ci
88ac4d6d58Sopenharmony_ci**xts\_device\_attest\_lite**
89