生成密鑰(ArkTS)
以生成DH密鑰為例,生成隨機(jī)密鑰。具體的場(chǎng)景介紹及支持的算法規(guī)格
注意: 密鑰別名中禁止包含個(gè)人數(shù)據(jù)等敏感信息。
開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
開發(fā)步驟
- 指定待生成的密鑰別名keyAlias。
- 密鑰別名的最大長(zhǎng)度為64字節(jié)。
- 對(duì)于不同業(yè)務(wù)間生成的密鑰,HUKS將基于業(yè)務(wù)身份信息進(jìn)行存儲(chǔ)路徑隔離,不會(huì)因?yàn)楹推渌麡I(yè)務(wù)密鑰同名導(dǎo)致沖突。
- 初始化密鑰屬性集。通過[HuksParam]封裝密鑰屬性,搭配Array組成密鑰屬性集,并賦值給[HuksOptions]中的properties字段。 密鑰屬性集中必須包含[HuksKeyAlg],[HuksKeySize],[HuksKeyPurpose]屬性,即必傳TAG,HUKS_TAG_ALGORITHM、HUKS_TAG_PURPOSE、HUKS_TAG_KEY_SIZE。
- 調(diào)用[huks.generateKeyItem],傳入密鑰別名和密鑰屬性集,生成密鑰。
說(shuō)明: 如果業(yè)務(wù)再次使用相同別名調(diào)用HUKS生成密鑰,HUKS將生成新密鑰并直接覆蓋歷史的密鑰文件。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

