HarmonyOS 64字节的SM2公钥转换非对称秘钥

HarmonyOS有64字节的SM2公钥转换非对称秘钥的方法吗?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

可以通过密钥参数生成密钥对实现:

//根据密钥参数生成sm2公钥(传入的是64字节即128位长度的十六进制字符串,首位为04标识符的130位十六进制字符串也可以)
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)
  return await keypairGenerator.generatePubKey()
}
分享
微博
QQ
微信
回复
1天前
相关问题
使用32字节加解密后报错
1872浏览 • 1回复 待解决
HarmonyOS 国密SM2转换失败
210浏览 • 1回复 待解决
HarmonyOS SM2PEM读取接口
125浏览 • 1回复 待解决
HarmonyOS 指定私钥生成SM2方法
116浏览 • 1回复 待解决
HarmonyOS RSA加密base64转换
256浏览 • 1回复 待解决
HarmonyOS AES生成
85浏览 • 1回复 待解决
HarmonyOS SM2公私钥转换
27浏览 • 1回复 待解决
HarmonyOS SM2加签返回Base64符串
197浏览 • 1回复 待解决
HarmonyOS 关于存储问题
92浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
827浏览 • 1回复 待解决
HarmonyOS 格式相关
86浏览 • 1回复 待解决
HarmonyOS 证书问题
116浏览 • 1回复 待解决
HarmonyOS RSA解密
139浏览 • 1回复 待解决
HarmonyOS 使用crypto进行交换
146浏览 • 1回复 待解决