UNPKG

@peculiar/fortify-webcomponents

Version:

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

143 lines (137 loc) 7.25 kB
/*! * © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License */ import { O as OctetString, a2 as ByteStream, a3 as SignedCertificateTimestamp, A as AsnData, a4 as Extension$1, r as AsnParser, a5 as CabforganizationIdentifier, a6 as NonStandardKeyDescription, a7 as BaseCRLNumber, a8 as CRLNumber, a9 as SubjectInfoAccessSyntax, aa as TNAuthorizationList, ab as LogotypeExtn, ac as BiometricSyntax, ad as EntrustVersionInfo, ae as PrivateKeyUsagePeriod, af as ArchiveRevInfo, ag as Timestamp, ah as LeiRole, ai as LeiChoice, aj as CaVersion, ak as NetscapeCertType, al as NetscapeComment, am as EnrollCertTypeChoice, an as CertificateTemplate, ao as QCStatements, ap as SubjectKeyIdentifier, aq as SubjectDirectoryAttributes, ar as SubjectAlternativeName, as as PolicyMappings, at as PolicyConstraints, au as NameConstraints, av as KeyUsage, aw as IssueAlternativeName, ax as InvalidityDate, ay as InhibitAnyPolicy, az as ExtendedKeyUsage, aA as CRLReason, aB as IssuingDistributionPoint, aC as CRLDistributionPoints, aD as CertificatePolicies, aE as CertificateIssuer, aF as BasicConstraints, aG as AuthorityKeyIdentifier, aH as AuthorityInfoAccessSyntax, b as buildExports, aI as id_cabforganizationIdentifier, aJ as id_ce_keyDescription, aK as id_ce_deltaCRLIndicator, aL as id_ce_cRLNumber, aM as id_pe_subjectInfoAccess, aN as id_pe_TNAuthList, aO as id_pe_biometricInfo, aP as id_entrust_entrustVersInfo, aQ as id_ce_privateKeyUsagePeriod, aR as id_adbe_archiveRevInfo, aS as id_adbe_timestamp, aT as id_role, aU as id_lei, aV as id_caVersion, aW as id_netscapeCertType, aX as id_netscapeComment, aY as id_enrollCertType, aZ as id_certificateTemplate, a_ as id_pe_qcStatements, a$ as id_ce_subjectKeyIdentifier, b0 as id_ce_subjectDirectoryAttributes, b1 as id_ce_subjectAltName, b2 as id_ce_policyMappings, b3 as id_ce_policyConstraints, b4 as id_ce_nameConstraints, b5 as id_ce_keyUsage, b6 as id_ce_issuerAltName, b7 as id_ce_invalidityDate, b8 as id_ce_inhibitAnyPolicy, b9 as id_ce_extKeyUsage, ba as id_ce_cRLReasons, bb as id_ce_issuingDistributionPoint, bc as id_ce_cRLDistributionPoints, bd as id_ce_certificatePolicies, be as id_ce_certificateIssuer, bf as id_ce_basicConstraints, bg as id_ce_authorityKeyIdentifier, bh as id_pe_authorityInfoAccess, P as PemConverter, bi as cryptoProvider } from './ssh_certificate-CDwMJyak.js'; const id_certificateTransparency = "1.3.6.1.4.1.11129.2.4.2"; class CertificateTransparency extends OctetString { constructor() { super(...arguments); this.items = []; } fromASN(asn) { super.fromASN(asn); const stream = new ByteStream(this.buffer); const len = stream.readNumber(2); this.items = []; while (stream.position < len) { this.items.push(new 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 = { [id_pe_authorityInfoAccess]: AuthorityInfoAccessSyntax, [id_ce_authorityKeyIdentifier]: AuthorityKeyIdentifier, [id_ce_basicConstraints]: BasicConstraints, [id_ce_certificateIssuer]: CertificateIssuer, [id_ce_certificatePolicies]: CertificatePolicies, [id_ce_cRLDistributionPoints]: CRLDistributionPoints, '2.5.29.46': CRLDistributionPoints, [id_ce_issuingDistributionPoint]: IssuingDistributionPoint, [id_ce_cRLReasons]: CRLReason, [id_ce_extKeyUsage]: ExtendedKeyUsage, [id_ce_inhibitAnyPolicy]: InhibitAnyPolicy, [id_ce_invalidityDate]: InvalidityDate, [id_ce_issuerAltName]: IssueAlternativeName, [id_ce_keyUsage]: KeyUsage, [id_ce_nameConstraints]: NameConstraints, [id_ce_policyConstraints]: PolicyConstraints, [id_ce_policyMappings]: PolicyMappings, [id_ce_subjectAltName]: SubjectAlternativeName, [id_ce_subjectDirectoryAttributes]: SubjectDirectoryAttributes, [id_ce_subjectKeyIdentifier]: SubjectKeyIdentifier, [id_pe_qcStatements]: QCStatements, [id_certificateTemplate]: CertificateTemplate, [id_enrollCertType]: EnrollCertTypeChoice, [id_netscapeComment]: NetscapeComment, [id_netscapeCertType]: NetscapeCertType, [id_caVersion]: CaVersion, [id_certificateTransparency]: CertificateTransparency, [id_lei]: LeiChoice, [id_role]: LeiRole, [id_adbe_timestamp]: Timestamp, [id_adbe_archiveRevInfo]: ArchiveRevInfo, [id_ce_privateKeyUsagePeriod]: PrivateKeyUsagePeriod, [id_entrust_entrustVersInfo]: EntrustVersionInfo, '2.16.724.1.2.2.4.1': BiometricSyntax, [id_pe_biometricInfo]: BiometricSyntax, [id_pe_logotype]: LogotypeExtn, [id_pe_TNAuthList]: TNAuthorizationList, [id_pe_subjectInfoAccess]: SubjectInfoAccessSyntax, [id_ce_cRLNumber]: CRLNumber, [id_ce_deltaCRLIndicator]: BaseCRLNumber, [id_ce_keyDescription]: NonStandardKeyDescription, [id_cabforganizationIdentifier]: CabforganizationIdentifier, }; class Extension extends AsnData { getAsnExtnValue() { return this.asn.extnValue.buffer; } constructor(raw) { super(raw, Extension$1); const asnExtnValue = this.getAsnExtnValue(); try { const target = extensionParsers[this.asn.extnID]; if (target) { this.value = AsnParser.parse(asnExtnValue, target); } else { console.warn(`Didn't detect parser for "${this.asn.extnID}" extension.`); this.value = buildExports.Convert.ToHex(asnExtnValue); } } catch (error) { console.error(`Error parse "${this.asn.extnID}" extension:`, error.message); this.value = 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 (PemConverter.isPem(raw)) { return PemConverter.decode(raw)[0]; } if (buildExports.Convert.isHex(raw)) { return buildExports.Convert.FromHex(raw); } if (buildExports.Convert.isBase64(raw)) { return buildExports.Convert.FromBase64(raw); } if (buildExports.Convert.isBase64Url(raw)) { return buildExports.Convert.FromBase64Url(raw); } return buildExports.Convert.FromBinary(raw); }; const getCertificateThumbprint = async (algorithm, data) => { const crypto = cryptoProvider.get(); if (crypto.subtle) { return crypto.subtle.digest(algorithm, data); } return undefined; }; export { CertificateTransparency as C, Extension as E, certificateRawToBuffer as c, getCertificateThumbprint as g }; //# sourceMappingURL=utils-Bx6Iov6q.js.map //# sourceMappingURL=utils-Bx6Iov6q.js.map