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密钥交换
834浏览 • 1回复 待解决
HarmonyOS SM2密钥问题
1053浏览 • 1回复 待解决
HarmonyOS SM2密钥交换计算协商密钥
892浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
2024浏览 • 1回复 待解决
HarmonyOS 指定私钥生成SM2秘钥的方法
1026浏览 • 1回复 待解决
HarmonyOS SM2数据签名
842浏览 • 1回复 待解决
HarmonyOS生成SM2密文服务端无法解析
890浏览 • 1回复 待解决
HarmonyOS SM2公私钥转换
1123浏览 • 1回复 待解决
HarmonyOS sm2验签失败
1139浏览 • 1回复 待解决
HarmonyOS SM2加密算法
1038浏览 • 1回复 待解决
HarmonyOS SM2/SM4结合加解密
1311浏览 • 1回复 待解决
huks sm2签名验签失败
1345浏览 • 1回复 待解决
HarmonyOS sm2签名后数据长度问题
802浏览 • 1回复 待解决
HarmonyOS SM2公钥PEM读取接口
1303浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
1688浏览 • 1回复 待解决