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```