UNPKG

@peculiar/fortify-webcomponents

Version:

Web-components for creating CSR or Certificate and viewing certificates list using Fortify

133 lines (126 loc) 6.82 kB
/*! * © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License */ 'use strict'; const certification_request = require('./certification_request-89396ee6.js'); const id_certificateTransparency = "1.3.6.1.4.1.11129.2.4.2"; class CertificateTransparency extends certification_request.OctetString { constructor() { super(...arguments); this.items = []; } fromASN(asn) { super.fromASN(asn); const stream = new certification_request.ByteStream(this.buffer); const len = stream.readNumber(2); this.items = []; while (stream.position < len) { this.items.push(new certification_request.SignedCertificateTimestamp(stream)); } return this; } toJSON() { return this.items.map(o => o.toJSON()); } } const id_pe_logotype = "1.3.6.1.5.5.7.1.12"; /*! * © Peculiar Ventures https://peculiarventures.com/ - MIT License */ const extensionParsers = { [certification_request.id_pe_authorityInfoAccess]: certification_request.AuthorityInfoAccessSyntax, [certification_request.id_ce_authorityKeyIdentifier]: certification_request.AuthorityKeyIdentifier, [certification_request.id_ce_basicConstraints]: certification_request.BasicConstraints, [certification_request.id_ce_certificateIssuer]: certification_request.CertificateIssuer, [certification_request.id_ce_certificatePolicies]: certification_request.CertificatePolicies, [certification_request.id_ce_cRLDistributionPoints]: certification_request.CRLDistributionPoints, '2.5.29.46': certification_request.CRLDistributionPoints, [certification_request.id_ce_issuingDistributionPoint]: certification_request.IssuingDistributionPoint, [certification_request.id_ce_cRLReasons]: certification_request.CRLReason, [certification_request.id_ce_extKeyUsage]: certification_request.ExtendedKeyUsage, [certification_request.id_ce_inhibitAnyPolicy]: certification_request.InhibitAnyPolicy, [certification_request.id_ce_invalidityDate]: certification_request.InvalidityDate, [certification_request.id_ce_issuerAltName]: certification_request.IssueAlternativeName, [certification_request.id_ce_keyUsage]: certification_request.KeyUsage, [certification_request.id_ce_nameConstraints]: certification_request.NameConstraints, [certification_request.id_ce_policyConstraints]: certification_request.PolicyConstraints, [certification_request.id_ce_policyMappings]: certification_request.PolicyMappings, [certification_request.id_ce_subjectAltName]: certification_request.SubjectAlternativeName, [certification_request.id_ce_subjectDirectoryAttributes]: certification_request.SubjectDirectoryAttributes, [certification_request.id_ce_subjectKeyIdentifier]: certification_request.SubjectKeyIdentifier, [certification_request.id_pe_qcStatements]: certification_request.QCStatements, [certification_request.id_certificateTemplate]: certification_request.CertificateTemplate, [certification_request.id_enrollCertType]: certification_request.EnrollCertTypeChoice, [certification_request.id_netscapeComment]: certification_request.NetscapeComment, [certification_request.id_netscapeCertType]: certification_request.NetscapeCertType, [certification_request.id_caVersion]: certification_request.CaVersion, [id_certificateTransparency]: CertificateTransparency, [certification_request.id_lei]: certification_request.LeiChoice, [certification_request.id_role]: certification_request.LeiRole, [certification_request.id_adbe_timestamp]: certification_request.Timestamp, [certification_request.id_adbe_archiveRevInfo]: certification_request.ArchiveRevInfo, [certification_request.id_ce_privateKeyUsagePeriod]: certification_request.PrivateKeyUsagePeriod, [certification_request.id_entrust_entrustVersInfo]: certification_request.EntrustVersionInfo, '2.16.724.1.2.2.4.1': certification_request.BiometricSyntax, [certification_request.id_pe_biometricInfo]: certification_request.BiometricSyntax, [id_pe_logotype]: certification_request.LogotypeExtn, [certification_request.id_pe_TNAuthList]: certification_request.TNAuthorizationList, [certification_request.id_pe_subjectInfoAccess]: certification_request.SubjectInfoAccessSyntax, [certification_request.id_ce_cRLNumber]: certification_request.CRLNumber, [certification_request.id_ce_deltaCRLIndicator]: certification_request.BaseCRLNumber, [certification_request.id_ce_keyDescription]: certification_request.NonStandardKeyDescription, [certification_request.id_cabforganizationIdentifier]: certification_request.CabforganizationIdentifier, }; class Extension extends certification_request.AsnData { getAsnExtnValue() { return this.asn.extnValue.buffer; } constructor(raw) { super(raw, certification_request.Extension); const asnExtnValue = this.getAsnExtnValue(); try { const target = extensionParsers[this.asn.extnID]; if (target) { this.value = certification_request.AsnParser.parse(asnExtnValue, target); } else { console.warn(`Didn't detect parser for "${this.asn.extnID}" extension.`); this.value = certification_request.Convert_1.ToHex(asnExtnValue); } } catch (error) { console.error(`Error parse "${this.asn.extnID}" extension:`, error.message); this.value = certification_request.Convert_1.ToHex(asnExtnValue); } } } /*! * © Peculiar Ventures https://peculiarventures.com/ - MIT License */ const certificateRawToBuffer = (raw) => { if (certification_request.PemConverter.isPem(raw)) { return certification_request.PemConverter.decode(raw)[0]; } if (certification_request.Convert_1.isHex(raw)) { return certification_request.Convert_1.FromHex(raw); } if (certification_request.Convert_1.isBase64(raw)) { return certification_request.Convert_1.FromBase64(raw); } if (certification_request.Convert_1.isBase64Url(raw)) { return certification_request.Convert_1.FromBase64Url(raw); } throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url"); }; const getCertificateThumbprint = async (algorithm, data) => { const crypto = certification_request.cryptoProvider.get(); if (crypto.subtle) { return crypto.subtle.digest(algorithm, data); } return undefined; }; exports.CertificateTransparency = CertificateTransparency; exports.Extension = Extension; exports.certificateRawToBuffer = certificateRawToBuffer; exports.getCertificateThumbprint = getCertificateThumbprint; //# sourceMappingURL=utils-10d69476.js.map