HarmonyOS 生成SM2密钥对报错

生成SM2密钥对报错,报错错误码:17620001 内存错误。

async genKeyPairByData(pubKeyData: Uint8Array) {
  let pubKeyBlob: cryptoFramework.DataBlob = { data: pubKeyData };
  let sm2Generator = cryptoFramework.createAsyKeyGenerator('SM2_256');
  let keyPair = await sm2Generator.convertKey(pubKeyBlob, null);
  console.info('convertKey success');
  return keyPair;
}
HarmonyOS
2024-12-20 14:36:50
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

问题点:直接使用HarmonyOS传入的公钥,未处理

转换方法:

//根据密钥参数生成sm2公钥

export async function convertStrToPubKey(keyStr: string): Promise<cryptoFramework.PubKey> {
  let pubKeyStr = keyStr.startsWith("04") ? keyStr.slice(2) : keyStr
  let pkPart1 = pubKeyStr.slice(0, pubKeyStr.length / 2)
  let pkPart2 = pubKeyStr.slice(pubKeyStr.length / 2)
  let pk: cryptoFramework.Point = {
    x: BigInt("0x" + pkPart1),
    y: BigInt("0x" + pkPart2),
  }
  let pubKeySpec: cryptoFramework.ECCPubKeySpec = {
    params: cryptoFramework.ECCKeyUtil.genECCCommonParamsSpec('NID_sm2'),
    pk: pk,
    algName: "SM2",
    specType: cryptoFramework.AsyKeySpecType.PUBLIC_KEY_SPEC
  }
  let keypairGenerator = cryptoFramework.createAsyKeyGeneratorBySpec(pubKeySpec)
  let puk = await keypairGenerator.generatePubKey();

  return await keypairGenerator.generatePubKey()
}

分享
微博
QQ
微信
回复
2024-12-20 15:31:16
相关问题
HarmonyOS SM2密钥交换
202浏览 • 1回复 待解决
HarmonyOS SM2密钥问题
425浏览 • 1回复 待解决
HarmonyOS SM2密钥交换计算协商密钥
292浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
1124浏览 • 1回复 待解决
HarmonyOS 指定私钥生成SM2秘钥的方法
406浏览 • 1回复 待解决
HarmonyOS SM2数据签名
344浏览 • 1回复 待解决
HarmonyOS生成SM2密文服务端无法解析
348浏览 • 1回复 待解决
HarmonyOS SM2公私钥转换
329浏览 • 1回复 待解决
HarmonyOS SM2加密算法
419浏览 • 1回复 待解决
HarmonyOS sm2验签失败
529浏览 • 1回复 待解决
HarmonyOS SM2/SM4结合加解密
484浏览 • 1回复 待解决
huks sm2签名验签失败
709浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
952浏览 • 1回复 待解决
HarmonyOS sm2签名后数据长度问题
268浏览 • 1回复 待解决
HarmonyOS SM2公钥PEM读取接口
454浏览 • 1回复 待解决