1# 密钥删除(ArkTS)
2
3为保证数据安全性,当不需要使用该密钥时,应该删除密钥。
4
5## 开发步骤
6
7以删除HKDF256密钥为例。
8
91. 确定密钥别名keyAlias,密钥别名最大长度为128字节。
10
112. 初始化密钥属性集。用于删除时指定[密钥的属性TAG](../../reference/apis-universal-keystore-kit/_huks_type_api.md#oh_huks_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 '@kit.UniversalKeystoreKit';
20
21/* 1.确定密钥别名 */
22let keyAlias = "test_Key";
23/* 2.构造空对象 */
24let huksOptions: huks.HuksOptions = {
25  properties: []
26}
27
28class throwObject {
29  isThrow = false;
30}
31
32function deleteKeyItem(keyAlias: string, huksOptions: huks.HuksOptions, throwObject: throwObject) {
33  return new Promise<void>((resolve, reject) => {
34    try {
35      huks.deleteKeyItem(keyAlias, huksOptions, (error, data) => {
36        if (error) {
37          reject(error);
38        } else {
39          resolve(data);
40        }
41      });
42    } catch (error) {
43      throwObject.isThrow = true;
44      throw (error as Error);
45    }
46  });
47}
48
49/* 3.删除密钥*/
50async function publicDeleteKeyFunc(keyAlias: string, huksOptions: huks.HuksOptions) {
51  console.info(`enter promise deleteKeyItem`);
52  let throwObject: throwObject = { isThrow: false };
53  try {
54    await deleteKeyItem(keyAlias, huksOptions, throwObject)
55      .then((data) => {
56        console.info(`promise: deleteKeyItem key success, data = ${JSON.stringify(data)}`);
57      })
58      .catch((error: Error) => {
59        if (throwObject.isThrow) {
60          throw (error as Error);
61        } else {
62          console.error(`promise: deleteKeyItem failed, ${JSON.stringify(error)}`);
63        }
64      });
65  } catch (error) {
66    console.error(`promise: deleteKeyItem input arg invalid, ${JSON.stringify(error)}`);
67  }
68}
69
70async function testDerive() {
71  await publicDeleteKeyFunc(keyAlias, huksOptions);
72}
73```
74