加解密问题的定位指导

密钥对在HarmonyOS侧导入失败。

HarmonyOS
2024-09-18 12:32:40
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

方案:不能直接拿到HarmonyOS侧使用,需要进行编码转换后使用。

根据密钥参数生成sm2私钥:

import { cryptoFramework } from '@kit.CryptoArchitectureKit' 
 
export async function convertStrToPriKey(keyStr: string): Promise<cryptoFramework.PriKey> { 
  let sk = BigInt("0x" + keyStr) 
  let priKeySpec: cryptoFramework.ECCPriKeySpec = { 
    params: cryptoFramework.ECCKeyUtil.genECCCommonParamsSpec('NID_sm2'), 
    sk: sk, 
    algName: "SM2", 
    specType: cryptoFramework.AsyKeySpecType.PRIVATE_KEY_SPEC 
  } 
  let keypairGenerator = cryptoFramework.createAsyKeyGeneratorBySpec(priKeySpec) 
  return await keypairGenerator.generatePriKey() 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

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

import { cryptoFramework } from '@kit.CryptoArchitectureKit' 
 
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() 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
分享
微博
QQ
微信
回复
2024-09-18 17:12:08
相关问题
HarmonyOS 加解密问题
831浏览 • 1回复 待解决
HarmonyOS AES加解密问题
859浏览 • 1回复 待解决
Web加载失败问题定位定界指导
717浏览 • 1回复 待解决
基于加解密算法框架规格问题
1349浏览 • 1回复 待解决
应用性能问题定位和优化指导
3234浏览 • 1回复 待解决
HarmonyOS 关于RSA公钥加解密问题
936浏览 • 1回复 待解决
HarmonyOS 加解密咨询
816浏览 • 1回复 待解决
HarmonyOS 加解密 demo
1202浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
1182浏览 • 1回复 待解决
HarmonyOS DEC加解密支持
761浏览 • 1回复 待解决
HarmonyOS AES加解密咨询
945浏览 • 1回复 待解决
HarmonyOS 加解密算法匹配
755浏览 • 1回复 待解决
HarmonyOS 关于DES加解密疑问
785浏览 • 1回复 待解决
关于3des加解密问题,有人知道吗?
972浏览 • 1回复 待解决
加解密算法库框架使用
1482浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
699浏览 • 1回复 待解决
多种加密方式实现加解密
1639浏览 • 1回复 待解决
HarmonyOS AES-CBC加解密
789浏览 • 1回复 待解决
HarmonyOS 请提供RAS加解密文档
959浏览 • 1回复 待解决
HarmonyOS 是否有rsa加解密例子?
528浏览 • 1回复 待解决
HarmonyOS AES加解密报错17630001
912浏览 • 1回复 待解决