HarmonyOS SM2加签返回Base64字符串

HarmonyOS
2024-12-20 13:22:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

只需传入在加密解密生成的私钥进行加签,然后加签后的数据base64转码传出到服务器进行验签即可

import cryptoFramework from '@ohos.security.cryptoFramework';
import buffer from '@ohos.buffer';

// 完整的明文被拆分为input1和input2
let input1: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from("This is Sign test plan1", 'utf-8').buffer) };
let input2: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from("This is Sign test plan2", 'utf-8').buffer) };

async function signMessagePromise(priKey: cryptoFramework.PriKey) {
  let signAlg = "SM2_256|SM3";
  let signer = cryptoFramework.createSign(signAlg);
  await signer.init(priKey);
  await signer.update(input1); // 如果明文较短,可以直接调用sign接口一次性传入
  let signData = await signer.sign(input2);
  return signData;
}

async function verifyMessagePromise(signMessageBlob: cryptoFramework.DataBlob, pubKey: cryptoFramework.PubKey) {
  let verifyAlg = "SM2_256|SM3";
  let verifier = cryptoFramework.createVerify(verifyAlg);
  await verifier.init(pubKey);
  await verifier.update(input1); // 如果明文较短,可以直接调用verify接口一次性传入
  let res = await verifier.verify(input2, signMessageBlob);
  console.info("verify result is " + res);
  return res;
}

async function main() {
  let keyGenAlg = "SM2_256";
  let generator = cryptoFramework.createAsyKeyGenerator(keyGenAlg);
  let keyPair = await generator.generateKeyPair();
  let signData = await signMessagePromise(keyPair.priKey);
  let verifyResult = await verifyMessagePromise(signData, keyPair.pubKey);
  if (verifyResult == true) {
    console.info('verify success');
  } else {
    console.error('verify failed');
  }
}

sm2验签api详情指南参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-sm2-sign-sig-verify-pkcs1-V5

分享
微博
QQ
微信
回复
2024-12-20 15:34:03
相关问题
HarmonyOS 图片转为base64字符
495浏览 • 1回复 待解决
base64字符如何转为图片并保存
3105浏览 • 1回复 待解决
如何将图片base64字符转PixelMap?
1140浏览 • 1回复 待解决
如何将PixelMap转图片base64字符
1059浏览 • 1回复 待解决
PixelMap类型怎么转换成Base64字符
1106浏览 • 1回复 待解决
base64字符保存为图片的方法
1550浏览 • 1回复 待解决
HarmonyOS SM2SM3摘要算法使用
967浏览 • 1回复 待解决
HarmonyOS sm2失败
499浏览 • 1回复 待解决