HarmonyOS 鸿蒙Next 证书解析
HarmonyOS 鸿蒙Next 证书解析
// 解析证书
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 鸿蒙Next 证书解析的实战教程也可以访问 https://www.itying.com/category-93-b0.html
        
          2 回复
        
      
      
        x509Cert.getSubjectName();方法返回的是Uint8Array类型的数据,如何将Uint8Array转换成String您可以尝试使用@ohos.util中的decodeToString
方法。官方文档如下:
方法。官方文档如下:
证书算法库x509Cert.getSubjectName()接口返回的是ASCII编码,不支持中文。
更多关于HarmonyOS 鸿蒙Next 证书解析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next证书解析的问题,以下是一些专业解答:
HarmonyOS鸿蒙Next在应用开发过程中,涉及多种证书文件的解析与使用。主要包括P12、CSR、CER以及P7B等文件格式。
- P12文件:这是一种包含私钥和证书的二进制文件格式,主要用于应用签名,确保应用的安全性与可信来源。
 - CSR文件:全称为Certificate Signing Request,即证书签名请求文件,包含公钥以及申请者的身份信息。当需要向证书颁发机构(CA)申请证书时,会先生成一个CSR文件并提交给CA。
 - CER文件:这是一种证书文件格式,通常包含公钥和证书持有者的信息,用于验证应用的签名。该文件由华为AppGallery Connect颁发。
 - P7B文件:这是一种包含证书链的文件格式,通常用于存储根证书、中间证书和最终用户证书。在应用签名时,可能需要包含完整的证书链以确保信任。P7B文件(Profile文件)还包含了HarmonyOS应用/元服务的包名、数字证书信息、权限列表等。
 
解析这些证书文件通常需要使用专业的工具或开发环境,如DevEco Studio。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。
        
      
                  
                  
                  