/* 以下以生成DH密鑰為例 */
import { huks } from "@kit.UniversalKeystoreKit";
/* 1.確定密鑰別名 */
let keyAlias = 'dh_key';
/* 2.初始化密鑰屬性集 */
let properties1: Array< huks.HuksParam > = [
{
tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
value: huks.HuksKeyAlg.HUKS_ALG_DH
},
{
tag: huks.HuksTag.HUKS_TAG_PURPOSE,
value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_AGREE
},
{
tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
value: huks.HuksKeySize.HUKS_DH_KEY_SIZE_2048
},
{
tag: huks.HuksTag.HUKS_TAG_DIGEST,
value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256
}
];
let huksOptions: huks.HuksOptions = {
properties: properties1,
inData: new Uint8Array(new Array())
}
/* 3.生成密鑰 */
function generateKeyItem(keyAlias: string, huksOptions: huks.HuksOptions){
return new Promise< void >((resolve, reject) = > {
try {
huks.generateKeyItem(keyAlias, huksOptions, (error, data) = > {
if (error) {
reject(error);
} else {
resolve(data);
}
});
} catch (error) {
throw (error as Error);
}
});
}
async function publicGenKeyFunc(keyAlias: string, huksOptions: huks.HuksOptions) {
console.info(`enter promise generateKeyItem`);
try {
await generateKeyItem(keyAlias, huksOptions)
.then((data) = > {
console.info(`promise: generateKeyItem success, data = ${JSON.stringify(data)}`);
})
.catch((error: Error) = > {
console.error(`promise: generateKeyItem failed, ${JSON.stringify(error)}`);
});
} catch (error) {
console.error(`promise: generateKeyItem input arg invalid` + JSON.stringify(error));
}
}
async function TestGenKey() {
await publicGenKeyFunc(keyAlias, huksOptions);
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
密鑰
+關(guān)注
關(guān)注
1文章
153瀏覽量
21031 -
鴻蒙
+關(guān)注
關(guān)注
60文章
3012瀏覽量
46154
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
i.MX93 ELE 密鑰存儲(chǔ)持久密鑰生成 NVM 錯(cuò)誤怎么辦?
密鑰存儲(chǔ) (0xabcd/0x1234)
打開密鑰管理服務(wù)
將嘗試生成持久密鑰
SAB 錯(cuò)誤:S
發(fā)表于 03-18 07:04
電能質(zhì)量在線監(jiān)測(cè)裝置可設(shè)置數(shù)據(jù)加密密鑰嗎?
電能質(zhì)量在線監(jiān)測(cè)裝置 支持?jǐn)?shù)據(jù)加密密鑰設(shè)置 ,但具體能力與實(shí)現(xiàn)方式因設(shè)備等級(jí)而異:基礎(chǔ)型裝置通常僅支持固定密鑰或簡(jiǎn)單配置,中高端裝置可自定義密鑰并管理
DES輪密鑰產(chǎn)生模塊結(jié)構(gòu)設(shè)計(jì)
DES輪密鑰產(chǎn)生模塊中的置換選擇PC-1、循環(huán)左移、置換選擇PC-2均采用assign語(yǔ)句實(shí)現(xiàn),配合一個(gè)二選一選通器和一個(gè)十六選一選通器實(shí)現(xiàn)。其中二選一選通器以mode模式判斷信號(hào)為選通信
發(fā)表于 10-30 07:13
非對(duì)稱密鑰生成和轉(zhuǎn)換規(guī)格詳解
當(dāng)前章節(jié)將說(shuō)明系統(tǒng)目前支持的算法及其對(duì)應(yīng)的規(guī)格。密鑰生成有兩種指定規(guī)格的方式,分別是:
字符串參數(shù):以字符串的形式描述開發(fā)者需要生成的密鑰
發(fā)表于 09-01 07:50
RIGOL示波器支持GHz級(jí)量子密鑰分發(fā)測(cè)試
雙方可生成絕對(duì)安全的密鑰,為信息安全提供堅(jiān)實(shí)保障,在金融、軍事、政府等領(lǐng)域意義重大。 1.2示波器在量子密鑰分發(fā)測(cè)試中的作用 量子密鑰分發(fā)測(cè)試中,信號(hào)的質(zhì)量直接關(guān)系到
根據(jù)Datasheet里cyT2B5L有1024位otp,全部都能用來(lái)存儲(chǔ)密鑰嗎?
1)項(xiàng)目上有要求把密鑰存在安全模塊存儲(chǔ)區(qū)域的要求
2)根據(jù)Datasheet里cyT2B5L有1024位otp,全部都能用來(lái)存儲(chǔ)密鑰嗎?還是其中的192位能用來(lái)儲(chǔ)存密鑰。
3)有詳細(xì)的說(shuō)明文檔或者例子能展開一下嗎?
?
發(fā)表于 07-14 07:17
什么是ArkTS?
ArkTS簡(jiǎn)介
ArkTS是OpenHarmony優(yōu)選的應(yīng)用高級(jí)開發(fā)語(yǔ)言。ArkTS提供了聲明式UI范式、狀態(tài)管理支持等相應(yīng)的能力,讓
發(fā)表于 06-17 06:24
鴻蒙5開發(fā)寶藏案例分享---穿戴開發(fā)寶藏指南
太棒了!鴻蒙官方文檔里竟然藏著這么個(gè)大寶藏!之前開發(fā)智能穿戴應(yīng)用時(shí)感覺資源匱乏,沒想到在“最佳實(shí)踐”里藏著這么多 現(xiàn)成的、高質(zhì)量的案例和代碼 !今天必須跟大家好好分享一下這個(gè)“輕量級(jí)智能穿戴開發(fā)實(shí)踐
發(fā)表于 06-12 16:12
使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件
的一站式集成開發(fā)環(huán)境(IDE),專為鴻蒙操作系統(tǒng)(HarmonyOS Next)應(yīng)用和服務(wù)開發(fā)設(shè)計(jì) DevEco Studio,掌握基本操作和開發(fā)
發(fā)表于 06-11 17:18
HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開發(fā)函數(shù)
等打包
? 支持Node.js 14.x/18.x和Java 1.8
? 支持HTTP觸發(fā)器調(diào)用
? 持續(xù)開發(fā)調(diào)試一條龍
?? 準(zhǔn)備工作:
安裝AGCLI工具(華為應(yīng)用分發(fā)服務(wù)命令行工具)
準(zhǔn)備測(cè)試
發(fā)表于 05-22 17:29
HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開發(fā)Node環(huán)境
能力,尤其適合需要快速響應(yīng)、彈性擴(kuò)容的場(chǎng)景。通過ArkTS API 9+,你可以輕松實(shí)現(xiàn):
??事件驅(qū)動(dòng)??:比如用戶登錄、數(shù)據(jù)更新時(shí)自動(dòng)觸發(fā)邏輯。
??零運(yùn)維??:無(wú)需管理服務(wù)器,專注業(yè)務(wù)代碼
發(fā)表于 05-22 17:21
HarmonyOS5云服務(wù)技術(shù)分享--賬號(hào)登錄文章整理
嘿,各位開發(fā)者朋友!今天咱們來(lái)聊一聊鴻蒙生態(tài)中備受關(guān)注的ArkTS(API 12),尤其是如何用它快速實(shí)現(xiàn)華為賬號(hào)登錄功能。不管你是剛接觸HarmonyOS的新手,還是想升級(jí)現(xiàn)有項(xiàng)目的技術(shù)咖
發(fā)表于 05-22 16:16
HarmonyOS5云服務(wù)技術(shù)分享--認(rèn)證文檔問題
各位開發(fā)者朋友好!本文將詳細(xì)講解如何基于HarmonyOS ArkTS框架集成華為AppGallery Connect(AGC)認(rèn)證服務(wù),涵蓋從項(xiàng)目創(chuàng)建到SDK集成全流程。無(wú)論您是首次接入AGC
發(fā)表于 05-22 13:20
Chatbox中配置MaaS模型服務(wù)使用全流程
-在“鑒權(quán)管理”頁(yè)面,單擊“創(chuàng)建 API Key”,填寫描述信息后,單擊“確認(rèn)”會(huì)返回“您的密鑰”,請(qǐng)復(fù)制保存密鑰,單擊“關(guān)閉”后將無(wú)法再次查看密鑰。(注:最多支持創(chuàng)建 5 個(gè)
鴻蒙開發(fā):Universal Keystore Kit密鑰管理服務(wù) 生成密鑰ArkTS
評(píng)論