# @ohos.deviceAttest (设备证明) 为了证明设备是OpenHarmony生态中的合法设备,设备证明模块会把设备信息通过云端进行一致性合法校验。 通过本模块接口,可查询设备在云端校验的结果。 > **说明:** > > - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > > - 本模块接口为系统接口。 ## 导入模块 ```js import deviceAttest from '@ohos.deviceAttest'; ``` ## deviceAttest.getAttestStatus getAttestStatus(callback: AsyncCallback<AttestResultInfo>) : void 获取端云校验结果的详细信息。使用callback异步回调。 **系统能力:** SystemCapability.XTS.DeviceAttest **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | | callback | AsyncCallback<[AttestResultInfo](#attestresultinfo)> | 是 | 回调函数。当获取端云校验结果的详细信息成功,error为undefined,result为获取到的[AttestResultInfo](#attestresultinfo);否则为错误对象。 | **错误码:** | 错误码ID | 错误信息 | |----------|----------------------| | 20000001 | system service exception | **示例:** ```js try { deviceAttest.getAttestStatus((error, result) => { if (typeof err === 'undefined') { console.info("error code:" + error.code + " message:" + error.message); } else { console.info("auth:" + result.authResult + " software:" + result.softwareResult + " ticket:" + result.ticket); console.info("versionIdResult:" + result.softwareResultDetail[0], " patchlevelResult:" + result.softwareResultDetail[1], " roothashResult:" + result.softwareResultDetail[2], " PCIDResult:" + result.softwareResultDetail[3], " reserver:" + result.softwareResultDetail[4]); } }) } catch (error) { console.info("error code:" + error.code + " message:" + error.message); } ``` ## deviceAttest.getAttestStatus getAttestStatus() : Promise<AttestResultInfo> 获取端云校验结果的详细信息。使用Promise异步回调。 **系统能力:** SystemCapability.XTS.DeviceAttest **返回值:** | 类型 | 说明 | | ----------------------------------------------------- | ------------------------------- | | Promise<[AttestResultInfo](#attestresultinfo)> | Promise对象,返回端云校验结果的详细信息。 | **错误码:** | 错误码ID | 错误信息 | |----------|----------------------| | 20000001 | system service exception | **示例:** ```js try { deviceAttest.getAttestStatus().then((value) => { console.info("auth:" + result.authResult + " software:" + result.softwareResult + " ticket:" + result.ticket); console.info("versionIdResult:" + result.softwareResultDetail[0], " patchlevelResult:" + result.softwareResultDetail[1], " roothashResult:" + result.softwareResultDetail[2], " PCIDResult:" + result.softwareResultDetail[3], " reserver:" + result.softwareResultDetail[4]); }).catch((error) => { console.info("error code:" + error.code + " message:" + error.message); }); } catch (error) { console.info("error code:" + error.code + " message:" + error.message); } ``` ## deviceAttest.getAttestStatusSync getAttestStatusSync() : AttestResultInfo 以同步方式获取端云校验结果的详细信息。 **系统能力:** SystemCapability.XTS.DeviceAttest **返回值:** | 类型 | 说明 | | ----------------------------------------------------- | ------------------------------- | | [AttestResultInfo](#attestresultinfo) | 返回端云校验结果的详细信息。 | **错误码:** | 错误码ID | 错误信息 | |----------|----------------------| | 20000001 | system service exception | **示例:** ```js try { let attestResultInfo = deviceAttest.getAttestStatusSync(); console.info("auth:" + result.authResult + " software:" + result.softwareResult + " ticket:" + result.ticket); console.info("versionIdResult:" + result.softwareResultDetail[0], " patchlevelResult:" + result.softwareResultDetail[1], " roothashResult:" + result.softwareResultDetail[2], " PCIDResult:" + result.softwareResultDetail[3], " reserver:" + result.softwareResultDetail[4]); } catch (error) { console.info("error code:" + error.code + " message:" + error.message); } ``` ## AttestResultInfo 端云校验结果的详细信息。 **系统能力:** SystemCapability.XTS.DeviceAttest | 名称 | 类型 | 可读 | 可写 | 说明 | | --------------------- | --------------------- | ---- | ---- | ---------------------- | | authResult | number | 是 | 否 | 设备硬件信息校验结果。 | | softwareResult | number | 是 | 否 | 设备软件信息校验结果。 | | softwareResultDetail | Array<number> | 是 | 否 | 设备软件信息校验结果详细说明
- softwareResultDetail[0]:版本Id的校验结果;
- softwareResultDetail[1]:安全补丁标签的校验结果;
- softwareResultDetail[2]:版本Hash的校验结果;
- softwareResultDetail[3]:系统能力集合的校验结果;
- softwareResultDetail[4]:保留位。 | | ticket | string | 是 | 否 | 云侧下发的软证书。
设备硬件信息校验结果通过后有值;校验结果失败,该值为空 | > **说明:** > > - 设备硬件信息和设备软件信息的校验结果返回值有-2、-1、0。-2表示未认证,-1表示认证失败,0表示认证通过。