0


鸿蒙开发进阶(HarmonyOS )安全摄像头场景

** 鸿蒙NEXT开发实战往期必看文章:**

一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!

“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)

HarmonyOS NEXT应用开发案例实践总结合(持续更新......)

HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)


场景介绍

在安全摄像头场景中,通过创建证明密钥、打开证明会话的方式,对安全摄像头捕捉到的图像数据进行签名,确保图像数据的真实性和完整性。

约束与限制

目前仅支持“Mate60 Pro”的“ALN-AL00”机型。

业务流程

接口说明

接口及使用方法请参见API参考。

接口名

描述

createAttestKey(options: AttestOptions): Promise<void>

创建证明密钥。

initializeAttestContext(userData: string, options: AttestOptions): Promise<AttestReturnResult>

初始化证明会话。

finalizeAttestContext(options: AttestOptions): Promise<void>

结束证明会话。

destroyAttestKey(): Promise<void>

销毁证明密钥。

开发步骤

  1. 导入camera模块、trustedAppService模块和相关依赖模块。 import { camera } from '@kit.CameraKit';import { trustedAppService } from '@kit.DeviceSecurityKit';import { BusinessError } from '@kit.BasicServicesKit';
  2. 初始化安全相机。 相机初始化通用流程请参考Camera Kit开发指南,安全相机初始化的区别在于创建相机会话时传入的场景模式为“SECURE_PHOTO”。以下是在创建相机会话前,进行创建证明密钥和初始化证明会话的流程。 // 创建证明密钥的参数const createProperties: Array<trustedAppService.AttestParam> = [ { tag: trustedAppService.AttestTag.ATTEST_TAG_ALGORITHM, value: trustedAppService.AttestKeyAlg.ATTEST_ALG_ECC }, { tag: trustedAppService.AttestTag.ATTEST_TAG_KEY_SIZE, value: trustedAppService.AttestKeySize.ATTEST_ECC_KEY_SIZE_256 }];const createOptions: trustedAppService.AttestOptions = { properties: createProperties};// 初始化证明会话的参数const userData = "trusted_app_service_demo"; // 示例值,实际值请自行生成,长度在16到128字符之间const deviceId = 7483679320805398131; // 示例值,实际值请通过Camera Kit获取const initProperties: Array<trustedAppService.AttestParam> = [ { tag: trustedAppService.AttestTag.ATTEST_TAG_DEVICE_TYPE, value: trustedAppService.AttestType.ATTEST_TYPE_CAMERA }, { tag: trustedAppService.AttestTag.ATTEST_TAG_DEVICE_ID, value: BigInt(deviceId) }];const initOptions: trustedAppService.AttestOptions = { properties: initProperties};// 创建证明密钥并打开证明会话let certChainList: Array<string>;try { await trustedAppService.createAttestKey(createOptions); const result = await trustedAppService.initializeAttestContext(userData, initOptions); certChainList = result.certChains;} catch (err) { const error = err as BusinessError; console.error(`Failed to initialize attest context, message:${error.message}, code:${error.code}`);}说明- 只有创建证明密钥成功后,才能初始化证明会话。- 每次打开安全摄像头都需要获取设备序列号,只有初始化安全相机证明会话时需要传入有效值,其他场景传“0”即可。- userData的长度必须在16到128之间。
  3. 结束证明会话。 // 结束证明会话的参数const finalProperties: Array<trustedAppService.AttestParam> = [ { tag: trustedAppService.AttestTag.ATTEST_TAG_DEVICE_TYPE, value: trustedAppService.AttestType.ATTEST_TYPE_CAMERA }];const finalOptions: trustedAppService.AttestOptions = { properties: finalProperties,};// 结束证明会话try { await trustedAppService.finalizeAttestContext(finalOptions);} catch (err) { const error = err as BusinessError; console.error(`Failed to finalize attest context, message:${error.message}, code:${error.code}`);}如果需要销毁证明密钥,请在结束证明会话后,调用destroyAttestKey接口。由于安全摄像头和安全地理位置共用同一个证明密钥,销毁前需要保证安全地理位置功能未在使用该证明密钥。

标签: harmonyos 华为 前端

本文转载自: https://blog.csdn.net/m0_67143533/article/details/143683464
版权归原作者 凹~凸~曼 所有, 如有侵权,请联系我们删除。

“鸿蒙开发进阶(HarmonyOS )安全摄像头场景”的评论:

还没有评论