如何提取x.509证书并以角度2显示其字段

时间:2018-06-18 02:09:05

标签: angular angular2-services x509 pki

需要使用angular2应用程序中的文件扩展名.cer解密x.509证书中的字段。 https://www.npmjs.com/package/pkijs是一个图书馆。但是,不太确定在angular2中使用。有人可以帮忙吗?谢谢!!

1 个答案:

答案 0 :(得分:0)

在“示例”部分上方,https://www.npmjs.com/package/pkijs说:

“因此,这是有关PKIjs如何解析二进制PKI结构的分步说明:

  1. 通过ASN1js包(asn1js.fromBER函数)解析的二进制数据。此步骤的结果是ASN1js内部类;
  2. 为了产生“帮助者”,用户需要将步骤1到PKIjs的特定类的数据提供给.fromSchema(例如Certificate.fromSchema)。通常,代码看起来像const cert = new Certificate({schema:asn1.result})-此代码内部将调用Certificate.fromSchema函数;
  3. 从Schema函数内部,PKIjs类将解析ASN1js内部结构并产生易于访问的类属性。同样在PKIjs fromSchema中,将输入的ASN.1结构与它的样子进行比较(与预定义的ASN.1模式进行比较);

因此,通常用户会使用以下代码段:

// Parse a X.509 certificate
const asn1 = asn1js.fromBER(binaryData);
if(asn1.offset === (-1))
    alert("Can not parse binary data");

const certificate = new Certificate({ schema: asn1.result });`

下面是有关PKIjs类数据如何转换回二进制表示形式的分步说明:

  1. 用户需要将PKIjs类转换为ASN1js内部类。为此,用户需要调用.toSchema函数;
  2. 作为第一步的结果,我们将拥有ASN1js结构。而且每个ASN1js结构都有其类成员toBER-此函数将以ArrayBuffer的形式返回ASN1js结构的二进制表示形式;

因此,通常用户会使用以下代码段:

const certificateBinary = certificate.toSchema().toBER(false);

certificate,您应该能够提取所有要显示的数据。您是否使用过此解决方案?如果没有,您找到了哪一个?