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