证书解析:解析证书CN怎么获取

// 解析证书 
certParseByBase64Str =  (base64Str: string): ResolveResult =>{ 
 
  let certData = '-----BEGIN CERTIFICATE-----\n' + 
    base64Str+ 
    '\n-----END CERTIFICATE-----\n'; 
  Logger.info('certData=:', certData); 
  let textEncoder = new util.TextEncoder(); 
  let encodingBlob: certFramework.EncodingBlob = { 
    // 将证书数据从string类型转换成Unit8Array 
    data: textEncoder.encodeInto(certData), 
    // 证书格式,仅支持PEM和DER。在此示例中,证书为PEM格式 
    encodingFormat: certFramework.EncodingFormat.FORMAT_PEM 
  }; 
  let resultData: ESObject = {}; 
  let ret: ResolveResult = {} 
 
  certFramework.createX509Cert(encodingBlob, (err, x509Cert) => { 
    if (err != null) { 
      Logger.info('err.message=:', JSON.stringify(err)); 
      // 创建X509Cert实例失败 
      ret = {iSuccessful:false,errorMsg:"createX509Cert failed, errCode:${err.code}, errMsg:${err.message}",data:resultData}; 
      return ret; 
    }else{ 
      try{ 
        // 
        let CN = x509Cert.getSubjectName(); 
        // 证书的序列号 
        let serialNumner = x509Cert.getCertSerialNumber(); 
        // 证书有效期起始日期 
        let notBeforeTime  = x509Cert.getNotBeforeTime(); 
        // 证书有效期截止日期 
        let notAfterTime  = x509Cert.getNotAfterTime(); 
        Logger.info('serialNumner=:', serialNumner.toString()); 
        Logger.info('notBeforeTime=:', notBeforeTime); 
        Logger.info('notAfterTime=:', notAfterTime); 
        resultData = { 
          serialNumner:serialNumner, 
          notBeforeTime:notBeforeTime, 
          notAfterTime:notAfterTime, 
          CN:CN 
        }; 
        // Logger.info('resultData=:', JSON.stringify(resultData)); 
 
        ret = {iSuccessful:true,errorMsg:'',data:resultData}; 
        return ret; 
      }catch(e){ 
        ret = {iSuccessful:false,errorMsg:"解析异常"+e.message,data:resultData}; 
        return ret; 
      } 
    } 
 
  }) 
}

写了一个证书解析的方法 解析后怎么返回返回出去 目前在createX509Cert这样写返回ResolveResult 报错。

还有一个疑问 let CN = x509Cert.getSubjectName();解析证书CN怎么获取, 在官方文档上没有找到。

HarmonyOS
2024-08-03 11:49:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
南风春和

x509Cert.getSubjectName();方法返回的是Uint8Array类型的数据,如何将Uint8Array转换成String您可以尝试使用@ohos.util中的decodeWithStream方法。官方文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-util-V5#decodewithstream9

分享
微博
QQ
微信
回复
2024-08-04 13:33:01
相关问题
HarmonyOS 如何解析证书文件
397浏览 • 1回复 待解决
证书管理无法新增证书
387浏览 • 1回复 待解决
HarmonyOS 发布证书
33浏览 • 1回复 待解决
HarmonyOS 怎么解析本地文件json内容?
150浏览 • 1回复 待解决
网络请求怎么进行SSL证书认证?
3435浏览 • 1回复 待解决
如何获取应用签名证书的hash值
1825浏览 • 1回复 待解决
createX509Cert 创建的证书信息无法获取
893浏览 • 1回复 待解决
是否支持CFCA证书预置
616浏览 • 1回复 待解决
Text怎么解析展示带html标签的文本?
2122浏览 • 1回复 待解决
HarmonyOS json解析异常
488浏览 • 1回复 待解决