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

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

HarmonyOS
2024-08-13 15:04:32
783浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

可以通过AsyKeyGenerator.convertKey方法将RSA或者SM2私钥转为KeyPair对象。参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-cryptoframework-V5#convertkey-2

示例代码如下:

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); 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
分享
微博
QQ
微信
回复
2024-08-13 21:02:36
相关问题
HarmonyOS SM2私钥转换
842浏览 • 1回复 待解决
HarmonyOS 指定私钥生成SM2秘钥的方法
821浏览 • 1回复 待解决
HarmonyOS 生成SM2密钥对报错
917浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
1053浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
934浏览 • 1回复 待解决
RSA加密,使用自有私钥解密报错
1069浏览 • 1回复 待解决
HarmonyOS SM2密钥问题
804浏览 • 1回复 待解决
HarmonyOS SM2数据签名
646浏览 • 1回复 待解决
HarmonyOS SM2密钥交换
644浏览 • 1回复 待解决
HarmonyOS生成SM2密文服务端无法解析
704浏览 • 1回复 待解决
HarmonyOS sm2验签失败
919浏览 • 1回复 待解决
HarmonyOS SM2加密算法
838浏览 • 1回复 待解决