UNPKG

@peculiar/fortify-webcomponents

Version:

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

128 lines (122 loc) 6.81 kB
/*! * © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License */ import { O as OctetString, _ as ByteStream, $ as SignedCertificateTimestamp, e as AsnData, a0 as Extension$1, p as AsnParser, C as Convert_1, a1 as id_pe_authorityInfoAccess, a2 as AuthorityInfoAccessSyntax, a3 as id_ce_authorityKeyIdentifier, a4 as AuthorityKeyIdentifier, a5 as id_ce_basicConstraints, a6 as BasicConstraints, a7 as id_ce_certificateIssuer, a8 as CertificateIssuer, a9 as id_ce_certificatePolicies, aa as CertificatePolicies, ab as id_ce_cRLDistributionPoints, ac as CRLDistributionPoints, ad as id_ce_issuingDistributionPoint, ae as IssuingDistributionPoint, af as id_ce_cRLReasons, ag as CRLReason, ah as id_ce_extKeyUsage, ai as ExtendedKeyUsage, aj as id_ce_inhibitAnyPolicy, ak as InhibitAnyPolicy, al as id_ce_invalidityDate, am as InvalidityDate, an as id_ce_issuerAltName, ao as IssueAlternativeName, ap as id_ce_keyUsage, aq as KeyUsage, ar as id_ce_nameConstraints, as as NameConstraints, at as id_ce_policyConstraints, au as PolicyConstraints, av as id_ce_policyMappings, aw as PolicyMappings, ax as id_ce_subjectAltName, ay as SubjectAlternativeName, az as id_ce_subjectDirectoryAttributes, aA as SubjectDirectoryAttributes, aB as id_ce_subjectKeyIdentifier, aC as SubjectKeyIdentifier, aD as id_pe_qcStatements, aE as QCStatements, aF as id_certificateTemplate, aG as CertificateTemplate, aH as id_enrollCertType, aI as EnrollCertTypeChoice, aJ as id_netscapeComment, aK as NetscapeComment, aL as id_netscapeCertType, aM as NetscapeCertType, aN as id_caVersion, aO as CaVersion, aP as id_lei, aQ as LeiChoice, aR as id_role, aS as LeiRole, aT as id_adbe_timestamp, aU as Timestamp, aV as id_adbe_archiveRevInfo, aW as ArchiveRevInfo, aX as id_ce_privateKeyUsagePeriod, aY as PrivateKeyUsagePeriod, aZ as id_entrust_entrustVersInfo, a_ as EntrustVersionInfo, a$ as BiometricSyntax, b0 as id_pe_biometricInfo, b1 as LogotypeExtn, b2 as id_pe_TNAuthList, b3 as TNAuthorizationList, b4 as id_pe_subjectInfoAccess, b5 as SubjectInfoAccessSyntax, b6 as id_ce_cRLNumber, b7 as CRLNumber, b8 as id_ce_deltaCRLIndicator, b9 as BaseCRLNumber, ba as id_ce_keyDescription, bb as NonStandardKeyDescription, bc as id_cabforganizationIdentifier, bd as CabforganizationIdentifier, P as PemConverter, be as cryptoProvider } from './certification_request-0b43f1e5.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 */ 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 = Convert_1.ToHex(asnExtnValue); } } catch (error) { console.error(`Error parse "${this.asn.extnID}" extension:`, error.message); this.value = Convert_1.ToHex(asnExtnValue); } } } /*! * © Peculiar Ventures https://peculiarventures.com/ - MIT License */ const certificateRawToBuffer = (raw) => { if (PemConverter.isPem(raw)) { return PemConverter.decode(raw)[0]; } if (Convert_1.isHex(raw)) { return Convert_1.FromHex(raw); } if (Convert_1.isBase64(raw)) { return Convert_1.FromBase64(raw); } if (Convert_1.isBase64Url(raw)) { return 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 = 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-75993c76.js.map