• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 密钥删除(ArkTS)
2
3为保证数据安全性,当不需要使用该密钥时,应该删除密钥。
4
5## 开发步骤
6
7以删除HKDF256密钥为例。
8
91. 确定密钥别名keyAlias,密钥别名最大长度为64字节。
10
112. 初始化密钥属性集。用于删除时指定密钥的属性TAG,比如删除的密钥范围(全量/单个),当删除单个时,TAG字段可传空。
12
133. 调用接口[deleteKeyItem](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksdeletekeyitem9),删除密钥。
14
15```ts
16/*
17 * 以下以HKDF256密钥的Promise操作使用为例
18 */
19import huks from '@ohos.security.huks';
20import { BusinessError } from '@ohos.base';
21/* 1.确定密钥别名 */
22let keyAlias = "test_Key";
23/* 2.构造空对象 */
24let huksOptions:huks.HuksOptions = {
25  properties:[]
26}
27class throwObject{
28  isThrow=false;
29}
30function deleteKeyItem(keyAlias: string, huksOptions: huks.HuksOptions, throwObject: throwObject) {
31  return new Promise<void>((resolve, reject) => {
32    try {
33      huks.deleteKeyItem(keyAlias, huksOptions, (error, data)=> {
34        if (error) {
35          reject(error);
36        } else {
37          resolve(data);
38        }
39      });
40    } catch (error) {
41      throwObject.isThrow = true;
42      throw(error as Error);
43    }
44  });
45}
46/* 3.删除密钥*/
47async function publicDeleteKeyFunc(keyAlias:string, huksOptions:huks.HuksOptions) {
48  console.info(`enter promise deleteKeyItem`);
49  let throwObject:throwObject = {isThrow: false};
50  try {
51    await deleteKeyItem(keyAlias, huksOptions, throwObject)
52      .then ((data) => {
53        console.info(`promise: deleteKeyItem key success, data = ${JSON.stringify(data)}`);
54      })
55      .catch((error: BusinessError) => {
56        if (throwObject.isThrow) {
57          throw(error as Error);
58        } else {
59          console.error(`promise: deleteKeyItem failed` + error);
60        }
61      });
62  } catch (error) {
63    console.error(`promise: deletKeyItem input arg invalid` + error);
64  }
65}
66async function testDerive() {
67  await publicDeleteKeyFunc(keyAlias, huksOptions);
68}
69```
70