如何获取X509证书公钥,并转化成string

如何获取X509证书公钥,并转化成string

HarmonyOS
2024-06-13 23:42:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
克里斯蒂东

参考代码如下:

function certSample(): void { 
  let textEncoder = new util.TextEncoder(); 
  let encodingBlob: certFramework.EncodingBlob = { 
    // 将证书数据从string类型转换成Unit8Array 
    data: textEncoder.encodeInto(certData), 
    // 证书格式,仅支持PEM和DER。在此示例中,证书为PEM格式 
    encodingFormat: certFramework.EncodingFormat.FORMAT_PEM 
  }; 
 
  // 创建X509Cert实例 
  certFramework.createX509Cert(encodingBlob, (err, x509Cert) => { 
    if (err != null) { 
      // Failed to create the X509Cert instance. 
      console.error(`createX509Cert failed, errCode:${err.code}, errMsg:${err.message}`); 
      return; 
    } 
    // X509Cert实例创建成功 
    console.log('createX509Cert success'); 
 
    // 获取证书版本 
    let version = x509Cert.getVersion(); 
    let serial = x509Cert.getCertSerialNumber(); 
    console.log(`X509 version: ${version} , X509 serial:${serial}`); 
 
    // 使用上级证书对象的getPublicKey()方法或本(自签名)证书对象获取公钥对象 
    try { 
      let pubKey: cryptoFramework.PubKey = x509Cert.getPublicKey(); //获取公钥 
      let pubk = uint8ArrayToHexStr(pubKey.getEncoded().data) 
      console.log("test---" + pubk) 
      // 验证证书签名 
      x509Cert.verify(pubKey, (err, data) => { 
        if (err == null) { 
          // 签名验证成功 
          console.log('verify success'); 
        } else { 
          // 签名验证失败 
          console.error(`verify failed, errCode: ${err.code} , errMsg:${err.message}`); 
        } 
      }); 
    } catch (error) { 
      let e: BusinessError = error as BusinessError; 
      console.error(`getPublicKey failed, errCode: ${e.code} , errMsg:${e.message}`); 
    } 
 
    // 用一个字符串代表时间 
    let date = '20230930000001Z'; 
 
    // 验证证书的有效期 
    try { 
      x509Cert.checkValidityWithDate(date); 
    } catch (error) { 
      let e: BusinessError = error as BusinessError; 
      console.error(`checkValidityWithDate failed, errCode: ${e.code}, errMsg:${e.message}`); 
    } 
  }); 
}
分享
微博
QQ
微信
回复
2024-06-14 22:51:02
相关问题
怎样才能把apk转化成鸿蒙应用?
6543浏览 • 1回复 待解决
HarmonyOS RSA如何解密
459浏览 • 0回复 待解决
createX509Cert 创建的证书信息无法获取
782浏览 • 1回复 待解决
如何使用RSA加密明文数据
352浏览 • 1回复 待解决
HarmonyOS 支持rsa使用解密吗
374浏览 • 1回复 待解决
rsa 解密初始化报错
85浏览 • 1回复 待解决
如何实现RSA的PK加密一段文字
515浏览 • 1回复 待解决