1# @ohos.deviceAttest (设备证明) 2 3为了证明设备是OpenHarmony生态中的合法设备,设备证明模块会把设备信息通过云端进行一致性合法校验。 4通过本模块接口,可查询设备在云端校验的结果。 5 6> **说明:** 7> 8> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 9> 10> - 本模块接口为系统接口。 11 12## 导入模块 13 14```ts 15import deviceAttest from '@ohos.deviceAttest'; 16``` 17 18## deviceAttest.getAttestStatus 19 20getAttestStatus(callback: AsyncCallback<AttestResultInfo>) : void 21 22获取端云校验结果的详细信息。使用callback异步回调。 23 24**系统能力:** SystemCapability.XTS.DeviceAttest 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| -------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 30| callback | AsyncCallback<[AttestResultInfo](#attestresultinfo)> | 是 | 回调函数。当获取端云校验结果的详细信息成功,error为undefined,result为获取到的[AttestResultInfo](#attestresultinfo);否则为错误对象。 | 31 32**错误码:** 33 34| 错误码ID | 错误信息 | 35|----------|----------------------| 36| 20000001 | system service exception. | 37 38**示例:** 39 40```ts 41import base from '@ohos.base'; 42 43try { 44 deviceAttest.getAttestStatus((error: base.BusinessError, value: deviceAttest.AttestResultInfo) => { 45 if (typeof error != 'undefined') { 46 console.info("error code:" + error.code + " message:" + error.message); 47 } else { 48 console.info("auth:" + value.authResult + " software:" + value.softwareResult + " ticket:" + value.ticket); 49 console.info("versionIdResult:" + value.softwareResultDetail[0], 50 " patchlevelResult:" + value.softwareResultDetail[1], 51 " roothashResult:" + value.softwareResultDetail[2], 52 " PCIDResult:" + value.softwareResultDetail[3], 53 " reserver:" + value.softwareResultDetail[4]); 54 } 55 }) 56} catch (error) { 57 let code: number = (error as base.BusinessError).code; 58 let message: string = (error as base.BusinessError).message; 59 console.info("error code:" + code + " message:" + message); 60} 61``` 62 63## deviceAttest.getAttestStatus 64 65getAttestStatus() : Promise<AttestResultInfo> 66 67获取端云校验结果的详细信息。使用Promise异步回调。 68 69**系统能力:** SystemCapability.XTS.DeviceAttest 70 71**返回值:** 72 73| 类型 | 说明 | 74| ----------------------------------------------------- | ------------------------------- | 75| Promise<[AttestResultInfo](#attestresultinfo)> | Promise对象,返回端云校验结果的详细信息。 | 76 77**错误码:** 78 79| 错误码ID | 错误信息 | 80|----------|----------------------| 81| 20000001 | system service exception. | 82 83**示例:** 84 85```ts 86import base from '@ohos.base'; 87 88try { 89 deviceAttest.getAttestStatus().then((value: deviceAttest.AttestResultInfo) => { 90 console.info("auth:" + value.authResult + " software:" + value.softwareResult + " ticket:" + value.ticket); 91 console.info("versionIdResult:" + value.softwareResultDetail[0], 92 " patchlevelResult:" + value.softwareResultDetail[1], 93 " roothashResult:" + value.softwareResultDetail[2], 94 " PCIDResult:" + value.softwareResultDetail[3], 95 " reserver:" + value.softwareResultDetail[4]); 96 }).catch((error: base.BusinessError) => { 97 console.info("error code:" + error.code + " message:" + error.message); 98 }); 99} catch (error) { 100 let code: number = (error as base.BusinessError).code; 101 let message: string = (error as base.BusinessError).message; 102 console.info("error code:" + code + " message:" + message); 103} 104``` 105 106## deviceAttest.getAttestStatusSync 107 108getAttestStatusSync() : AttestResultInfo 109 110以同步方式获取端云校验结果的详细信息。 111 112**系统能力:** SystemCapability.XTS.DeviceAttest 113 114**返回值:** 115 116| 类型 | 说明 | 117| ----------------------------------------------------- | ------------------------------- | 118| [AttestResultInfo](#attestresultinfo) | 返回端云校验结果的详细信息。 | 119 120**错误码:** 121 122| 错误码ID | 错误信息 | 123|----------|----------------------| 124| 20000001 | system service exception. | 125 126**示例:** 127 128```ts 129import base from '@ohos.base'; 130 131try { 132 let value: deviceAttest.AttestResultInfo = deviceAttest.getAttestStatusSync(); 133 console.info("auth:" + value.authResult + " software:" + value.softwareResult + " ticket:" + value.ticket); 134 console.info("versionIdResult:" + value.softwareResultDetail[0], 135 " patchlevelResult:" + value.softwareResultDetail[1], 136 " roothashResult:" + value.softwareResultDetail[2], 137 " PCIDResult:" + value.softwareResultDetail[3], 138 " reserver:" + value.softwareResultDetail[4]); 139} catch (error) { 140 let code: number = (error as base.BusinessError).code; 141 let message: string = (error as base.BusinessError).message; 142 console.info("error code:" + code + " message:" + message); 143} 144``` 145 146## AttestResultInfo 147 148端云校验结果的详细信息。 149 150**系统能力:** SystemCapability.XTS.DeviceAttest 151 152| 名称 | 类型 | 可读 | 可写 | 说明 | 153| --------------------- | --------------------- | ---- | ---- | ---------------------- | 154| authResult | number | 是 | 否 | 设备硬件信息校验结果。 | 155| softwareResult | number | 是 | 否 | 设备软件信息校验结果。 | 156| softwareResultDetail | Array<number> | 是 | 否 | 设备软件信息校验结果详细说明<br/> - softwareResultDetail[0]:版本Id的校验结果;<br/>- softwareResultDetail[1]:安全补丁标签的校验结果;<br/>- softwareResultDetail[2]:版本Hash的校验结果;<br/>- softwareResultDetail[3]:系统能力集合的校验结果;<br/>- softwareResultDetail[4]:保留位。 | 157| ticket | string | 是 | 否 | 云侧下发的软证书。<br/>设备硬件信息校验结果通过后有值;校验结果失败,该值为空 | 158 159> **说明:** 160> 161> - 设备硬件信息和设备软件信息的校验结果返回值有-2、-1、0。-2表示未认证,-1表示认证失败,0表示认证通过。 162