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

问题描述 投票:0回答:1

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

angular angular2-services x509 pki
1个回答
0
投票

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

“所以,这里是关于PKIjs如何解析二进制PKI结构的逐步描述:

  1. 通过ASN1js包解析二进制数据(asn1js.fromBER函数)。这一步的结果是ASN1js内部类;
  2. 为了产生“帮助者”,用户需要将步骤#1中的数据提供给特定类的PKIj以运行.fromSchema(例如Certificate.fromSchema)。通常代码看起来像const cert = new Certificate({schema:asn1.result}) - 这段代码内部会调用Certificate.fromSchema函数;
  3. 在fromSchema函数中,PKIjs类将解析ASN1js内部结构并生成易于访问的类属性。同样在fromSchema PKIjs中比较输入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. 作为步骤#1的结果,我们将拥有ASN1js结构。并且每个ASN1js结构都有其类成员toBER - 该函数将返回ASN1js结构的二进制表示为ArrayBuffer;

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

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

certificate,您应该能够提取您感兴趣的所有数据。你使用这个解决方案吗?如果没有,你找到了哪个?

© www.soinside.com 2019 - 2024. All rights reserved.