• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 密钥删除(ArkTS)
2
3<!--Kit: Universal Keystore Kit-->
4<!--Subsystem: Security-->
5<!--Owner: @wutiantian-gitee-->
6<!--Designer: @HighLowWorld-->
7<!--Tester: @wxy1234564846-->
8<!--Adviser: @zengyawen-->
9
10为保证数据安全性,当不需要使用该密钥时,应该删除密钥。
11
12## 开发步骤
13
14以删除HKDF256密钥为例。
15
161. 指定密钥别名,密钥别名命名规范参考[密钥生成介绍及算法规格](huks-key-generation-overview.md)。
17
182. 初始化密钥属性集。用于删除时指定[密钥的属性TAG](../../reference/apis-universal-keystore-kit/js-apis-huks.md#hukstag),当删除单个时,TAG字段可传空。
19
203. 调用接口[deleteKeyItem](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksdeletekeyitem9),删除密钥。
21
22```ts
23/*
24 * 以下以HKDF256密钥的Promise操作使用为例
25 */
26import { huks } from '@kit.UniversalKeystoreKit';
27import { BusinessError } from "@kit.BasicServicesKit";
28
29/* 1.确定密钥别名 */
30let keyAlias = 'test_Key';
31/* 2.初始化密钥属性集 */
32let generateProperties: huks.HuksParam[] = [{
33    tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
34    value: huks.HuksKeyAlg.HUKS_ALG_DH
35  }, {
36    tag: huks.HuksTag.HUKS_TAG_PURPOSE,
37    value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_AGREE
38  }, {
39    tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
40    value: huks.HuksKeySize.HUKS_DH_KEY_SIZE_2048
41  }
42];
43let generateHuksOptions: huks.HuksOptions = {
44  properties: generateProperties,
45  inData: new Uint8Array([])
46}
47let deleteHuksOptions: huks.HuksOptions = {
48  properties: []
49}
50
51/* 3.生成密钥 */
52async function generateKeyItem(keyAlias: string, huksOptions: huks.HuksOptions): Promise<boolean> {
53  console.info(`enter promise generateKeyItem`);
54  let ret: boolean = false;
55  try {
56    await huks.generateKeyItem(keyAlias, huksOptions)
57      .then(() => {
58        console.info(`promise: generateKeyItem success`);
59        ret = true;
60      }).catch((error: BusinessError) => {
61        console.error(`promise: generateKeyItem failed, errCode : ${error.code}, errMag : ${error.message}`);
62      });
63  } catch (error) {
64    console.error(`promise: generateKeyItem input arg invalid`);
65  }
66  return ret;
67}
68
69/* 4.删除密钥 */
70async function deleteKeyItem(keyAlias: string, huksOptions: huks.HuksOptions): Promise<boolean> {
71  console.info(`enter promise deleteKeyItem`);
72  let ret: boolean = false;
73  try {
74    await huks.deleteKeyItem(keyAlias, huksOptions)
75      .then(() => {
76        console.info(`promise: deleteKeyItem success`);
77        ret = true;
78      }).catch((error: BusinessError) => {
79        console.error(`promise: deleteKeyItem failed, errCode : ${error.code}, errMag : ${error.message}`);
80      })
81  } catch (error) {
82    console.error(`promise: deleteKeyItem input arg invalid`);
83  }
84  return ret;
85}
86
87async function testDelete() {
88  let retGen = await generateKeyItem(keyAlias, generateHuksOptions);
89  if (retGen == false) {
90    console.error(`generateKeyItem failed`);
91    return;
92  }
93
94  let retDel = await deleteKeyItem(keyAlias, deleteHuksOptions);
95  if (retDel == false) {
96    console.error(`deleteKeyItem failed`);
97    return;
98  }
99
100  console.info(`deleteKeyItem test success`);
101}
102```