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

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

HarmonyOS
2024-08-13 15:04:32
浏览
收藏 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); 
}
分享
微博
QQ
微信
回复
2024-08-13 21:02:36
相关问题
HarmonyOS 生成SM2密钥对报错
42浏览 • 1回复 待解决
RSA加密,使用自有私钥解密报错
250浏览 • 1回复 待解决
HarmonyOS sm2验签失败
38浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
620浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
466浏览 • 1回复 待解决
huks sm2签名验签失败
237浏览 • 1回复 待解决
HarmonyOS SM2SM4国密加解密使用demo
283浏览 • 1回复 待解决
HarmonyOS SM2加签验签SM3摘要算法使用
490浏览 • 1回复 待解决
如何使用国密SM2算法进行加解密
4302浏览 • 1回复 待解决