@peculiar/certificates-viewer 4.9.1 → 4.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/attribute-certificate-viewer.js +1 -1
- package/components/attribute-certificate-viewer.js.map +1 -1
- package/components/certificate-chain-viewer.js +1 -1
- package/components/certificate-viewer.js +1 -1
- package/components/certificate-viewer.js.map +1 -1
- package/components/circular-progress.js +2 -2
- package/components/crl-viewer.js +2 -2
- package/components/crl-viewer.js.map +1 -1
- package/components/csr-viewer.js +1 -1
- package/components/csr-viewer.js.map +1 -1
- package/components/download.js +83 -12
- package/components/download.js.map +1 -1
- package/components/highlight-words.js +1 -1
- package/components/miscellaneous.js +17 -1
- package/components/miscellaneous.js.map +1 -1
- package/components/peculiar-certificate-decoder.js +51 -53
- package/components/peculiar-certificate-decoder.js.map +1 -1
- package/components/peculiar-certificates-viewer.js +1 -1
- package/components/ssh-certificate-viewer.js +2 -2
- package/components/ssh-certificate-viewer.js.map +1 -1
- package/components/text-hider.js +1 -1
- package/dist/cjs/{extension-BDpdRJkE.js → extension-Ba-KQhu5.js} +4 -3
- package/dist/cjs/extension-Ba-KQhu5.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{miscellaneous-DmTT_MGG.js → miscellaneous-CtuYfnBB.js} +19 -4
- package/dist/cjs/miscellaneous-CtuYfnBB.js.map +1 -0
- package/dist/cjs/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.peculiar-ssh-certificate-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-attribute-certificate-viewer_5.cjs.entry.js +10 -10
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +3 -3
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +54 -55
- package/dist/cjs/peculiar-certificate-decoder.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +5 -5
- package/dist/cjs/peculiar-certificate-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +3 -3
- package/dist/cjs/peculiar-text-hider.cjs.entry.js +1 -1
- package/dist/cjs/peculiar.cjs.js +1 -1
- package/dist/cjs/{pkcs10_certificate_request-DZLiHGCV.js → pkcs10_certificate_request-BDLZWqTP.js} +3 -3
- package/dist/cjs/{pkcs10_certificate_request-DZLiHGCV.js.map → pkcs10_certificate_request-BDLZWqTP.js.map} +1 -1
- package/dist/cjs/{ssh_certificate-Bh14rhzR.js → ssh_certificate-Gu4FwsRk.js} +86 -13
- package/dist/cjs/ssh_certificate-Gu4FwsRk.js.map +1 -0
- package/dist/cjs/{x509_certificate-p8RMn7Hw.js → x509_certificate-BSOf2t9Y.js} +4 -4
- package/dist/cjs/{x509_certificate-p8RMn7Hw.js.map → x509_certificate-BSOf2t9Y.js.map} +1 -1
- package/dist/cjs/{x509_crl-tjmX6l3R.js → x509_crl-BgUtqkpv.js} +5 -5
- package/dist/cjs/{x509_crl-tjmX6l3R.js.map → x509_crl-BgUtqkpv.js.map} +1 -1
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +1 -1
- package/dist/collection/components/button-menu/button-menu.js +1 -1
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.css +3 -3
- package/dist/collection/components/certificate-decoder/certificate-decoder.js +53 -63
- package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/apple_developer_id_date_extension.js +19 -0
- package/dist/collection/components/certificate-details-parts/extensions/apple_developer_id_date_extension.js.map +1 -0
- package/dist/collection/components/certificate-details-parts/extensions/index.js +5 -1
- package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
- package/dist/collection/components/certificate-viewer/certificate-viewer.css +3 -3
- package/dist/collection/components/certificate-viewer/certificate-viewer.js +1 -1
- package/dist/collection/components/certificates-viewer/certificates-viewer.js +1 -1
- package/dist/collection/components/circular-progress/circular-progress.js +2 -2
- package/dist/collection/components/crl-viewer/crl-viewer.js +1 -1
- package/dist/collection/components/csr-viewer/csr-viewer.js +1 -1
- package/dist/collection/components/highlight-words/highlight-words.js +1 -1
- package/dist/collection/components/ssh-certificate-viewer/ssh-certificate-viewer.js +1 -1
- package/dist/collection/components/text-hider/text-hider.js +1 -1
- package/dist/collection/constants/oids.js +27 -6
- package/dist/collection/constants/oids.js.map +1 -1
- package/dist/collection/crypto/extension.js +2 -1
- package/dist/collection/crypto/extension.js.map +1 -1
- package/dist/collection/crypto/extensions/apple_developer_id_date.js +53 -0
- package/dist/collection/crypto/extensions/apple_developer_id_date.js.map +1 -0
- package/dist/collection/crypto/extensions/index.js +1 -0
- package/dist/collection/crypto/extensions/index.js.map +1 -1
- package/dist/collection/www-copy/favicon.svg +1 -0
- package/dist/collection/www-copy/index.js +5 -10
- package/dist/esm/{extension-xW03sQxn.js → extension-8GydD2wh.js} +4 -3
- package/dist/esm/extension-8GydD2wh.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{miscellaneous-D-Qxv14j.js → miscellaneous-Bxm6kKwP.js} +19 -4
- package/dist/esm/miscellaneous-Bxm6kKwP.js.map +1 -0
- package/dist/esm/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.peculiar-ssh-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-attribute-certificate-viewer_5.entry.js +10 -10
- package/dist/esm/peculiar-button-menu_3.entry.js +3 -3
- package/dist/esm/peculiar-certificate-decoder.entry.js +54 -55
- package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-viewer.entry.js +5 -5
- package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-certificates-viewer.entry.js +3 -3
- package/dist/esm/peculiar-text-hider.entry.js +1 -1
- package/dist/esm/peculiar.js +1 -1
- package/dist/esm/{pkcs10_certificate_request-Crr9FABo.js → pkcs10_certificate_request-B_lMfAi8.js} +3 -3
- package/dist/esm/{pkcs10_certificate_request-Crr9FABo.js.map → pkcs10_certificate_request-B_lMfAi8.js.map} +1 -1
- package/dist/esm/{ssh_certificate-CmOVFH_Z.js → ssh_certificate-Del2D5s9.js} +85 -14
- package/dist/esm/ssh_certificate-Del2D5s9.js.map +1 -0
- package/dist/esm/{x509_certificate-C2EVTspY.js → x509_certificate-DRGTrdPm.js} +4 -4
- package/dist/{esm-es5/x509_certificate-C2EVTspY.js.map → esm/x509_certificate-DRGTrdPm.js.map} +1 -1
- package/dist/esm/{x509_crl-Bdnys_YT.js → x509_crl-rO-rdi1G.js} +5 -5
- package/dist/{esm-es5/x509_crl-Bdnys_YT.js.map → esm/x509_crl-rO-rdi1G.js.map} +1 -1
- package/dist/esm-es5/extension-8GydD2wh.js +12 -0
- package/dist/esm-es5/extension-8GydD2wh.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{miscellaneous-D-Qxv14j.js → miscellaneous-Bxm6kKwP.js} +10 -3
- package/dist/esm-es5/miscellaneous-Bxm6kKwP.js.map +1 -0
- package/dist/esm-es5/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.peculiar-ssh-certificate-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_5.entry.js +3 -3
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_5.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-button-menu_3.entry.js +1 -1
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js +2 -2
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js +1 -1
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificates-viewer.entry.js +1 -1
- package/dist/esm-es5/peculiar-text-hider.entry.js +1 -1
- package/dist/esm-es5/peculiar.js +1 -1
- package/dist/esm-es5/{pkcs10_certificate_request-Crr9FABo.js → pkcs10_certificate_request-B_lMfAi8.js} +2 -2
- package/dist/esm-es5/{pkcs10_certificate_request-Crr9FABo.js.map → pkcs10_certificate_request-B_lMfAi8.js.map} +1 -1
- package/dist/esm-es5/{ssh_certificate-CmOVFH_Z.js → ssh_certificate-Del2D5s9.js} +5 -5
- package/dist/esm-es5/ssh_certificate-Del2D5s9.js.map +1 -0
- package/dist/esm-es5/{x509_certificate-C2EVTspY.js → x509_certificate-DRGTrdPm.js} +2 -2
- package/dist/{esm/x509_certificate-C2EVTspY.js.map → esm-es5/x509_certificate-DRGTrdPm.js.map} +1 -1
- package/dist/esm-es5/{x509_crl-Bdnys_YT.js → x509_crl-rO-rdi1G.js} +2 -2
- package/dist/{esm/x509_crl-Bdnys_YT.js.map → esm-es5/x509_crl-rO-rdi1G.js.map} +1 -1
- package/dist/peculiar/index.esm.js +1 -1
- package/dist/peculiar/p-1fb833f3.entry.js +5 -0
- package/dist/peculiar/{p-3424de20.system.entry.js → p-64cc6da1.system.entry.js} +2 -2
- package/dist/peculiar/{p-007b79ff.entry.js → p-76472b19.entry.js} +2 -2
- package/dist/peculiar/{p-0ef9c56c.entry.js → p-7b83898f.entry.js} +21 -21
- package/dist/peculiar/{p-0ef9c56c.entry.js.map → p-7b83898f.entry.js.map} +1 -1
- package/dist/peculiar/{p-f7ee4d56.entry.js → p-7c5aa1f5.entry.js} +2 -2
- package/dist/peculiar/{p-f7ee4d56.entry.js.map → p-7c5aa1f5.entry.js.map} +1 -1
- package/dist/peculiar/p-8d36d2f8.system.entry.js +5 -0
- package/dist/peculiar/p-8d36d2f8.system.entry.js.map +1 -0
- package/dist/peculiar/{p-3a493e87.entry.js → p-95f81b6d.entry.js} +2 -2
- package/dist/peculiar/p-9ab5fa9f.entry.js +5 -0
- package/dist/peculiar/p-9ab5fa9f.entry.js.map +1 -0
- package/dist/peculiar/{p-DberG072.system.js → p-B5d7q9FD.system.js} +4 -4
- package/dist/peculiar/{p-DberG072.system.js.map → p-B5d7q9FD.system.js.map} +1 -1
- package/dist/peculiar/{p-B7cL9SBA.js → p-BAnW9WLg.js} +4 -4
- package/dist/peculiar/{p-B7cL9SBA.js.map → p-BAnW9WLg.js.map} +1 -1
- package/dist/peculiar/p-BKLsbktK.system.js +135 -0
- package/dist/peculiar/p-BKLsbktK.system.js.map +1 -0
- package/dist/peculiar/{p-vXPL1mjI.system.js.map → p-BQoMhw1w.system.js.map} +1 -1
- package/dist/peculiar/{p-1yfbC8AM.js → p-Ba1oqaJ3.js} +61 -54
- package/dist/peculiar/p-Ba1oqaJ3.js.map +1 -0
- package/dist/peculiar/{p-CGipIfjs.system.js → p-BakSwSe7.system.js} +2 -2
- package/dist/peculiar/{p-CGipIfjs.system.js.map → p-BakSwSe7.system.js.map} +1 -1
- package/dist/peculiar/{p-Bwp7g8Ef.system.js.map → p-Blt9UUmt.system.js.map} +1 -1
- package/dist/peculiar/{p-w85NrMQC.system.js.map → p-BpRY-zq0.system.js.map} +1 -1
- package/dist/peculiar/p-CDZsc_KS.system.js.map +1 -0
- package/dist/peculiar/{p-B4vvBwd6.js → p-CH0mNFdH.js} +3 -3
- package/dist/peculiar/{p-B4vvBwd6.js.map → p-CH0mNFdH.js.map} +1 -1
- package/dist/peculiar/{p-Bfl7RVFY.system.js → p-CTj-Drej.system.js} +4 -4
- package/dist/peculiar/{p-Bfl7RVFY.system.js.map → p-CTj-Drej.system.js.map} +1 -1
- package/dist/peculiar/{p-BvX2AYI4.system.js.map → p-CgXNYogJ.system.js.map} +1 -1
- package/dist/peculiar/p-Cp20xosi.js +12 -0
- package/dist/peculiar/p-Cp20xosi.js.map +1 -0
- package/dist/peculiar/{p-Cq11_gqW.system.js → p-DPnMJlS4.system.js} +2 -2
- package/dist/peculiar/p-DPnMJlS4.system.js.map +1 -0
- package/dist/peculiar/{p-tkt_tT15.system.js → p-DcqxnCVz.system.js} +61 -54
- package/dist/peculiar/p-DcqxnCVz.system.js.map +1 -0
- package/dist/peculiar/{p-CmOVFH_Z.js → p-Del2D5s9.js} +8 -8
- package/dist/peculiar/p-Del2D5s9.js.map +1 -0
- package/dist/peculiar/{p-BxiR02Uf.js → p-DrLCyy39.js} +4 -4
- package/dist/peculiar/{p-BxiR02Uf.js.map → p-DrLCyy39.js.map} +1 -1
- package/dist/peculiar/{p-7HEye5oH.system.js.map → p-MyCIZClD.system.js.map} +1 -1
- package/dist/peculiar/p-b8bb96f4.system.entry.js +5 -0
- package/dist/peculiar/{p-c17b79cf.system.entry.js → p-d2b87ce5.system.entry.js} +2 -2
- package/dist/peculiar/{p-b955360e.system.entry.js → p-da018463.system.entry.js} +18 -18
- package/dist/peculiar/p-da018463.system.entry.js.map +1 -0
- package/dist/peculiar/{p-4ff3d82a.system.entry.js → p-f30eb78c.system.entry.js} +2 -2
- package/dist/peculiar/p-f30eb78c.system.entry.js.map +1 -0
- package/dist/peculiar/p-hEr9Uo3G.system.js +1 -1
- package/dist/peculiar/p-itJt0J5g.system.js +12 -0
- package/dist/peculiar/p-itJt0J5g.system.js.map +1 -0
- package/dist/peculiar/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.peculiar-ssh-certificate-viewer.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar-certificate-decoder.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar-certificate-viewer.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar.esm.js +1 -1
- package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +8 -10
- package/dist/types/components/certificate-details-parts/extensions/apple_developer_id_date_extension.d.ts +15 -0
- package/dist/types/components.d.ts +6 -6
- package/dist/types/constants/oids.d.ts +23 -2
- package/dist/types/crypto/extension.d.ts +2 -1
- package/dist/types/crypto/extensions/apple_developer_id_date.d.ts +19 -0
- package/dist/types/crypto/extensions/index.d.ts +1 -0
- package/hydrate/index.js +158 -71
- package/hydrate/index.mjs +158 -71
- package/package.json +31 -30
- package/dist/cjs/extension-BDpdRJkE.js.map +0 -1
- package/dist/cjs/miscellaneous-DmTT_MGG.js.map +0 -1
- package/dist/cjs/ssh_certificate-Bh14rhzR.js.map +0 -1
- package/dist/collection/components/certificate-decoder/certificate-decoder.css +0 -475
- package/dist/esm/extension-xW03sQxn.js.map +0 -1
- package/dist/esm/miscellaneous-D-Qxv14j.js.map +0 -1
- package/dist/esm/ssh_certificate-CmOVFH_Z.js.map +0 -1
- package/dist/esm-es5/extension-xW03sQxn.js +0 -12
- package/dist/esm-es5/extension-xW03sQxn.js.map +0 -1
- package/dist/esm-es5/miscellaneous-D-Qxv14j.js.map +0 -1
- package/dist/esm-es5/ssh_certificate-CmOVFH_Z.js.map +0 -1
- package/dist/peculiar/p-1yfbC8AM.js.map +0 -1
- package/dist/peculiar/p-342e499f.system.entry.js +0 -5
- package/dist/peculiar/p-4ff3d82a.system.entry.js.map +0 -1
- package/dist/peculiar/p-64517c6e.system.entry.js +0 -5
- package/dist/peculiar/p-64517c6e.system.entry.js.map +0 -1
- package/dist/peculiar/p-7777c7dc.entry.js +0 -5
- package/dist/peculiar/p-7777c7dc.entry.js.map +0 -1
- package/dist/peculiar/p-CLcRtCZ9.system.js +0 -135
- package/dist/peculiar/p-CLcRtCZ9.system.js.map +0 -1
- package/dist/peculiar/p-Ckf8xErP.system.js +0 -12
- package/dist/peculiar/p-Ckf8xErP.system.js.map +0 -1
- package/dist/peculiar/p-CmOVFH_Z.js.map +0 -1
- package/dist/peculiar/p-Cq11_gqW.system.js.map +0 -1
- package/dist/peculiar/p-DXA1451q.js +0 -12
- package/dist/peculiar/p-DXA1451q.js.map +0 -1
- package/dist/peculiar/p-Drk9aw2j.system.js.map +0 -1
- package/dist/peculiar/p-b955360e.system.entry.js.map +0 -1
- package/dist/peculiar/p-ce08fab1.entry.js +0 -5
- package/dist/peculiar/p-tkt_tT15.system.js.map +0 -1
- /package/dist/peculiar/{p-ce08fab1.entry.js.map → p-1fb833f3.entry.js.map} +0 -0
- /package/dist/peculiar/{p-3424de20.system.entry.js.map → p-64cc6da1.system.entry.js.map} +0 -0
- /package/dist/peculiar/{p-007b79ff.entry.js.map → p-76472b19.entry.js.map} +0 -0
- /package/dist/peculiar/{p-3a493e87.entry.js.map → p-95f81b6d.entry.js.map} +0 -0
- /package/dist/peculiar/{p-342e499f.system.entry.js.map → p-b8bb96f4.system.entry.js.map} +0 -0
- /package/dist/peculiar/{p-c17b79cf.system.entry.js.map → p-d2b87ce5.system.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peculiar-certificate-decoder.entry.js","sources":["../../node_modules/@peculiar/asn1-cms/build/es2015/object_identifiers.js","src/crypto/x509_certificates.ts","src/components/certificate-decoder/certificate-decoder.scss?tag=peculiar-certificate-decoder&encapsulation=shadow","src/components/certificate-decoder/certificate-decoder.tsx"],"sourcesContent":["export const id_ct_contentInfo = \"1.2.840.113549.1.9.16.1.6\";\nexport const id_data = \"1.2.840.113549.1.7.1\";\nexport const id_signedData = \"1.2.840.113549.1.7.2\";\nexport const id_envelopedData = \"1.2.840.113549.1.7.3\";\nexport const id_digestedData = \"1.2.840.113549.1.7.5\";\nexport const id_encryptedData = \"1.2.840.113549.1.7.6\";\nexport const id_authData = \"1.2.840.113549.1.9.16.1.2\";\n","import { Convert } from 'pvtsutils';\nimport {\n SignedData,\n id_data,\n EncapsulatedContent,\n CertificateSet,\n CertificateChoices,\n ContentInfo,\n id_signedData,\n} from '@peculiar/asn1-cms';\nimport { Certificate } from '@peculiar/asn1-x509';\nimport { AsnConvert, OctetString } from '@peculiar/asn1-schema';\nimport { Download } from '../utils';\nimport { PemConverter } from './pem_converter';\nimport { X509Certificate } from './x509_certificate';\n\nexport class X509Certificates extends Array<X509Certificate> {\n constructor(raw: string) {\n super();\n\n const rawItems = PemConverter.isPem(raw)\n ? PemConverter.decode(raw).map((value) => Convert.ToBase64Url(value))\n : raw.split(',');\n\n if (rawItems.length < 2) {\n throw new Error('Unable to parse string. The array of elements is less than 2');\n }\n\n for (const item of rawItems) {\n this.push(new X509Certificate(item));\n }\n }\n\n public get commonName(): string {\n return Array.from(this)\n .map((o) => o.commonName)\n .join('_');\n }\n\n public get raw(): ArrayBuffer {\n const signedData = new SignedData();\n\n signedData.version = 1;\n signedData.encapContentInfo.eContentType = id_data;\n signedData.encapContentInfo.eContent = new EncapsulatedContent({ single: new OctetString() });\n signedData.certificates = new CertificateSet(\n Array.from(this)\n .map((o) => new CertificateChoices({ certificate: AsnConvert.parse(o.raw, Certificate) })),\n );\n\n const cms = new ContentInfo({\n contentType: id_signedData,\n content: AsnConvert.serialize(signedData),\n });\n\n return AsnConvert.serialize(cms);\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return Array.from(this)\n .map((o) => o.toString('pem'))\n .join('\\n');\n case 'base64url':\n return Array.from(this)\n .map((o) => o.toString('base64url'))\n .join(',');\n default:\n return Array.from(this)\n .map((o) => o.toString('base64'))\n .join(',');\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n","@use '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n}\n\n.textarea {\n min-height: 300px;\n width: 100%;\n border-radius: 4px;\n border: 1px solid var(--pv-color-gray-5);;\n padding: 14px;\n font-family: monospace;\n resize: vertical;\n}\n\n.controls {\n margin-top: calc(var(--pv-size-base) * 2);\n display: flex;\n flex-direction: column;\n gap: calc(var(--pv-size-base) * 2);\n margin-bottom: calc(var(--pv-size-base) * 12);\n}\n\n.control_row {\n display: flex;\n align-items: center;\n gap: var(--pv-size-base);\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Host,\n h,\n State,\n Prop,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { readAsBinaryString } from '../../utils';\nimport {\n X509Certificate,\n X509AttributeCertificate,\n Pkcs10CertificateRequest,\n X509Crl,\n X509Certificates,\n SshCertificate,\n} from '../../crypto';\nimport { Button } from '../button';\nimport { Typography } from '../typography';\n\n@Component({\n tag: 'peculiar-certificate-decoder',\n styleUrl: 'certificate-decoder.scss',\n shadow: true,\n})\nexport class CertificateDecoder {\n private inputPaste?: HTMLTextAreaElement;\n\n /**\n * The example certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() certificateExamples?: {\n title: string;\n value: string;\n }[];\n\n /**\n * The default certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() certificateToDecode?: string;\n\n @State() certificateDecoded: X509Certificates\n | X509Certificate\n | X509AttributeCertificate\n | Pkcs10CertificateRequest\n | X509Crl\n | SshCertificate;\n\n /**\n * Emitted when the certificate has been successfully parsed.\n */\n @Event() successParse!: EventEmitter<string>;\n\n /**\n * Emitted when the certificate has been removed.\n */\n @Event() clearCertificate!: EventEmitter<void>;\n\n componentDidLoad() {\n if (this.certificateToDecode) {\n /**\n * Prevent Stencil warning about re-render\n */\n setTimeout(() => this.decode(this.certificateToDecode), 100);\n }\n }\n\n private handleClickDecode = () => {\n const { value } = this.inputPaste;\n\n if (value) {\n this.decode(value);\n }\n };\n\n private handleClickClear = () => {\n this.clearValue();\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleChangeInputFile = async (event: any) => {\n const element = event.target;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n\n element.value = '';\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleChangeExample = (event: any) => {\n if (event.target.value) {\n this.decode(event.target.value);\n } else {\n this.clearValue();\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleDropFile = async (event: any) => {\n event.stopPropagation();\n event.preventDefault();\n\n const element = event.dataTransfer;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n }\n };\n\n clearValue() {\n this.inputPaste.value = '';\n this.certificateDecoded = null;\n this.clearCertificate.emit();\n }\n\n async setValue(value: typeof this.certificateDecoded) {\n this.certificateDecoded = value;\n\n this.inputPaste.value = await value.toString('pem');\n this.successParse.emit(await value.toString('base64url'));\n }\n\n async decode(value: string) {\n new Promise<X509Certificates>((resolve) => {\n resolve(new X509Certificates(value));\n })\n .catch(() => new X509Certificate(value))\n .catch(() => new X509AttributeCertificate(value))\n .catch(() => new Pkcs10CertificateRequest(value))\n .catch(() => new X509Crl(value))\n .catch(() => new SshCertificate(value))\n .then((res: typeof this.certificateDecoded) => this.setValue(res))\n .catch((error) => {\n console.log(error);\n\n alert(`Error decoding certificate:\\n\"${value}\"\\n\\nPlease try to use Certificate/AttributeCertificate/CertificateRequest/CRL.`);\n });\n }\n\n renderCertificate() {\n if (this.certificateDecoded instanceof X509Certificates) {\n return (\n <peculiar-certificate-chain-viewer\n certificates={this.certificateDecoded}\n download\n />\n );\n }\n\n if (this.certificateDecoded instanceof X509Certificate) {\n return (\n <peculiar-certificate-viewer\n certificate={this.certificateDecoded}\n download\n />\n );\n }\n\n if (this.certificateDecoded instanceof X509AttributeCertificate) {\n return (\n <peculiar-attribute-certificate-viewer\n certificate={this.certificateDecoded}\n download\n />\n );\n }\n\n if (this.certificateDecoded instanceof Pkcs10CertificateRequest) {\n return (\n <peculiar-csr-viewer\n certificate={this.certificateDecoded}\n download\n />\n );\n }\n\n if (this.certificateDecoded instanceof X509Crl) {\n return (\n <peculiar-crl-viewer\n certificate={this.certificateDecoded}\n download\n />\n );\n }\n\n if (this.certificateDecoded instanceof SshCertificate) {\n return (\n <peculiar-ssh-certificate-viewer\n certificate={this.certificateDecoded}\n download\n />\n );\n }\n\n return null;\n }\n\n render() {\n return (\n <Host>\n <textarea\n placeholder=\"Certificate DER or PEM\"\n class=\"textarea t-b2 c-black\"\n ref={(el) => { this.inputPaste = el; }}\n onDrop={this.handleDropFile}\n />\n <div class=\"controls\">\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Drag or load file:\n </Typography>\n <input\n type=\"file\"\n accept=\"application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl,.pub\"\n value=\"\"\n onChange={this.handleChangeInputFile}\n />\n </div>\n {this.certificateExamples?.length && (\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Load examples:\n </Typography>\n <select onChange={this.handleChangeExample}>\n <option value=\"\">None</option>\n {this.certificateExamples.map((example) => (\n <option value={example.value}>\n {example.title}\n </option>\n ))}\n </select>\n </div>\n )}\n <div class=\"control_row\">\n <Button\n onClick={this.handleClickDecode}\n >\n Decode\n </Button>\n <Button\n onClick={this.handleClickClear}\n >\n Clear\n </Button>\n </div>\n </div>\n {this.renderCertificate()}\n </Host>\n );\n }\n}\n"],"names":["Convert"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"peculiar-certificate-decoder.entry.js","sources":["../../node_modules/@peculiar/asn1-cms/build/es2015/object_identifiers.js","src/crypto/x509_certificates.ts","src/components/certificate-decoder/certificate-decoder.tsx"],"sourcesContent":["export const id_ct_contentInfo = \"1.2.840.113549.1.9.16.1.6\";\nexport const id_data = \"1.2.840.113549.1.7.1\";\nexport const id_signedData = \"1.2.840.113549.1.7.2\";\nexport const id_envelopedData = \"1.2.840.113549.1.7.3\";\nexport const id_digestedData = \"1.2.840.113549.1.7.5\";\nexport const id_encryptedData = \"1.2.840.113549.1.7.6\";\nexport const id_authData = \"1.2.840.113549.1.9.16.1.2\";\n","import { Convert } from 'pvtsutils';\nimport {\n SignedData,\n id_data,\n EncapsulatedContent,\n CertificateSet,\n CertificateChoices,\n ContentInfo,\n id_signedData,\n} from '@peculiar/asn1-cms';\nimport { Certificate } from '@peculiar/asn1-x509';\nimport { AsnConvert, OctetString } from '@peculiar/asn1-schema';\nimport { Download } from '../utils';\nimport { PemConverter } from './pem_converter';\nimport { X509Certificate } from './x509_certificate';\n\nexport class X509Certificates extends Array<X509Certificate> {\n constructor(raw: string) {\n super();\n\n const rawItems = PemConverter.isPem(raw)\n ? PemConverter.decode(raw).map((value) => Convert.ToBase64Url(value))\n : raw.split(',');\n\n if (rawItems.length < 2) {\n throw new Error('Unable to parse string. The array of elements is less than 2');\n }\n\n for (const item of rawItems) {\n this.push(new X509Certificate(item));\n }\n }\n\n public get commonName(): string {\n return Array.from(this)\n .map((o) => o.commonName)\n .join('_');\n }\n\n public get raw(): ArrayBuffer {\n const signedData = new SignedData();\n\n signedData.version = 1;\n signedData.encapContentInfo.eContentType = id_data;\n signedData.encapContentInfo.eContent = new EncapsulatedContent({ single: new OctetString() });\n signedData.certificates = new CertificateSet(\n Array.from(this)\n .map((o) => new CertificateChoices({ certificate: AsnConvert.parse(o.raw, Certificate) })),\n );\n\n const cms = new ContentInfo({\n contentType: id_signedData,\n content: AsnConvert.serialize(signedData),\n });\n\n return AsnConvert.serialize(cms);\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return Array.from(this)\n .map((o) => o.toString('pem'))\n .join('\\n');\n case 'base64url':\n return Array.from(this)\n .map((o) => o.toString('base64url'))\n .join(',');\n default:\n return Array.from(this)\n .map((o) => o.toString('base64'))\n .join(',');\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Host,\n h,\n State,\n Prop,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { readAsBinaryString } from '../../utils';\nimport {\n X509Certificate,\n X509AttributeCertificate,\n Pkcs10CertificateRequest,\n X509Crl,\n X509Certificates,\n SshCertificate,\n} from '../../crypto';\n\n@Component({\n tag: 'peculiar-certificate-decoder',\n shadow: false,\n})\nexport class CertificateDecoder {\n private inputPaste?: HTMLTextAreaElement;\n\n /**\n * Pre-loaded example certificates available in the \"Load example\" dropdown.\n */\n @Prop() certificateExamples?: {\n title: string;\n value: string;\n }[];\n\n /**\n * A certificate to decode on first load (PEM or Base64 DER).\n */\n @Prop() certificateToDecode?: string;\n\n /** The decoded certificate object; null while empty. */\n @State() certificateDecoded: X509Certificates\n | X509Certificate\n | X509AttributeCertificate\n | Pkcs10CertificateRequest\n | X509Crl\n | SshCertificate;\n\n /** Emitted when a certificate has been successfully parsed. */\n @Event() successParse!: EventEmitter<string>;\n\n /** Emitted when the input has been cleared. */\n @Event() clearCertificate!: EventEmitter<void>;\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────────\n\n componentDidLoad() {\n if (this.certificateToDecode) {\n // Defer one tick to avoid Stencil re-render warning\n setTimeout(() => this.decode(this.certificateToDecode), 100);\n }\n }\n\n // ─── Handlers ──────────────────────────────────────────────────────────────\n\n private handleClickDecode = () => {\n const { value } = this.inputPaste;\n\n if (value) this.decode(value);\n };\n\n private handleClickClear = () => {\n this.clearValue();\n };\n\n private handleChangeInputFile = async (event: Event) => {\n const el = event.target as HTMLInputElement;\n\n if (el.files?.length) {\n const file = await readAsBinaryString(el.files[0]);\n\n if (typeof file.value === 'string') this.decode(file.value);\n el.value = '';\n }\n };\n\n private handleChangeExample = (event: Event) => {\n const val = (event.target as HTMLSelectElement).value;\n\n if (val) this.decode(val);\n else this.clearValue();\n };\n\n private handleDrop = async (event: DragEvent) => {\n event.stopPropagation();\n event.preventDefault();\n const files = event.dataTransfer?.files;\n\n if (files?.length) {\n const file = await readAsBinaryString(files[0]);\n\n if (typeof file.value === 'string') this.decode(file.value);\n }\n };\n\n // ─── Core operations ───────────────────────────────────────────────────────\n\n clearValue() {\n this.inputPaste.value = '';\n this.certificateDecoded = null;\n this.clearCertificate.emit();\n }\n\n async setValue(value: typeof this.certificateDecoded) {\n this.certificateDecoded = value;\n this.inputPaste.value = await value.toString('pem');\n this.successParse.emit(await value.toString('base64url'));\n }\n\n async decode(value: string) {\n new Promise<X509Certificates>((resolve) => resolve(new X509Certificates(value)))\n .catch(() => new X509Certificate(value))\n .catch(() => new X509AttributeCertificate(value))\n .catch(() => new Pkcs10CertificateRequest(value))\n .catch(() => new X509Crl(value))\n .catch(() => new SshCertificate(value))\n .then((res: typeof this.certificateDecoded) => this.setValue(res))\n .catch((err) => {\n console.error(err);\n alert(`Error decoding certificate.\\n\\nSupported formats: X.509 Certificate, Attribute Certificate, PKCS#10 CSR, CRL, SSH Certificate.`);\n });\n }\n\n // ─── Render helpers ────────────────────────────────────────────────────────\n\n private renderDecodedComponent() {\n const cert = this.certificateDecoded;\n\n if (cert instanceof X509Certificates) {\n return <peculiar-certificate-chain-viewer certificates={cert} download />;\n }\n\n if (cert instanceof X509Certificate) {\n return <peculiar-certificate-viewer certificate={cert} download />;\n }\n\n if (cert instanceof X509AttributeCertificate) {\n return <peculiar-attribute-certificate-viewer certificate={cert} download />;\n }\n\n if (cert instanceof Pkcs10CertificateRequest) {\n return <peculiar-csr-viewer certificate={cert} download />;\n }\n\n if (cert instanceof X509Crl) {\n return <peculiar-crl-viewer certificate={cert} download />;\n }\n\n if (cert instanceof SshCertificate) {\n return <peculiar-ssh-certificate-viewer certificate={cert} download />;\n }\n\n return null;\n }\n\n // ─── Render ────────────────────────────────────────────────────────────────\n\n render() {\n const hasDecoded = !!this.certificateDecoded;\n\n return (\n <Host class=\"relative grid h-full min-h-0 w-full grid-cols-1 overflow-hidden bg-gray-100 font-sans min-[821px]:grid-cols-2 max-[820px]:h-auto\">\n <div\n class=\"pointer-events-none absolute inset-y-0 left-1/2 hidden w-px -translate-x-1/2 bg-gray-200 min-[821px]:block\"\n aria-hidden=\"true\"\n />\n\n {/* ══════════════════════ LEFT PANE — INPUT ══════════════════════ */}\n <div class=\"flex min-h-0 flex-col overflow-hidden bg-white max-[820px]:min-h-64 max-[820px]:border-b max-[820px]:border-gray-200\">\n\n <div class=\"flex shrink-0 items-center justify-between gap-2 border-b border-gray-200 bg-gray-100 px-4 py-2\">\n <span class=\"flex items-center gap-1.5 font-mono text-xs uppercase tracking-widest text-gray-500\">\n <svg\n width=\"12\" height=\"12\"\n class=\"shrink-0 text-blue-600 opacity-80\"\n fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n Encoded Input\n </span>\n\n <div class=\"flex shrink-0 items-center gap-1\">\n <label\n class=\"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border border-gray-300 bg-white px-2.5 py-1 font-mono text-xs tracking-wide text-gray-700 transition-all duration-150 hover:opacity-80 disabled:pointer-events-none disabled:cursor-default disabled:opacity-40\"\n title=\"Load from file\"\n >\n <svg\n width=\"11\" height=\"11\"\n fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12\"\n />\n </svg>\n Upload\n <input\n type=\"file\"\n accept=\".pem,.crt,.cer,.der,.csr,.req,.crl,.pub,application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl\"\n class=\"hidden\"\n onChange={this.handleChangeInputFile}\n />\n </label>\n\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border border-gray-300 bg-white px-2.5 py-1 font-mono text-xs tracking-wide text-gray-700 transition-all duration-150 hover:opacity-80 disabled:pointer-events-none disabled:cursor-default disabled:opacity-40\"\n disabled={!hasDecoded && !this.inputPaste?.value}\n onClick={this.handleClickClear}\n >\n Clear\n </button>\n\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md bg-blue-600 px-2.5 py-1 font-mono text-xs tracking-wide text-white transition-all duration-150 hover:opacity-80 disabled:pointer-events-none disabled:cursor-default disabled:opacity-40\"\n disabled={!hasDecoded && !this.inputPaste?.value}\n onClick={this.handleClickDecode}\n >\n Decode →\n </button>\n </div>\n </div>\n\n <textarea\n class=\"min-h-0 w-full flex-1 resize-none border-0 bg-gray-100 px-4 py-4 font-mono text-xs leading-snug tracking-wide text-blue-800 caret-blue-600 outline-none transition-colors duration-150 placeholder:italic placeholder:text-gray-400 focus:bg-white\"\n placeholder={'Paste a PEM or Base64 DER certificate here,\\nor drag & drop a .pem / .crt file…\\n\\n-----BEGIN CERTIFICATE-----\\nMIIFaz…\\n-----END CERTIFICATE-----'}\n ref={(el) => { this.inputPaste = el as HTMLTextAreaElement; }}\n onDrop={this.handleDrop}\n />\n </div>\n\n {/* ══════════════════════ RIGHT PANE — OUTPUT ══════════════════════ */}\n <div class=\"flex min-h-0 flex-col overflow-hidden bg-white\">\n <div class=\"flex shrink-0 items-center justify-between gap-2 border-b border-gray-200 bg-gray-100 px-4 py-2\">\n <span class=\"flex items-center gap-1.5 font-mono text-xs uppercase tracking-widest text-gray-500\">\n <svg\n width=\"12\" height=\"12\"\n class=\"shrink-0 text-blue-600 opacity-80\"\n fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\"\n />\n </svg>\n Decoded Output\n </span>\n\n {this.certificateExamples?.length > 0 && (\n <div class=\"relative max-w-xs shrink\">\n <select\n class=\"w-full max-w-xs cursor-pointer appearance-none rounded-md border border-gray-300 bg-white py-1 pl-2 pr-8 font-mono text-xs text-gray-700 transition-colors hover:border-blue-600 focus:border-blue-600 focus:outline-none\"\n onChange={this.handleChangeExample}\n >\n <option value=\"\">Load example…</option>\n {this.certificateExamples.map((ex) => (\n <option value={ex.value}>{ex.title}</option>\n ))}\n </select>\n <svg\n class=\"pointer-events-none absolute right-2 top-1/2 size-2.5 -translate-y-1/2 text-gray-500\"\n fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"1.5\"\n viewBox=\"0 0 10 6\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M1 1l4 4 4-4\"\n />\n </svg>\n </div>\n )}\n </div>\n\n <div class=\"min-h-0 flex-1 overflow-y-auto bg-white [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:rounded-md [&::-webkit-scrollbar-thumb]:bg-gray-300 hover:[&::-webkit-scrollbar-thumb]:bg-gray-400\">\n {!hasDecoded\n ? this.renderPlaceholder()\n : this.renderDecodedComponent()}\n </div>\n </div>\n\n </Host>\n );\n }\n\n private renderPlaceholder() {\n return (\n <div class=\"flex h-full flex-col items-center justify-center gap-3 p-10\">\n <div class=\"flex size-12 items-center justify-center rounded-full border border-gray-200 bg-gray-100 text-gray-400\">\n <svg\n width=\"24\" height=\"24\"\n fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"1.5\" viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n </div>\n <p class=\"text-center font-mono text-xs leading-relaxed text-gray-400\">\n Paste a certificate on the left\n <br />\n and click\n {' '}\n <strong class=\"font-semibold text-blue-600\">Decode</strong>\n {' '}\n — or load an example.\n </p>\n </div>\n );\n }\n}\n"],"names":["Convert"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, h, H as Host } from './index-Dpo1Lsuj.js';
|
|
5
|
-
import { X as X509Certificate } from './x509_certificate-
|
|
6
|
-
import './ssh_certificate-
|
|
7
|
-
import { B as BasicInformation, S as SubjectName, I as IssuerName, P as PublicKey, a as Signature, T as Thumbprints, E as Extensions, g as getIPAddressLink, b as getDNSNameLink, c as getLEILink, M as Miscellaneous } from './miscellaneous-
|
|
5
|
+
import { X as X509Certificate } from './x509_certificate-DRGTrdPm.js';
|
|
6
|
+
import './ssh_certificate-Del2D5s9.js';
|
|
7
|
+
import { B as BasicInformation, S as SubjectName, I as IssuerName, P as PublicKey, a as Signature, T as Thumbprints, E as Extensions, g as getIPAddressLink, b as getDNSNameLink, c as getLEILink, M as Miscellaneous } from './miscellaneous-Bxm6kKwP.js';
|
|
8
8
|
import { T as Typography } from './button-B_ORW96s.js';
|
|
9
|
-
import './extension-
|
|
9
|
+
import './extension-8GydD2wh.js';
|
|
10
10
|
import './link-CHi4u6ex.js';
|
|
11
11
|
import './download-DBNGcuiq.js';
|
|
12
12
|
|
|
13
|
-
const certificateViewerCss = "*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:calc(var(--pv-size-base) * 6);min-width:calc(var(--pv-size-base) * 6);padding:0 calc(var(--pv-size-base) * 2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:calc(var(--pv-size-base) * 2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;position:relative;min-width:280px;min-height:300px;word-wrap:break-word;word-break:break-word;--pv-certificate-viewer-td-horizontal-padding:calc(var(--pv-size-base) * 4)}th,td{border:none}table{width:100%;border-spacing:0;border-collapse:collapse}table tr:last-child .divider{display:none}table td{padding:calc(var(--pv-size-base) *
|
|
13
|
+
const certificateViewerCss = "*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:calc(var(--pv-size-base) * 6);min-width:calc(var(--pv-size-base) * 6);padding:0 calc(var(--pv-size-base) * 2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:calc(var(--pv-size-base) * 2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;position:relative;min-width:280px;min-height:300px;word-wrap:break-word;word-break:break-word;--pv-certificate-viewer-td-horizontal-padding:calc(var(--pv-size-base) * 4)}th,td{border:none}table{width:100%;border-spacing:0;border-collapse:collapse}table tr:last-child .divider{display:none}table td{padding:calc(var(--pv-size-base) * 1) var(--pv-certificate-viewer-td-horizontal-padding);vertical-align:top}table td:first-child{width:220px}table td:last-child{width:calc(100% - 220px)}table td.monospace{max-width:0}table td.divider{padding:calc(var(--pv-size-base) * 1) 0}table td.divider span{height:1px;display:block;background-color:var(--pv-color-gray-4)}table .title td{padding-top:calc(var(--pv-size-base) * 6);padding-bottom:calc(var(--pv-size-base) * 1)}table table{border-left:1px solid var(--pv-color-gray-5)}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block}:host([data-mobile-screen-view=true]) table tr{padding:calc(var(--pv-size-base) * 2) 0}:host([data-mobile-screen-view=true]) table tr.title{padding-top:calc(var(--pv-size-base) * 6)}:host([data-mobile-screen-view=true]) table tr.title td{padding:0 var(--pv-certificate-viewer-td-horizontal-padding)}:host([data-mobile-screen-view=true]) table td{padding:0 var(--pv-certificate-viewer-td-horizontal-padding);width:100% !important;max-width:100% !important}:host([data-mobile-screen-view=true]) table td.divider{padding:0}";
|
|
14
14
|
|
|
15
15
|
const CertificateViewer = class {
|
|
16
16
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peculiar-certificate-viewer.entry.js","sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@use '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n\n --pv-certificate-viewer-td-horizontal-padding: calc(var(--pv-size-base) * 4);\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n tr:last-child {\n .divider {\n display: none;\n }\n }\n\n td {\n padding: calc(var(--pv-size-base) * 2) var(--pv-certificate-viewer-td-horizontal-padding);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: calc(var(--pv-size-base) * 2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: calc(var(--pv-size-base) * 6);\n padding-bottom: calc(var(--pv-size-base) * 2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: calc(var(--pv-size-base) * 2) 0;\n\n &.title {\n padding-top: calc(var(--pv-size-base) * 6);\n\n td {\n padding: 0 var(--pv-certificate-viewer-td-horizontal-padding);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-certificate-viewer-td-horizontal-padding);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Build,\n} from '@stencil/core';\nimport { X509Certificate } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n IssuerName,\n PublicKey,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TCertificateProp = string | X509Certificate;\n\n@Component({\n tag: 'peculiar-certificate-viewer',\n styleUrl: 'certificate-viewer.scss',\n shadow: true,\n})\nexport class CertificateViewer {\n private certificateDecoded: X509Certificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: TCertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TCertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Certificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Certificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(newValue: TCertificateProp, oldValue: TCertificateProp) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (newValue instanceof X509Certificate && oldValue instanceof X509Certificate) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peculiar-certificate-viewer.entry.js","sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@use '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n\n --pv-certificate-viewer-td-horizontal-padding: calc(var(--pv-size-base) * 4);\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n tr:last-child {\n .divider {\n display: none;\n }\n }\n\n td {\n padding: calc(var(--pv-size-base) * 1) var(--pv-certificate-viewer-td-horizontal-padding);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: calc(var(--pv-size-base) * 1) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: calc(var(--pv-size-base) * 6);\n padding-bottom: calc(var(--pv-size-base) * 1);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: calc(var(--pv-size-base) * 2) 0;\n\n &.title {\n padding-top: calc(var(--pv-size-base) * 6);\n\n td {\n padding: 0 var(--pv-certificate-viewer-td-horizontal-padding);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-certificate-viewer-td-horizontal-padding);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Build,\n} from '@stencil/core';\nimport { X509Certificate } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n IssuerName,\n PublicKey,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TCertificateProp = string | X509Certificate;\n\n@Component({\n tag: 'peculiar-certificate-viewer',\n styleUrl: 'certificate-viewer.scss',\n shadow: true,\n})\nexport class CertificateViewer {\n private certificateDecoded: X509Certificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: TCertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TCertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Certificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Certificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(newValue: TCertificateProp, oldValue: TCertificateProp) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (newValue instanceof X509Certificate && oldValue instanceof X509Certificate) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { h, r as registerInstance, c as createEvent, H as Host } from './index-Dpo1Lsuj.js';
|
|
5
|
-
import { X as X509Certificate } from './x509_certificate-
|
|
6
|
-
import {
|
|
5
|
+
import { X as X509Certificate } from './x509_certificate-DRGTrdPm.js';
|
|
6
|
+
import { a4 as l10n, a5 as dateShort, a6 as OIDs } from './ssh_certificate-Del2D5s9.js';
|
|
7
7
|
import { T as Typography, B as Button } from './button-B_ORW96s.js';
|
|
8
8
|
import { D as DetailsIcon, L as LinkIcon, C as CrossIcon } from './cross-C5dZw2z0.js';
|
|
9
9
|
import { D as DownloadIcon } from './download-DBNGcuiq.js';
|
|
10
10
|
import { a as ArrowTopIcon, A as ArrowBottomIcon } from './arrow_top-D9kTyEez.js';
|
|
11
|
-
import './extension-
|
|
11
|
+
import './extension-8GydD2wh.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @license
|
|
@@ -13,7 +13,7 @@ const TextHider = class {
|
|
|
13
13
|
this.opened = false;
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '7d39700d8d15a9fbfba418832d9545bbbc37ce29', "aria-expanded": String(this.opened) }, h("div", { key: 'cd5958a939f358a1833b5ec483ea32c8026901d6', class: "content" }, h("slot", { key: 'b93b8bef15768226ca26a0c362a1c7acdff1bf03' })), h(Button, { key: '09ae3aed45f1bf6427c15fabef07995ea3adcdb8', class: "action", startIcon: this.opened ? h(ArrowTopIcon, { color: "secondary" }) : h(ArrowBottomIcon, { color: "secondary" }), onClick: () => { this.opened = !this.opened; } })));
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
TextHider.style = textHiderCss;
|
package/dist/esm/peculiar.js
CHANGED
|
@@ -19,6 +19,6 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await globalScripts();
|
|
22
|
-
return bootstrapLazy([["peculiar-text-hider",[[262,"peculiar-text-hider",{"opened":[32]}]]],["peculiar-certificate-viewer",[[257,"peculiar-certificate-viewer",{"certificate":[513],"download":[516],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}]]],["peculiar-attribute-certificate-viewer_5",[[257,"peculiar-certificate-chain-viewer",{"certificates":[16],"download":[516],"selectedCertificateIndex":[32]}],[257,"peculiar-ssh-certificate-viewer",{"certificate":[513],"download":[516],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-attribute-certificate-viewer",{"certificate":[1],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-crl-viewer",{"certificate":[513],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-csr-viewer",{"certificate":[513],"download":[4],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}]]],["peculiar-certificate-decoder",[[
|
|
22
|
+
return bootstrapLazy([["peculiar-text-hider",[[262,"peculiar-text-hider",{"opened":[32]}]]],["peculiar-certificate-viewer",[[257,"peculiar-certificate-viewer",{"certificate":[513],"download":[516],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}]]],["peculiar-attribute-certificate-viewer_5",[[257,"peculiar-certificate-chain-viewer",{"certificates":[16],"download":[516],"selectedCertificateIndex":[32]}],[257,"peculiar-ssh-certificate-viewer",{"certificate":[513],"download":[516],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-attribute-certificate-viewer",{"certificate":[1],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-crl-viewer",{"certificate":[513],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}],[257,"peculiar-csr-viewer",{"certificate":[513],"download":[4],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"isDecodeInProcess":[32]},null,{"certificate":["watchCertificateAndDecode"]}]]],["peculiar-certificate-decoder",[[256,"peculiar-certificate-decoder",{"certificateExamples":[16],"certificateToDecode":[1,"certificate-to-decode"],"certificateDecoded":[32]}]]],["peculiar-button-menu_3",[[258,"peculiar-button-menu",{"groups":[16],"open":[32]}],[257,"peculiar-circular-progress",{"size":[2],"width":[2]}],[257,"peculiar-highlight-words",{"search":[1]}]]],["peculiar-certificates-viewer",[[257,"peculiar-certificates-viewer",{"certificates":[16],"filterWithSearch":[4,"filter-with-search"],"highlightWithSearch":[4,"highlight-with-search"],"mobileMediaQueryString":[1,"mobile-media-query-string"],"mobileScreenView":[32],"search":[32],"certificatesDecoded":[32],"expandedRow":[32],"certificateSelectedForDetails":[32],"isDecodeInProcess":[32]},null,{"certificates":["watchCertificates"]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
//# sourceMappingURL=peculiar.js.map
|
package/dist/esm/{pkcs10_certificate_request-Crr9FABo.js → pkcs10_certificate_request-B_lMfAi8.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { A as AsnData, p as Attribute$1, q as AsnParser, r as PrivateKeyPossessionStatement, s as ExtensionRequest, U as UnstructuredName, t as ChallengePassword, V as ValuationRanking, I as InsuranceValue, W as WebGDPR, u as ActivityDescription, T as TypeRelationship, v as DomainNameTechnicalOperator, w as DomainNameOwner, x as DomainNameLegalRepresentative, y as DomainNameBeneficiary, b as buildExports, z as id_at_statementOfPossession, B as id_pkcs9_at_extensionRequest, F as id_pkcs9_at_unstructuredName, G as id_pkcs9_at_challengePassword, H as id_ValuationRanking, J as id_InsuranceValue, K as id_WebGDPR, L as id_ActivityDescription, M as id_TypeRelationship, O as id_DomainNameTechnicalOperator, Q as id_DomainNameOwner, S as id_DomainNameLegalRepresentative, X as id_DomainNameBeneficiary, c as certificateRawToBuffer, Y as CertificationRequest, P as PemConverter, N as Name, i as id_ecPublicKey, e as AsnConvert, E as ECParameters, f as id_rsaEncryption, R as RSAPublicKey, m as getCertificateThumbprint, D as Download } from './ssh_certificate-
|
|
4
|
+
import { A as AsnData, p as Attribute$1, q as AsnParser, r as PrivateKeyPossessionStatement, s as ExtensionRequest, U as UnstructuredName, t as ChallengePassword, V as ValuationRanking, I as InsuranceValue, W as WebGDPR, u as ActivityDescription, T as TypeRelationship, v as DomainNameTechnicalOperator, w as DomainNameOwner, x as DomainNameLegalRepresentative, y as DomainNameBeneficiary, b as buildExports, z as id_at_statementOfPossession, B as id_pkcs9_at_extensionRequest, F as id_pkcs9_at_unstructuredName, G as id_pkcs9_at_challengePassword, H as id_ValuationRanking, J as id_InsuranceValue, K as id_WebGDPR, L as id_ActivityDescription, M as id_TypeRelationship, O as id_DomainNameTechnicalOperator, Q as id_DomainNameOwner, S as id_DomainNameLegalRepresentative, X as id_DomainNameBeneficiary, c as certificateRawToBuffer, Y as CertificationRequest, P as PemConverter, N as Name, i as id_ecPublicKey, e as AsnConvert, E as ECParameters, f as id_rsaEncryption, R as RSAPublicKey, m as getCertificateThumbprint, D as Download } from './ssh_certificate-Del2D5s9.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @license
|
|
@@ -138,6 +138,6 @@ class Pkcs10CertificateRequest extends AsnData {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
export { Attribute as A, Pkcs10CertificateRequest as P };
|
|
141
|
-
//# sourceMappingURL=pkcs10_certificate_request-
|
|
141
|
+
//# sourceMappingURL=pkcs10_certificate_request-B_lMfAi8.js.map
|
|
142
142
|
|
|
143
|
-
//# sourceMappingURL=pkcs10_certificate_request-
|
|
143
|
+
//# sourceMappingURL=pkcs10_certificate_request-B_lMfAi8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkcs10_certificate_request-Crr9FABo.js","sources":["src/crypto/attribute.ts","src/crypto/pkcs10_certificate_request.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport { Attribute as AsnAttribute } from '@peculiar/asn1-x509';\nimport {\n id_DomainNameBeneficiary,\n DomainNameBeneficiary,\n\n id_DomainNameLegalRepresentative,\n DomainNameLegalRepresentative,\n\n id_DomainNameOwner,\n DomainNameOwner,\n\n id_DomainNameTechnicalOperator,\n DomainNameTechnicalOperator,\n\n id_TypeRelationship,\n TypeRelationship,\n\n id_ActivityDescription,\n ActivityDescription,\n\n id_WebGDPR,\n WebGDPR,\n\n id_InsuranceValue,\n InsuranceValue,\n\n id_ValuationRanking,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n\n id_pkcs9_at_challengePassword,\n ChallengePassword,\n\n id_pkcs9_at_unstructuredName,\n UnstructuredName,\n} from '@peculiar/asn1-pkcs9';\nimport {\n id_at_statementOfPossession,\n PrivateKeyPossessionStatement,\n} from '@peculiar/asn1-private-key-stmt';\nimport { AsnData } from './asn_data';\n\nconst attributesParsers = {\n [id_DomainNameBeneficiary]: DomainNameBeneficiary,\n [id_DomainNameLegalRepresentative]: DomainNameLegalRepresentative,\n [id_DomainNameOwner]: DomainNameOwner,\n [id_DomainNameTechnicalOperator]: DomainNameTechnicalOperator,\n [id_TypeRelationship]: TypeRelationship,\n [id_ActivityDescription]: ActivityDescription,\n [id_WebGDPR]: WebGDPR,\n [id_InsuranceValue]: InsuranceValue,\n [id_ValuationRanking]: ValuationRanking,\n [id_pkcs9_at_challengePassword]: ChallengePassword,\n [id_pkcs9_at_unstructuredName]: UnstructuredName,\n [id_pkcs9_at_extensionRequest]: ExtensionRequest,\n [id_at_statementOfPossession]: PrivateKeyPossessionStatement,\n};\n\ntype TAttributeKeys = keyof typeof attributesParsers;\n\nexport type TAttributeValue = InstanceType<typeof attributesParsers[TAttributeKeys]> | string;\n\nexport class Attribute<T extends TAttributeValue> extends AsnData<AsnAttribute> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.values[0];\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnAttribute);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n try {\n const target = attributesParsers[this.asn.type];\n\n if (target) {\n this.value = AsnParser.parse<T>(asnExtnValue, target);\n } else {\n console.warn(`Didn't detect parser for \"${this.asn.type}\" attribute.`);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n } catch (error) {\n console.error(`Error parse \"${this.asn.type}\" attribute:`, error.message);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport { Convert } from 'pvtsutils';\nimport { Download } from '../utils';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class Pkcs10CertificateRequest extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'PKCS#10 Certificate Request';\n\n public readonly tag = PemConverter.CertificateRequestTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"],"names":["AsnAttribute","Convert"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pkcs10_certificate_request-B_lMfAi8.js","sources":["src/crypto/attribute.ts","src/crypto/pkcs10_certificate_request.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport { Attribute as AsnAttribute } from '@peculiar/asn1-x509';\nimport {\n id_DomainNameBeneficiary,\n DomainNameBeneficiary,\n\n id_DomainNameLegalRepresentative,\n DomainNameLegalRepresentative,\n\n id_DomainNameOwner,\n DomainNameOwner,\n\n id_DomainNameTechnicalOperator,\n DomainNameTechnicalOperator,\n\n id_TypeRelationship,\n TypeRelationship,\n\n id_ActivityDescription,\n ActivityDescription,\n\n id_WebGDPR,\n WebGDPR,\n\n id_InsuranceValue,\n InsuranceValue,\n\n id_ValuationRanking,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n\n id_pkcs9_at_challengePassword,\n ChallengePassword,\n\n id_pkcs9_at_unstructuredName,\n UnstructuredName,\n} from '@peculiar/asn1-pkcs9';\nimport {\n id_at_statementOfPossession,\n PrivateKeyPossessionStatement,\n} from '@peculiar/asn1-private-key-stmt';\nimport { AsnData } from './asn_data';\n\nconst attributesParsers = {\n [id_DomainNameBeneficiary]: DomainNameBeneficiary,\n [id_DomainNameLegalRepresentative]: DomainNameLegalRepresentative,\n [id_DomainNameOwner]: DomainNameOwner,\n [id_DomainNameTechnicalOperator]: DomainNameTechnicalOperator,\n [id_TypeRelationship]: TypeRelationship,\n [id_ActivityDescription]: ActivityDescription,\n [id_WebGDPR]: WebGDPR,\n [id_InsuranceValue]: InsuranceValue,\n [id_ValuationRanking]: ValuationRanking,\n [id_pkcs9_at_challengePassword]: ChallengePassword,\n [id_pkcs9_at_unstructuredName]: UnstructuredName,\n [id_pkcs9_at_extensionRequest]: ExtensionRequest,\n [id_at_statementOfPossession]: PrivateKeyPossessionStatement,\n};\n\ntype TAttributeKeys = keyof typeof attributesParsers;\n\nexport type TAttributeValue = InstanceType<typeof attributesParsers[TAttributeKeys]> | string;\n\nexport class Attribute<T extends TAttributeValue> extends AsnData<AsnAttribute> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.values[0];\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnAttribute);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n try {\n const target = attributesParsers[this.asn.type];\n\n if (target) {\n this.value = AsnParser.parse<T>(asnExtnValue, target);\n } else {\n console.warn(`Didn't detect parser for \"${this.asn.type}\" attribute.`);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n } catch (error) {\n console.error(`Error parse \"${this.asn.type}\" attribute:`, error.message);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport { Convert } from 'pvtsutils';\nimport { Download } from '../utils';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class Pkcs10CertificateRequest extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'PKCS#10 Certificate Request';\n\n public readonly tag = PemConverter.CertificateRequestTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"],"names":["AsnAttribute","Convert"],"mappings":";;;;;AAAA;;;;;;AAMG;AAiDH,MAAM,iBAAiB,GAAG;IACxB,CAAC,wBAAwB,GAAG,qBAAqB;IACjD,CAAC,gCAAgC,GAAG,6BAA6B;IACjE,CAAC,kBAAkB,GAAG,eAAe;IACrC,CAAC,8BAA8B,GAAG,2BAA2B;IAC7D,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,sBAAsB,GAAG,mBAAmB;IAC7C,CAAC,UAAU,GAAG,OAAO;IACrB,CAAC,iBAAiB,GAAG,cAAc;IACnC,CAAC,mBAAmB,GAAG,gBAAgB;IACvC,CAAC,6BAA6B,GAAG,iBAAiB;IAClD,CAAC,4BAA4B,GAAG,gBAAgB;IAChD,CAAC,4BAA4B,GAAG,gBAAgB;IAChD,CAAC,2BAA2B,GAAG,6BAA6B;CAC7D;AAMK,MAAO,SAAqC,SAAQ,OAAqB,CAAA;IAGrE,eAAe,GAAA;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;;AAG3B,IAAA,WAAA,CAAY,GAAiB,EAAA;AAC3B,QAAA,KAAK,CAAC,GAAG,EAAEA,WAAY,CAAC;AAExB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;AAE3C,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAE/C,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAI,YAAY,EAAE,MAAM,CAAC;;iBAChD;gBACL,OAAO,CAAC,IAAI,CAAC,CAA6B,0BAAA,EAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAc,YAAA,CAAA,CAAC;gBAEtE,IAAI,CAAC,KAAK,GAAGC,oBAAO,CAAC,KAAK,CAAC,YAAY,CAAM;;;QAE/C,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,aAAA,EAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAEzE,IAAI,CAAC,KAAK,GAAGA,oBAAO,CAAC,KAAK,CAAC,YAAY,CAAM;;;AAGlD;;ACvGD;;;;;;AAMG;AA4BG,MAAO,wBAAyB,SAAQ,OAA6B,CAAA;AAazE,IAAA,WAAA,CAAY,GAAW,EAAA;QACrB,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC;AAPnD,QAAA,IAAW,CAAA,WAAA,GAA2B,EAAE;AAE/B,QAAA,IAAI,CAAA,IAAA,GAAG,6BAA6B;AAEpC,QAAA,IAAA,CAAA,GAAG,GAAG,YAAY,CAAC,qBAAqB;AAKtD,QAAA,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,GAAG;AAE7C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAClE,QAAA,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,OAAO;;AAGjD,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,aAAa;AACvF,QAAA,IAAI,MAAM;QAEV,IAAI,SAAS,CAAC,SAAS,KAAK,cAAc,IAAI,SAAS,CAAC,UAAU,EAAE;YAClE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;;AAG/D,QAAA,IAAI,SAAS,CAAC,SAAS,KAAK,gBAAgB,EAAE;YAC5C,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC;;AAG3D,QAAA,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,aAAa,CAAC;QAElF,OAAO;YACL,MAAM;AACN,YAAA,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B;;AAGH,IAAA,IAAW,SAAS,GAAA;QAClB,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,GAAG;QAElD,OAAO;AACL,YAAA,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,kBAAkB,CAAC,SAAS;SACxC;;AAGH,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,EAAE;;AAGX,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5B,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE;gBAC/E,OAAO,IAAI,CAAC,KAAK;;;AAIrB,QAAA,OAAO,EAAE;;AAGJ,IAAA,MAAM,aAAa,CACxB,SAAS,GAAG,OAAO,EAAA;AAEnB,QAAA,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;YAEtE,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAGA,oBAAO,CAAC,KAAK,CAAC,UAAU,CAAC;;;QAEzD,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;;;IAI1C,eAAe,GAAA;AACpB,QAAA,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,GAAG;AAE7C,QAAA,IAAI,wBAAwB,CAAC,UAAU,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC;AACxC,iBAAA,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;;IAIlD,QAAQ,CAAC,SAAyC,KAAK,EAAA;QAC5D,QAAQ,MAAM;AACZ,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAChD,YAAA,KAAK,WAAW;gBACd,OAAOA,oBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,YAAA;gBACE,OAAOA,oBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAIhC,IAAA,aAAa,CAAC,IAAa,EAAA;AAChC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAChB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,IAAI,IAAI,CAAC,UAAU,CACxB;;AAGI,IAAA,aAAa,CAAC,IAAa,EAAA;AAChC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAChB,IAAI,CAAC,GAAG,EACR,IAAI,IAAI,IAAI,CAAC,UAAU,CACxB;;AAEJ;;;;"}
|
|
@@ -5918,6 +5918,7 @@ let Time = class Time {
|
|
|
5918
5918
|
if (time) {
|
|
5919
5919
|
if (typeof time === "string" || typeof time === "number" || time instanceof Date) {
|
|
5920
5920
|
const date = new Date(time);
|
|
5921
|
+
date.setMilliseconds(0);
|
|
5921
5922
|
if (date.getUTCFullYear() > 2049) {
|
|
5922
5923
|
this.generalTime = date;
|
|
5923
5924
|
}
|
|
@@ -7827,13 +7828,34 @@ const OIDs = {
|
|
|
7827
7828
|
'1.2.840.113635.100.5.3': 'Apple ADC Certificate Policy ID',
|
|
7828
7829
|
'1.2.840.113635.100.5.7.1': 'Apple ID Sharing Certificate Policy',
|
|
7829
7830
|
'1.2.840.113635.100.6': 'Apple Certificate Extensions',
|
|
7830
|
-
'1.2.840.113635.100.6.1': 'Apple
|
|
7831
|
-
'1.2.840.113635.100.6.1.1': 'Apple
|
|
7832
|
-
'1.2.840.113635.100.6.1.2': 'Apple
|
|
7833
|
-
'1.2.840.113635.100.6.1.3': 'Apple
|
|
7831
|
+
'1.2.840.113635.100.6.1': 'Apple Extension Code Signing',
|
|
7832
|
+
'1.2.840.113635.100.6.1.1': 'Apple Extension Apple Signing',
|
|
7833
|
+
'1.2.840.113635.100.6.1.2': 'Apple Extension iPhone Developer',
|
|
7834
|
+
'1.2.840.113635.100.6.1.3': 'Apple Extension Apple iPhone OS Application Signing',
|
|
7835
|
+
'1.2.840.113635.100.6.1.4': 'Apple Extension Apple Developer Certificate (Submission)',
|
|
7836
|
+
'1.2.840.113635.100.6.1.5': 'Apple Extension Safari Developer',
|
|
7837
|
+
'1.2.840.113635.100.6.1.6': 'Apple Extension Apple iPhone OS VPN Signing',
|
|
7838
|
+
'1.2.840.113635.100.6.1.7': 'Apple Extension Apple Mac App Signing (Development)',
|
|
7839
|
+
'1.2.840.113635.100.6.1.8': 'Apple Extension Apple Mac App Signing Submission',
|
|
7840
|
+
'1.2.840.113635.100.6.1.9': 'Apple Extension Mac App Store Code Signing',
|
|
7841
|
+
'1.2.840.113635.100.6.1.10': 'Apple Extension Mac App Store Installer Signing',
|
|
7842
|
+
'1.2.840.113635.100.6.1.12': 'Apple Extension Mac Developer',
|
|
7843
|
+
'1.2.840.113635.100.6.1.13': 'Apple Extension Developer ID Application',
|
|
7844
|
+
'1.2.840.113635.100.6.1.14': 'Apple Extension Developer ID Installer',
|
|
7845
|
+
'1.2.840.113635.100.6.1.16': 'Apple Extension Apple Pay Passbook Signing',
|
|
7846
|
+
'1.2.840.113635.100.6.1.17': 'Apple Extension Web Site Push Notifications Signing',
|
|
7847
|
+
'1.2.840.113635.100.6.1.18': 'Apple Extension Developer ID Kernel',
|
|
7848
|
+
'1.2.840.113635.100.6.1.33': 'Apple Extension Developer ID Date',
|
|
7849
|
+
'1.2.840.113635.100.6.1.25.1': 'Apple Extension TestFlight',
|
|
7850
|
+
'1.2.840.113635.100.6.2.1': 'Apple Worldwide Developer Relations',
|
|
7834
7851
|
'1.2.840.113635.100.6.2.3': 'Apple Application Integration',
|
|
7835
|
-
'1.2.840.113635.100.6.
|
|
7836
|
-
'1.2.840.113635.100.6.
|
|
7852
|
+
'1.2.840.113635.100.6.2.6': 'Developer ID Certification Authority',
|
|
7853
|
+
'1.2.840.113635.100.6.2.9': 'Apple Timestamp',
|
|
7854
|
+
'1.2.840.113635.100.6.2.11': 'Developer Authentication Certification Authority',
|
|
7855
|
+
'1.2.840.113635.100.6.2.14': 'Apple Application Integration CA - G3',
|
|
7856
|
+
'1.2.840.113635.100.6.2.15': 'Apple Worldwide Developer Relations CA - G2',
|
|
7857
|
+
'1.2.840.113635.100.6.2.19': 'Apple Software Update Certification',
|
|
7858
|
+
'1.2.840.113635.100.6.2.31': 'Apple Application Integration CA - G1',
|
|
7837
7859
|
'1.2.840.114021.1.6.1': 'Identrus unknown policy Identifier',
|
|
7838
7860
|
'1.2.840.114021.4.1': 'Identrus OCSP',
|
|
7839
7861
|
'1.3.6.1.4.1.188.7.1.1': 'Ascom',
|
|
@@ -9215,7 +9237,7 @@ const OIDs = {
|
|
|
9215
9237
|
* This source code is licensed under the MIT license found in the
|
|
9216
9238
|
* LICENSE file in the root directory of this source tree.
|
|
9217
9239
|
*/
|
|
9218
|
-
var __classPrivateFieldSet$
|
|
9240
|
+
var __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
9219
9241
|
if (kind === "m")
|
|
9220
9242
|
throw new TypeError("Private method is not writable");
|
|
9221
9243
|
if (kind === "a" && !f)
|
|
@@ -9224,7 +9246,7 @@ var __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) |
|
|
|
9224
9246
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
9225
9247
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
9226
9248
|
};
|
|
9227
|
-
var __classPrivateFieldGet$
|
|
9249
|
+
var __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9228
9250
|
if (kind === "a" && !f)
|
|
9229
9251
|
throw new TypeError("Private accessor was defined without a getter");
|
|
9230
9252
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
@@ -9236,15 +9258,15 @@ class Name {
|
|
|
9236
9258
|
constructor(data) {
|
|
9237
9259
|
_Name_asn.set(this, new Name$1());
|
|
9238
9260
|
if (buildExports.BufferSourceConverter.isBufferSource(data)) {
|
|
9239
|
-
__classPrivateFieldSet$
|
|
9261
|
+
__classPrivateFieldSet$3(this, _Name_asn, AsnParser.parse(data, Name$1), "f");
|
|
9240
9262
|
}
|
|
9241
9263
|
else {
|
|
9242
|
-
__classPrivateFieldSet$
|
|
9264
|
+
__classPrivateFieldSet$3(this, _Name_asn, data, "f");
|
|
9243
9265
|
}
|
|
9244
9266
|
}
|
|
9245
9267
|
toJSON() {
|
|
9246
9268
|
const res = [];
|
|
9247
|
-
__classPrivateFieldGet$
|
|
9269
|
+
__classPrivateFieldGet$3(this, _Name_asn, "f").forEach((o) => (o.forEach((a) => {
|
|
9248
9270
|
res.push({
|
|
9249
9271
|
type: a.type,
|
|
9250
9272
|
name: OIDs[a.type],
|
|
@@ -10781,6 +10803,55 @@ __decorate([
|
|
|
10781
10803
|
AsnProp({ type: AsnPropTypes.Utf8String })
|
|
10782
10804
|
], CabforganizationIdentifier.prototype, "registrationReference", void 0);
|
|
10783
10805
|
|
|
10806
|
+
var __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
10807
|
+
if (kind === "m")
|
|
10808
|
+
throw new TypeError("Private method is not writable");
|
|
10809
|
+
if (kind === "a" && !f)
|
|
10810
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
10811
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
10812
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10813
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
10814
|
+
};
|
|
10815
|
+
var __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10816
|
+
if (kind === "a" && !f)
|
|
10817
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
10818
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
10819
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10820
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
10821
|
+
};
|
|
10822
|
+
var _AppleDeveloperIdDate_buffer;
|
|
10823
|
+
/**
|
|
10824
|
+
* Extension OID for Apple Developer ID date extension.
|
|
10825
|
+
*/
|
|
10826
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
10827
|
+
const id_appleDeveloperIdDate = '1.2.840.113635.100.6.1.33';
|
|
10828
|
+
/**
|
|
10829
|
+
* Implements ASN.1 schema for Apple Developer ID date extension.
|
|
10830
|
+
*
|
|
10831
|
+
* ```asn
|
|
10832
|
+
* AppleDeveloperIdDate ::= UTF8String
|
|
10833
|
+
* ```
|
|
10834
|
+
*/
|
|
10835
|
+
class AppleDeveloperIdDate {
|
|
10836
|
+
constructor() {
|
|
10837
|
+
_AppleDeveloperIdDate_buffer.set(this, void 0);
|
|
10838
|
+
}
|
|
10839
|
+
fromASN(asn) {
|
|
10840
|
+
__classPrivateFieldSet$2(this, _AppleDeveloperIdDate_buffer, asn.valueBlock.valueHex, "f");
|
|
10841
|
+
this.date = new GeneralizedTime({ value: asn.valueBlock.value })
|
|
10842
|
+
.toDate()
|
|
10843
|
+
.toISOString();
|
|
10844
|
+
return this;
|
|
10845
|
+
}
|
|
10846
|
+
toASN() {
|
|
10847
|
+
return new Utf8String({ valueHex: __classPrivateFieldGet$2(this, _AppleDeveloperIdDate_buffer, "f") });
|
|
10848
|
+
}
|
|
10849
|
+
toSchema(name) {
|
|
10850
|
+
return new Utf8String({ name });
|
|
10851
|
+
}
|
|
10852
|
+
}
|
|
10853
|
+
_AppleDeveloperIdDate_buffer = new WeakMap();
|
|
10854
|
+
|
|
10784
10855
|
/**
|
|
10785
10856
|
* @license
|
|
10786
10857
|
* Copyright (c) Peculiar Ventures, LLC.
|
|
@@ -14354,7 +14425,7 @@ class SshCertificate {
|
|
|
14354
14425
|
}
|
|
14355
14426
|
_SshCertificate_cert = new WeakMap();
|
|
14356
14427
|
|
|
14357
|
-
export {
|
|
14358
|
-
//# sourceMappingURL=ssh_certificate-
|
|
14428
|
+
export { OctetString as $, AsnData as A, id_pkcs9_at_extensionRequest as B, Certificate as C, Download as D, ECParameters as E, id_pkcs9_at_unstructuredName as F, id_pkcs9_at_challengePassword as G, id_ValuationRanking as H, InsuranceValue as I, id_InsuranceValue as J, id_WebGDPR as K, id_ActivityDescription as L, id_TypeRelationship as M, Name as N, id_DomainNameTechnicalOperator as O, PemConverter as P, id_DomainNameOwner as Q, RSAPublicKey as R, id_DomainNameLegalRepresentative as S, TypeRelationship as T, UnstructuredName as U, ValuationRanking as V, WebGDPR as W, id_DomainNameBeneficiary as X, CertificationRequest as Y, SignedData as Z, EncapsulatedContent as _, dateDiff as a, id_lei as a$, CertificateSet as a0, CertificateChoices as a1, ContentInfo as a2, SshCertificate as a3, l10n as a4, dateShort as a5, OIDs as a6, ByteStream as a7, SignedCertificateTimestamp as a8, Extension$1 as a9, NameConstraints as aA, KeyUsage as aB, IssueAlternativeName as aC, InvalidityDate as aD, InhibitAnyPolicy as aE, ExtendedKeyUsage as aF, CRLReason as aG, IssuingDistributionPoint as aH, CRLDistributionPoints as aI, CertificatePolicies as aJ, CertificateIssuer as aK, BasicConstraints as aL, AuthorityKeyIdentifier as aM, AuthorityInfoAccessSyntax as aN, id_appleDeveloperIdDate as aO, id_cabforganizationIdentifier as aP, id_ce_keyDescription as aQ, id_ce_deltaCRLIndicator as aR, id_ce_cRLNumber as aS, id_pe_subjectInfoAccess as aT, id_pe_TNAuthList as aU, id_pe_biometricInfo as aV, id_entrust_entrustVersInfo as aW, id_ce_privateKeyUsagePeriod as aX, id_adbe_archiveRevInfo as aY, id_adbe_timestamp as aZ, id_role as a_, AppleDeveloperIdDate as aa, CabforganizationIdentifier as ab, NonStandardKeyDescription as ac, BaseCRLNumber as ad, CRLNumber as ae, SubjectInfoAccessSyntax as af, TNAuthorizationList as ag, LogotypeExtn as ah, BiometricSyntax as ai, EntrustVersionInfo as aj, PrivateKeyUsagePeriod as ak, ArchiveRevInfo as al, Timestamp as am, LeiRole as an, LeiChoice as ao, CaVersion as ap, NetscapeCertType as aq, NetscapeComment as ar, EnrollCertTypeChoice as as, CertificateTemplate as at, QCStatements as au, SubjectKeyIdentifier as av, SubjectDirectoryAttributes as aw, SubjectAlternativeName as ax, PolicyMappings as ay, PolicyConstraints as az, buildExports as b, id_caVersion as b0, id_netscapeCertType as b1, id_netscapeComment as b2, id_enrollCertType as b3, id_certificateTemplate as b4, id_pe_qcStatements as b5, id_ce_subjectKeyIdentifier as b6, id_ce_subjectDirectoryAttributes as b7, id_ce_subjectAltName as b8, id_ce_policyMappings as b9, id_qcs_pkixQCSyntax_v2 as bA, SemanticsInformation as bB, AsnIntegerArrayBufferConverter as bC, AttestationApplicationId as bD, RootOfTrust as bE, IntegerSet as bF, id_ce_policyConstraints as ba, id_ce_nameConstraints as bb, id_ce_keyUsage as bc, id_ce_issuerAltName as bd, id_ce_invalidityDate as be, id_ce_inhibitAnyPolicy as bf, id_ce_extKeyUsage as bg, id_ce_cRLReasons as bh, id_ce_issuingDistributionPoint as bi, id_ce_cRLDistributionPoints as bj, id_ce_certificatePolicies as bk, id_ce_certificateIssuer as bl, id_ce_basicConstraints as bm, id_ce_authorityKeyIdentifier as bn, id_pe_authorityInfoAccess as bo, Name$1 as bp, OtherName as bq, DisplayText as br, UserNotice as bs, EDIPartyName as bt, __decorate$1 as bu, AsnProp as bv, AsnPropTypes as bw, AsnType as bx, AsnTypeTypes as by, AsnArray as bz, certificateRawToBuffer as c, downloadFromBuffer as d, AsnConvert as e, id_rsaEncryption as f, id_composite_key as g, CompositePublicKey as h, id_ecPublicKey as i, id_alg_composite as j, CompositeSignatureValue as k, CompositeParams as l, getCertificateThumbprint as m, AttributeCertificate as n, CertificateList as o, Attribute$1 as p, AsnParser as q, PrivateKeyPossessionStatement as r, ExtensionRequest as s, ChallengePassword as t, ActivityDescription as u, DomainNameTechnicalOperator as v, DomainNameOwner as w, DomainNameLegalRepresentative as x, DomainNameBeneficiary as y, id_at_statementOfPossession as z };
|
|
14429
|
+
//# sourceMappingURL=ssh_certificate-Del2D5s9.js.map
|
|
14359
14430
|
|
|
14360
|
-
//# sourceMappingURL=ssh_certificate-
|
|
14431
|
+
//# sourceMappingURL=ssh_certificate-Del2D5s9.js.map
|