@peculiar/fortify-webcomponents
Version:
Web-components for creating CSR or Certificate and viewing certificates list using Fortify
143 lines (137 loc) • 7.25 kB
JavaScript
/*!
* © 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