资源管理介绍及规格
=========

约定外部密钥管理扩展（例如Ukey）中使用resourceId唯一标识资源。该resourceId目前支持以下两种获取方式：

*   **证书管理服务获取**：通过[查询证书操作](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-certmanagerdialog#certificatemanagerdialogopenauthorizedialog22)返回。每个证书链对应1个resourceId。适用于浏览器双向SSL认证等需要证书选择的场景。
*   **getResourceId接口获取**：从API版本26.0.0开始，可通过[getResourceId](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-huksexternalcrypto#huksexternalcryptogetresourceid)接口获取。适用于密钥生成、密钥导入等不需要证书选择的场景。

应用拿到resourceId后，需要[打开资源](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/huks-open-close-resource-arkts#打开资源)，然后才可以进行后续密钥操作。操作完成后需要[关闭资源](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/huks-open-close-resource-arkts#关闭资源)。该接口会回调[onClearUkeyPinAuthState](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-cryptoextensionability#cryptoextensionabilityonclearukeypinauthstate)清理该资源关联的PIN认证状态，以及会回调[onFinishSession](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-cryptoextensionability#cryptoextensionabilityonfinishsession)清理该资源关联的会话handle。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8d/v3/wIsh3eBaQhCVpN2aHP4fcg/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073423Z&HW-CC-Expire=86400&HW-CC-Sign=4B3A8CD1D62952B97684D6C5F4265F06EB2545189325F1F8F3494B9DDAD2E44E)

1.  操作密钥之前，必须先打开资源。如果涉及私钥签名等高权限操作，需要验证完PIN码后，才能继续执行，否则会导致资源状态异常。
2.  用户操作之后，必须手动关闭资源，避免资源泄漏。