HarmonyOS sm2验签失败

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

将HarmonyOS签名后的数据传入d2i_SM2_SignText方法转换即可

/*
* 转HarmonyOS签名后的数据
* */
d2i_SM2_SignText(standard_data: string): string {
  let randNum:string = "";
  let signText:string = "";
  let message = standard_data.slice("30".length, standard_data.length);
  let sequence_lenHex: string = this.getLenHex(message);
  message = message.slice(sequence_lenHex.length, message.length);

  try {
    let randNum_len: string = message.slice(0, 4);
    if(randNum_len == "0220"){
      randNum = message.slice(4, 4+64);
      message = message.slice(4+64, message.length);
    } else {
      //randNum_len == "022100"
      randNum = message.slice(6, 6+64);
      message = message.slice(6+64, message.length);
    }

    let signText_len: string = message.slice(0, 4);
    if(signText_len == "0220"){
      signText = message.slice(4, 4+64);
    } else {
      //randNum_len == "022100"
      signText = message.slice(6, 6+64);
    }
  } catch (e) {
    hilog.error(0x1, "d2i_SM2_SignText", "SignText format is err");
  }

  return randNum+signText
}

// 提取长度域的Hex字符串
getLenHex(data: string): string {
  let byte: number = Number.parseInt("0x" + data.slice(0, 2));
  let len_size: number = byte > 127 ? byte - 0x80 + 1 : 1;
  return data.slice(0, len_size * 2);
}

分享
微博
QQ
微信
回复
2天前
相关问题
huks sm2签名失败
237浏览 • 1回复 待解决
HarmonyOS SM2SM3摘要算法使用
490浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
620浏览 • 1回复 待解决
RSA签名后,后端失败
195浏览 • 1回复 待解决
HarmonyOS SM2返回Base64字符串
36浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
466浏览 • 1回复 待解决
HarmonyOS 生成SM2密钥对报错
42浏览 • 1回复 待解决
HarmonyOS SM2SM4国密加解密使用demo
283浏览 • 1回复 待解决
HarmonyOS 华为支付签名
227浏览 • 1回复 待解决
如何使用国密SM2算法进行加解密
4302浏览 • 1回复 待解决
4.1.0(11) fluterr 无法通过
944浏览 • 1回复 待解决