UNPKG

@peculiar/fortify-webcomponents

Version:

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

148 lines (141 loc) 6.69 kB
/*! * © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License */ 'use strict'; var ssh_certificate = require('./ssh_certificate-ClDh-FAQ.js'); const id_certificateTransparency = "1.3.6.1.4.1.11129.2.4.2"; class CertificateTransparency extends ssh_certificate.OctetString { constructor() { super(...arguments); this.items = []; } fromASN(asn) { super.fromASN(asn); const stream = new ssh_certificate.ByteStream(this.buffer); const len = stream.readNumber(2); this.items = []; while (stream.position < len) { this.items.push(new ssh_certificate.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 */ /** * @license * Copyright (c) Peculiar Ventures, LLC. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const extensionParsers = { [ssh_certificate.id_pe_authorityInfoAccess]: ssh_certificate.AuthorityInfoAccessSyntax, [ssh_certificate.id_ce_authorityKeyIdentifier]: ssh_certificate.AuthorityKeyIdentifier, [ssh_certificate.id_ce_basicConstraints]: ssh_certificate.BasicConstraints, [ssh_certificate.id_ce_certificateIssuer]: ssh_certificate.CertificateIssuer, [ssh_certificate.id_ce_certificatePolicies]: ssh_certificate.CertificatePolicies, [ssh_certificate.id_ce_cRLDistributionPoints]: ssh_certificate.CRLDistributionPoints, '2.5.29.46': ssh_certificate.CRLDistributionPoints, [ssh_certificate.id_ce_issuingDistributionPoint]: ssh_certificate.IssuingDistributionPoint, [ssh_certificate.id_ce_cRLReasons]: ssh_certificate.CRLReason, [ssh_certificate.id_ce_extKeyUsage]: ssh_certificate.ExtendedKeyUsage, [ssh_certificate.id_ce_inhibitAnyPolicy]: ssh_certificate.InhibitAnyPolicy, [ssh_certificate.id_ce_invalidityDate]: ssh_certificate.InvalidityDate, [ssh_certificate.id_ce_issuerAltName]: ssh_certificate.IssueAlternativeName, [ssh_certificate.id_ce_keyUsage]: ssh_certificate.KeyUsage, [ssh_certificate.id_ce_nameConstraints]: ssh_certificate.NameConstraints, [ssh_certificate.id_ce_policyConstraints]: ssh_certificate.PolicyConstraints, [ssh_certificate.id_ce_policyMappings]: ssh_certificate.PolicyMappings, [ssh_certificate.id_ce_subjectAltName]: ssh_certificate.SubjectAlternativeName, [ssh_certificate.id_ce_subjectDirectoryAttributes]: ssh_certificate.SubjectDirectoryAttributes, [ssh_certificate.id_ce_subjectKeyIdentifier]: ssh_certificate.SubjectKeyIdentifier, [ssh_certificate.id_pe_qcStatements]: ssh_certificate.QCStatements, [ssh_certificate.id_certificateTemplate]: ssh_certificate.CertificateTemplate, [ssh_certificate.id_enrollCertType]: ssh_certificate.EnrollCertTypeChoice, [ssh_certificate.id_netscapeComment]: ssh_certificate.NetscapeComment, [ssh_certificate.id_netscapeCertType]: ssh_certificate.NetscapeCertType, [ssh_certificate.id_caVersion]: ssh_certificate.CaVersion, [id_certificateTransparency]: CertificateTransparency, [ssh_certificate.id_lei]: ssh_certificate.LeiChoice, [ssh_certificate.id_role]: ssh_certificate.LeiRole, [ssh_certificate.id_adbe_timestamp]: ssh_certificate.Timestamp, [ssh_certificate.id_adbe_archiveRevInfo]: ssh_certificate.ArchiveRevInfo, [ssh_certificate.id_ce_privateKeyUsagePeriod]: ssh_certificate.PrivateKeyUsagePeriod, [ssh_certificate.id_entrust_entrustVersInfo]: ssh_certificate.EntrustVersionInfo, '2.16.724.1.2.2.4.1': ssh_certificate.BiometricSyntax, [ssh_certificate.id_pe_biometricInfo]: ssh_certificate.BiometricSyntax, [id_pe_logotype]: ssh_certificate.LogotypeExtn, [ssh_certificate.id_pe_TNAuthList]: ssh_certificate.TNAuthorizationList, [ssh_certificate.id_pe_subjectInfoAccess]: ssh_certificate.SubjectInfoAccessSyntax, [ssh_certificate.id_ce_cRLNumber]: ssh_certificate.CRLNumber, [ssh_certificate.id_ce_deltaCRLIndicator]: ssh_certificate.BaseCRLNumber, [ssh_certificate.id_ce_keyDescription]: ssh_certificate.NonStandardKeyDescription, [ssh_certificate.id_cabforganizationIdentifier]: ssh_certificate.CabforganizationIdentifier, }; class Extension extends ssh_certificate.AsnData { getAsnExtnValue() { return this.asn.extnValue.buffer; } constructor(raw) { super(raw, ssh_certificate.Extension); const asnExtnValue = this.getAsnExtnValue(); try { const target = extensionParsers[this.asn.extnID]; if (target) { this.value = ssh_certificate.AsnParser.parse(asnExtnValue, target); } else { console.warn(`Didn't detect parser for "${this.asn.extnID}" extension.`); this.value = ssh_certificate.buildExports.Convert.ToHex(asnExtnValue); } } catch (error) { console.error(`Error parse "${this.asn.extnID}" extension:`, error.message); this.value = ssh_certificate.buildExports.Convert.ToHex(asnExtnValue); } } } /*! * © Peculiar Ventures https://peculiarventures.com/ - MIT License */ /** * @license * Copyright (c) Peculiar Ventures, LLC. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const certificateRawToBuffer = (raw) => { if (ssh_certificate.PemConverter.isPem(raw)) { return ssh_certificate.PemConverter.decode(raw)[0]; } if (ssh_certificate.buildExports.Convert.isHex(raw)) { return ssh_certificate.buildExports.Convert.FromHex(raw); } if (ssh_certificate.buildExports.Convert.isBase64(raw)) { return ssh_certificate.buildExports.Convert.FromBase64(raw); } if (ssh_certificate.buildExports.Convert.isBase64Url(raw)) { return ssh_certificate.buildExports.Convert.FromBase64Url(raw); } return ssh_certificate.buildExports.Convert.FromBinary(raw); }; const getCertificateThumbprint = async (algorithm, data) => { const crypto = ssh_certificate.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-DSHncyfG.js.map //# sourceMappingURL=utils-DSHncyfG.js.map