HarmonyOS 已知RSA或者SM2私钥,如何生成ARKUI可用私钥对象?

HarmonyOS 已知RSA或者SM2私钥,如何生成ARKUI可用私钥对象?

阅读 544
1 个回答

你可以通过AsyKeyGenerator.convertKey方法将RSA或者SM2私钥转为KeyPair对象。参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
示例代码如下:

import crypto from '@ohos.security.cryptoFramework'; 
/** 
 * 将非对称加密字符串priKey转换为symKey对象 
 * @param privateKey字符串key 
 * @param symAlgName 秘钥规格 
 * @returns 
 */ 
static async convertPriKeyFromStr(privateKey: string, symAlgName: string) { 
  let symKeyBlob: crypto.DataBlob = { data: StrAndUintUtil.stringToByteArray(privateKey) }; 
  let aesGenerator = crypto.createAsyKeyGenerator(symAlgName); 
  let symKey = await aesGenerator.convertKey(null, symKeyBlob); 
  return symKey; 
} 
 
/** 
 * 字符串转换为Uint8Array数组 
 * @param str 字符串 
 * @returns Uint8Array数组 
 */ 
static stringToByteArray(str: string): Uint8Array { 
  const hexString = str.match(/.{1,2}/g); // 将字符串按每两个字符分割为数组 
  let arr = new Array<string>(); 
  hexString?.forEach((val) => { 
    arr.push(val); 
  }) 
  const byteArray: number[] = arr.map(byte => parseInt(byte, 16)); // 将每个十六进制字节转换为整数 
  return new Uint8Array(byteArray); 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题