@peculiar/certificates-viewer 4.4.0 → 4.6.0
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/actions.js.map +1 -1
- package/components/arrow_top.js.map +1 -1
- package/components/attribute-certificate-viewer.js +2 -4
- package/components/attribute-certificate-viewer.js.map +1 -1
- package/components/attribute.js.map +1 -1
- package/components/button-menu.js +1 -3
- package/components/button-menu.js.map +1 -1
- package/components/button.js +2 -2
- package/components/button.js.map +1 -1
- package/components/certificate-chain-viewer.js +0 -1
- package/components/certificate-chain-viewer.js.map +1 -1
- package/components/certificate-viewer.js +3 -8
- package/components/certificate-viewer.js.map +1 -1
- package/components/circular-progress.js +2 -6
- package/components/circular-progress.js.map +1 -1
- package/components/crl-viewer.js +0 -2
- package/components/crl-viewer.js.map +1 -1
- package/components/cross.js.map +1 -1
- package/components/csr-viewer.js +0 -4
- package/components/csr-viewer.js.map +1 -1
- package/components/download.js +49 -23
- package/components/download.js.map +1 -1
- package/components/highlight-words.js +1 -1
- package/components/highlight-words.js.map +1 -1
- package/components/index2.js +2 -1
- package/components/index2.js.map +1 -1
- package/components/issuer_name.js +3 -1
- package/components/issuer_name.js.map +1 -1
- package/components/miscellaneous.js +15 -16
- package/components/miscellaneous.js.map +1 -1
- package/components/peculiar-certificate-decoder.js +7 -8
- package/components/peculiar-certificate-decoder.js.map +1 -1
- package/components/peculiar-certificates-viewer.js +44 -43
- package/components/peculiar-certificates-viewer.js.map +1 -1
- package/components/peculiar-text-hider.js +1 -1
- package/components/peculiar-text-hider.js.map +1 -1
- package/components/pkcs10_certificate_request.js.map +1 -1
- package/components/read_file.js.map +1 -1
- package/components/subject_name.js.map +1 -1
- package/dist/cjs/actions-Dl4HXXlI.js.map +1 -1
- package/dist/cjs/arrow_top-DBMPHVlB.js.map +1 -1
- package/dist/cjs/{button-C5jDF-CZ.js → button-B0CduHSE.js} +4 -4
- package/dist/cjs/button-B0CduHSE.js.map +1 -0
- package/dist/cjs/{certification_request-Bipg1Az7.js → certification_request-DaJSDP3R.js} +50 -24
- package/dist/cjs/certification_request-DaJSDP3R.js.map +1 -0
- package/dist/cjs/cross-pi7K0cHC.js.map +1 -1
- package/dist/cjs/download-D9skkVoT.js.map +1 -1
- package/dist/cjs/index.cjs.js +4 -4
- package/dist/cjs/{link-CwLq-Nge.js → link-kgbgxxVh.js} +4 -4
- package/dist/cjs/link-kgbgxxVh.js.map +1 -0
- package/dist/cjs/{miscellaneous-C0sOAo-1.js → miscellaneous-Ce9aGjKB.js} +23 -22
- package/dist/cjs/miscellaneous-Ce9aGjKB.js.map +1 -0
- package/dist/cjs/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js +8 -16
- package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +5 -11
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +12 -13
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-decoder.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +5 -7
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +47 -46
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificates-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/peculiar-text-hider.cjs.entry.js +2 -2
- package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-text-hider.entry.cjs.js.map +1 -1
- package/dist/cjs/{pkcs10_certificate_request-BDz0P_px.js → pkcs10_certificate_request-D13Ssi7Z.js} +3 -3
- package/dist/cjs/pkcs10_certificate_request-D13Ssi7Z.js.map +1 -0
- package/dist/cjs/read_file-DWtcn3zU.js.map +1 -1
- package/dist/cjs/{x509_certificate-DRvXOszL.js → x509_certificate-h5GZArG6.js} +6 -9
- package/dist/cjs/x509_certificate-h5GZArG6.js.map +1 -0
- package/dist/cjs/{x509_crl-DVGVym_S.js → x509_crl-CDPt6P1z.js} +6 -6
- package/dist/cjs/x509_crl-CDPt6P1z.js.map +1 -0
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +4 -6
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -1
- package/dist/collection/components/button/button.js +3 -3
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/button/index.js.map +1 -1
- package/dist/collection/components/button-menu/button-menu.js +5 -7
- package/dist/collection/components/button-menu/button-menu.js.map +1 -1
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js +1 -2
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js.map +1 -1
- package/dist/collection/components/certificate-decoder/certificate-decoder.js +4 -1
- package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/index.js +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/name_part.js +1 -0
- package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +3 -3
- package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/index.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +0 -1
- package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/holder.js +1 -1
- package/dist/collection/components/certificate-details-parts/holder.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/issuer_name.js +3 -1
- package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/miscellaneous.js +2 -2
- package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/public_key.js +1 -1
- package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/revoked_certificates.js +3 -3
- package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/row.js +3 -3
- package/dist/collection/components/certificate-details-parts/row.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/signature.js +1 -1
- package/dist/collection/components/certificate-details-parts/signature.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -1
- package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -1
- package/dist/collection/components/certificate-viewer/certificate-viewer.js +5 -7
- package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -1
- package/dist/collection/components/certificates-viewer/certificates-viewer.js +44 -43
- package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -1
- package/dist/collection/components/circular-progress/circular-progress.js +2 -6
- package/dist/collection/components/circular-progress/circular-progress.js.map +1 -1
- package/dist/collection/components/crl-viewer/crl-viewer.js +4 -6
- package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -1
- package/dist/collection/components/csr-viewer/csr-viewer.js +4 -8
- package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -1
- package/dist/collection/components/highlight-words/highlight-words.js +1 -1
- package/dist/collection/components/highlight-words/highlight-words.js.map +1 -1
- package/dist/collection/components/icons/actions.js.map +1 -1
- package/dist/collection/components/icons/arrow_bottom.js.map +1 -1
- package/dist/collection/components/icons/arrow_top.js.map +1 -1
- package/dist/collection/components/icons/cross.js.map +1 -1
- package/dist/collection/components/icons/details.js.map +1 -1
- package/dist/collection/components/icons/download.js.map +1 -1
- package/dist/collection/components/icons/link.js.map +1 -1
- package/dist/collection/components/link/link.js +1 -1
- package/dist/collection/components/link/link.js.map +1 -1
- package/dist/collection/components/text-hider/text-hider.js +1 -1
- package/dist/collection/components/text-hider/text-hider.js.map +1 -1
- package/dist/collection/components/typography/typography.js.map +1 -1
- package/dist/collection/constants/oids.js +21 -3
- package/dist/collection/constants/oids.js.map +1 -1
- package/dist/collection/crypto/asn_data.js +1 -1
- package/dist/collection/crypto/asn_data.js.map +1 -1
- package/dist/collection/crypto/attribute.js.map +1 -1
- package/dist/collection/crypto/extension.js.map +1 -1
- package/dist/collection/crypto/name.js.map +1 -1
- package/dist/collection/crypto/pem_converter.js +13 -8
- package/dist/collection/crypto/pem_converter.js.map +1 -1
- package/dist/collection/crypto/pkcs10_certificate_request.js.map +1 -1
- package/dist/collection/crypto/provider.js +7 -3
- package/dist/collection/crypto/provider.js.map +1 -1
- package/dist/collection/crypto/utils.js +1 -1
- package/dist/collection/crypto/utils.js.map +1 -1
- package/dist/collection/crypto/x509_attribute_certificate.js +2 -2
- package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -1
- package/dist/collection/crypto/x509_certificate.js +3 -6
- package/dist/collection/crypto/x509_certificate.js.map +1 -1
- package/dist/collection/crypto/x509_certificates.js +3 -7
- package/dist/collection/crypto/x509_certificates.js.map +1 -1
- package/dist/collection/crypto/x509_crl.js.map +1 -1
- package/dist/collection/utils/download.js +1 -0
- package/dist/collection/utils/download.js.map +1 -1
- package/dist/collection/utils/download_from_buffer.js +3 -3
- package/dist/collection/utils/download_from_buffer.js.map +1 -1
- package/dist/collection/utils/l10n.js +1 -3
- package/dist/collection/utils/l10n.js.map +1 -1
- package/dist/collection/utils/read_file.js.map +1 -1
- package/dist/esm/actions-DzoPRObK.js.map +1 -1
- package/dist/esm/arrow_top-CF9pv-tQ.js.map +1 -1
- package/dist/esm/{button-Djn8UI82.js → button-Do0R_8PZ.js} +4 -4
- package/dist/esm/button-Do0R_8PZ.js.map +1 -0
- package/dist/esm/{certification_request-BTbyumBe.js → certification_request-DazysL_f.js} +50 -24
- package/dist/esm/certification_request-DazysL_f.js.map +1 -0
- package/dist/esm/cross-DdCuR1F2.js.map +1 -1
- package/dist/esm/download-Cqfc-Sxf.js.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/{link-BfDk078v.js → link-qg3yKAoS.js} +4 -4
- package/dist/esm/link-qg3yKAoS.js.map +1 -0
- package/dist/esm/{miscellaneous-CGtCg3Q9.js → miscellaneous-BJPX0Hs_.js} +23 -22
- package/dist/esm/miscellaneous-BJPX0Hs_.js.map +1 -0
- package/dist/esm/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js +8 -16
- package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
- package/dist/esm/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
- package/dist/esm/peculiar-button-menu_3.entry.js +5 -11
- package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-decoder.entry.js +12 -13
- package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-viewer.entry.js +5 -7
- package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-certificates-viewer.entry.js +47 -46
- package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-text-hider.entry.js +2 -2
- package/dist/esm/peculiar-text-hider.entry.js.map +1 -1
- package/dist/esm/{pkcs10_certificate_request-CrA_WcgY.js → pkcs10_certificate_request-SQcYKma2.js} +3 -3
- package/dist/esm/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
- package/dist/esm/read_file-F2F0McJX.js.map +1 -1
- package/dist/esm/{x509_certificate-DX7sKoAD.js → x509_certificate-Dmgw53TR.js} +6 -9
- package/dist/esm/x509_certificate-Dmgw53TR.js.map +1 -0
- package/dist/esm/{x509_crl-DRjoh8Yp.js → x509_crl-B5TRu79b.js} +6 -6
- package/dist/esm/x509_crl-B5TRu79b.js.map +1 -0
- package/dist/esm-es5/actions-DzoPRObK.js.map +1 -1
- package/dist/esm-es5/arrow_top-CF9pv-tQ.js.map +1 -1
- package/dist/esm-es5/{button-Djn8UI82.js → button-Do0R_8PZ.js} +2 -2
- package/dist/esm-es5/button-Do0R_8PZ.js.map +1 -0
- package/dist/esm-es5/{certification_request-BTbyumBe.js → certification_request-DazysL_f.js} +15 -15
- package/dist/esm-es5/certification_request-DazysL_f.js.map +1 -0
- package/dist/esm-es5/cross-DdCuR1F2.js.map +1 -1
- package/dist/esm-es5/download-Cqfc-Sxf.js.map +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{link-BfDk078v.js → link-qg3yKAoS.js} +3 -3
- package/dist/esm-es5/link-qg3yKAoS.js.map +1 -0
- package/dist/esm-es5/{miscellaneous-CGtCg3Q9.js → miscellaneous-BJPX0Hs_.js} +3 -3
- package/dist/esm-es5/miscellaneous-BJPX0Hs_.js.map +1 -0
- package/dist/esm-es5/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js +1 -1
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-button-menu_3.entry.js +1 -1
- package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js +1 -1
- 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 +2 -2
- package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-text-hider.entry.js +1 -1
- package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -1
- package/dist/esm-es5/{pkcs10_certificate_request-CrA_WcgY.js → pkcs10_certificate_request-SQcYKma2.js} +2 -2
- package/dist/esm-es5/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
- package/dist/esm-es5/read_file-F2F0McJX.js.map +1 -1
- package/dist/esm-es5/{x509_certificate-DX7sKoAD.js → x509_certificate-Dmgw53TR.js} +3 -3
- package/dist/esm-es5/x509_certificate-Dmgw53TR.js.map +1 -0
- package/dist/esm-es5/{x509_crl-DRjoh8Yp.js → x509_crl-B5TRu79b.js} +4 -4
- package/dist/esm-es5/x509_crl-B5TRu79b.js.map +1 -0
- package/dist/peculiar/index.esm.js +1 -1
- package/dist/peculiar/p--Pej0I-A.system.js.map +1 -0
- package/dist/peculiar/{p-CpTwQbPC.js → p-0HZUc9Ix.js} +3 -3
- package/dist/peculiar/p-0HZUc9Ix.js.map +1 -0
- package/dist/peculiar/p-15c2b820.entry.js +5 -0
- package/dist/peculiar/{p-f4490197.entry.js.map → p-15c2b820.entry.js.map} +1 -1
- package/dist/peculiar/{p-ab220e36.system.entry.js → p-16aa5600.system.entry.js} +2 -2
- package/dist/peculiar/p-16aa5600.system.entry.js.map +1 -0
- package/dist/peculiar/{p-e7266b0a.entry.js → p-1cbb0d6b.entry.js} +15 -15
- package/dist/peculiar/p-1cbb0d6b.entry.js.map +1 -0
- package/dist/peculiar/{p-85667993.entry.js → p-218364f2.entry.js} +2 -2
- package/dist/peculiar/p-218364f2.entry.js.map +1 -0
- package/dist/peculiar/{p-Bw_icgVx.js → p-3zhoLQno.js} +4 -4
- package/dist/peculiar/p-3zhoLQno.js.map +1 -0
- package/dist/peculiar/{p-73a75d1e.system.entry.js → p-44648a8e.system.entry.js} +3 -3
- package/dist/peculiar/p-44648a8e.system.entry.js.map +1 -0
- package/dist/peculiar/{p-092074e8.system.entry.js → p-52444a44.system.entry.js} +2 -2
- package/dist/peculiar/p-52444a44.system.entry.js.map +1 -0
- package/dist/peculiar/{p-c2a805b3.entry.js → p-5b843427.entry.js} +3 -3
- package/dist/peculiar/p-5b843427.entry.js.map +1 -0
- package/dist/peculiar/{p-12d2e080.entry.js → p-7b0e7f43.entry.js} +2 -2
- package/dist/peculiar/p-7b0e7f43.entry.js.map +1 -0
- package/dist/peculiar/p-B2YrZuK2.system.js.map +1 -1
- package/dist/peculiar/p-BA8os2l6.system.js.map +1 -0
- package/dist/peculiar/p-BAB4EyrL.system.js.map +1 -0
- package/dist/peculiar/{p-B7TxZGea.system.js → p-BBZwtkNN.system.js} +4 -4
- package/dist/peculiar/p-BBZwtkNN.system.js.map +1 -0
- package/dist/peculiar/p-BBgwMHRZ.system.js.map +1 -1
- package/dist/peculiar/p-BHBizfwo.js.map +1 -1
- package/dist/peculiar/{p-lnQq6VON.system.js → p-BKKflyKt.system.js} +5 -5
- package/dist/peculiar/p-BKKflyKt.system.js.map +1 -0
- package/dist/peculiar/p-BOSH9vjy.system.js.map +1 -1
- package/dist/peculiar/p-BP2bmYR2.system.js.map +1 -1
- package/dist/peculiar/p-BcFnjn1R.system.js.map +1 -0
- package/dist/peculiar/{p-vMACJe_C.system.js → p-BmIps4bV.system.js} +22 -22
- package/dist/peculiar/p-BmIps4bV.system.js.map +1 -0
- package/dist/peculiar/{p-B0CjUC4o.system.js → p-CDh6shXP.system.js} +9 -9
- package/dist/peculiar/p-CDh6shXP.system.js.map +1 -0
- package/dist/peculiar/{p-BisXzAqN.js → p-CEHpBNWe.js} +3 -3
- package/dist/peculiar/p-CEHpBNWe.js.map +1 -0
- package/dist/peculiar/{p-Ct0zEUB_.js → p-CJro0Exb.js} +12 -12
- package/dist/peculiar/p-CJro0Exb.js.map +1 -0
- package/dist/peculiar/p-CWs-Ocvt.system.js.map +1 -0
- package/dist/peculiar/p-CeKqQ13Z.js.map +1 -1
- package/dist/peculiar/{p-BCATfe_H.js → p-CkwiD_ia.js} +2 -2
- package/dist/peculiar/p-CkwiD_ia.js.map +1 -0
- package/dist/peculiar/{p-BRhx1gbw.system.js → p-Cm-ylIxb.system.js} +2 -2
- package/dist/peculiar/p-Cm-ylIxb.system.js.map +1 -0
- package/dist/peculiar/p-D2QB-8Q6.system.js.map +1 -1
- package/dist/peculiar/p-D5BWI7FK.system.js +1 -1
- package/dist/peculiar/p-DJRm54BZ.system.js.map +1 -0
- package/dist/peculiar/{p-DxdVL_Kj.system.js → p-DRoyzOgk.system.js} +3 -3
- package/dist/peculiar/p-DRoyzOgk.system.js.map +1 -0
- package/dist/peculiar/{p-BTbyumBe.js → p-DazysL_f.js} +9 -9
- package/dist/peculiar/p-DazysL_f.js.map +1 -0
- package/dist/peculiar/p-DhdG07f8.js.map +1 -1
- package/dist/peculiar/p-DkAhB3Vy.js.map +1 -1
- package/dist/peculiar/{p-4IvcYmU7.js → p-DzItK48Y.js} +4 -4
- package/dist/peculiar/p-DzItK48Y.js.map +1 -0
- package/dist/peculiar/p-F2F0McJX.js.map +1 -1
- package/dist/peculiar/{p-wgYkE8CV.system.js → p-YHrZ3f_s.system.js} +2 -2
- package/dist/peculiar/p-YHrZ3f_s.system.js.map +1 -0
- package/dist/peculiar/p-a3c0f753.system.entry.js +5 -0
- package/dist/peculiar/{p-cae95996.system.entry.js.map → p-a3c0f753.system.entry.js.map} +1 -1
- package/dist/peculiar/{p-80fc5538.entry.js → p-ab6a8a44.entry.js} +2 -2
- package/dist/peculiar/p-ab6a8a44.entry.js.map +1 -0
- package/dist/peculiar/{p-1af57833.system.entry.js → p-d16ddef8.system.entry.js} +2 -2
- package/dist/peculiar/p-d16ddef8.system.entry.js.map +1 -0
- package/dist/peculiar/{p-1b3855ec.system.entry.js → p-d9013293.system.entry.js} +16 -16
- package/dist/peculiar/p-d9013293.system.entry.js.map +1 -0
- package/dist/peculiar/{p-B859JpGw.system.js → p-wYK0iVYg.system.js} +2 -2
- package/dist/peculiar/p-wYK0iVYg.system.js.map +1 -0
- package/dist/peculiar/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.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-certificates-viewer.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar-text-hider.entry.esm.js.map +1 -1
- package/dist/peculiar/peculiar.esm.js +1 -1
- package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +3 -3
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button/index.d.ts +1 -1
- package/dist/types/components/button-menu/button-menu.d.ts +5 -5
- package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +2 -2
- package/dist/types/components/certificate-summary/certificate-summary.d.ts +2 -2
- package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +3 -3
- package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +3 -2
- package/dist/types/components/crl-viewer/crl-viewer.d.ts +3 -3
- package/dist/types/components/csr-viewer/csr-viewer.d.ts +3 -3
- package/dist/types/components/icons/actions.d.ts +2 -2
- package/dist/types/components/icons/arrow_bottom.d.ts +2 -2
- package/dist/types/components/icons/arrow_top.d.ts +2 -2
- package/dist/types/components/icons/cross.d.ts +2 -2
- package/dist/types/components/icons/details.d.ts +2 -2
- package/dist/types/components/icons/download.d.ts +2 -2
- package/dist/types/components/icons/link.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +4 -4
- package/dist/types/components/typography/typography.d.ts +5 -5
- package/dist/types/components.d.ts +20 -20
- package/dist/types/constants/oids.d.ts +20 -3
- package/dist/types/crypto/asn_data.d.ts +1 -3
- package/dist/types/crypto/pem_converter.d.ts +7 -19
- package/dist/types/crypto/provider.d.ts +1 -6
- package/dist/types/interface.d.ts +3 -3
- package/dist/types/utils/l10n.d.ts +6 -6
- package/dist/types/utils/read_file.d.ts +7 -7
- package/hydrate/index.js +132 -124
- package/hydrate/index.mjs +132 -124
- package/package.json +2 -2
- package/dist/cjs/button-C5jDF-CZ.js.map +0 -1
- package/dist/cjs/certification_request-Bipg1Az7.js.map +0 -1
- package/dist/cjs/link-CwLq-Nge.js.map +0 -1
- package/dist/cjs/miscellaneous-C0sOAo-1.js.map +0 -1
- package/dist/cjs/pkcs10_certificate_request-BDz0P_px.js.map +0 -1
- package/dist/cjs/x509_certificate-DRvXOszL.js.map +0 -1
- package/dist/cjs/x509_crl-DVGVym_S.js.map +0 -1
- package/dist/esm/button-Djn8UI82.js.map +0 -1
- package/dist/esm/certification_request-BTbyumBe.js.map +0 -1
- package/dist/esm/link-BfDk078v.js.map +0 -1
- package/dist/esm/miscellaneous-CGtCg3Q9.js.map +0 -1
- package/dist/esm/pkcs10_certificate_request-CrA_WcgY.js.map +0 -1
- package/dist/esm/x509_certificate-DX7sKoAD.js.map +0 -1
- package/dist/esm/x509_crl-DRjoh8Yp.js.map +0 -1
- package/dist/esm-es5/button-Djn8UI82.js.map +0 -1
- package/dist/esm-es5/certification_request-BTbyumBe.js.map +0 -1
- package/dist/esm-es5/link-BfDk078v.js.map +0 -1
- package/dist/esm-es5/miscellaneous-CGtCg3Q9.js.map +0 -1
- package/dist/esm-es5/pkcs10_certificate_request-CrA_WcgY.js.map +0 -1
- package/dist/esm-es5/x509_certificate-DX7sKoAD.js.map +0 -1
- package/dist/esm-es5/x509_crl-DRjoh8Yp.js.map +0 -1
- package/dist/peculiar/p-092074e8.system.entry.js.map +0 -1
- package/dist/peculiar/p-12d2e080.entry.js.map +0 -1
- package/dist/peculiar/p-1af57833.system.entry.js.map +0 -1
- package/dist/peculiar/p-1b3855ec.system.entry.js.map +0 -1
- package/dist/peculiar/p-4IvcYmU7.js.map +0 -1
- package/dist/peculiar/p-73a75d1e.system.entry.js.map +0 -1
- package/dist/peculiar/p-7Nmqck4T.system.js.map +0 -1
- package/dist/peculiar/p-80fc5538.entry.js.map +0 -1
- package/dist/peculiar/p-85667993.entry.js.map +0 -1
- package/dist/peculiar/p-B0CjUC4o.system.js.map +0 -1
- package/dist/peculiar/p-B7TxZGea.system.js.map +0 -1
- package/dist/peculiar/p-B859JpGw.system.js.map +0 -1
- package/dist/peculiar/p-BCATfe_H.js.map +0 -1
- package/dist/peculiar/p-BRhx1gbw.system.js.map +0 -1
- package/dist/peculiar/p-BTbyumBe.js.map +0 -1
- package/dist/peculiar/p-BX9qW3ww.system.js.map +0 -1
- package/dist/peculiar/p-BbPo3hge.system.js.map +0 -1
- package/dist/peculiar/p-BisXzAqN.js.map +0 -1
- package/dist/peculiar/p-Bw_icgVx.js.map +0 -1
- package/dist/peculiar/p-C_7Koml8.system.js.map +0 -1
- package/dist/peculiar/p-CpTwQbPC.js.map +0 -1
- package/dist/peculiar/p-Ct0zEUB_.js.map +0 -1
- package/dist/peculiar/p-DxdVL_Kj.system.js.map +0 -1
- package/dist/peculiar/p-FVz6FuoZ.system.js.map +0 -1
- package/dist/peculiar/p-RW7UbzcZ.system.js.map +0 -1
- package/dist/peculiar/p-ab220e36.system.entry.js.map +0 -1
- package/dist/peculiar/p-c2a805b3.entry.js.map +0 -1
- package/dist/peculiar/p-cae95996.system.entry.js +0 -5
- package/dist/peculiar/p-e7266b0a.entry.js.map +0 -1
- package/dist/peculiar/p-f4490197.entry.js +0 -5
- package/dist/peculiar/p-lnQq6VON.system.js.map +0 -1
- package/dist/peculiar/p-vMACJe_C.system.js.map +0 -1
- package/dist/peculiar/p-wgYkE8CV.system.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"p-Ct0zEUB_.js","sources":["src/utils/get_string_by_oid.ts","src/utils/camel_case_to_words.ts","src/utils/third_party_links.ts","src/utils/is_link.ts","src/components/certificate-details-parts/row.tsx","src/components/certificate-details-parts/basic_information.tsx","src/components/certificate-details-parts/public_key.tsx","src/components/certificate-details-parts/subject_name.tsx","src/components/certificate-details-parts/issuer_name.tsx","src/components/certificate-details-parts/signature.tsx","src/components/certificate-details-parts/thumbprints.tsx","src/components/certificate-details-parts/extensions/basic_extension.tsx","src/components/certificate-details-parts/extensions/key_usage_extension.tsx","src/components/certificate-details-parts/extensions/basic_constraints_extension.tsx","src/components/certificate-details-parts/extensions/extended_key_usage_extension.tsx","src/components/certificate-details-parts/extensions/subject_key_identifier_extension.tsx","src/components/certificate-details-parts/extensions/authority_key_identifier_extension.tsx","src/components/certificate-details-parts/extensions/general_name_part.tsx","src/components/certificate-details-parts/extensions/crl_distribution_points_extension.tsx","src/components/certificate-details-parts/extensions/info_access_syntax_extension.tsx","src/components/certificate-details-parts/extensions/subject_alternative_name_extension.tsx","src/components/certificate-details-parts/extensions/certificate_policies_extension.tsx","src/constants/logs.ts","src/components/certificate-details-parts/extensions/certificate_transparency_extension.tsx","src/components/certificate-details-parts/extensions/name_constraints_extension.tsx","src/components/certificate-details-parts/extensions/certificate_template_extension.tsx","src/components/certificate-details-parts/extensions/enroll_cert_type_extension.tsx","src/components/certificate-details-parts/extensions/ca_version_extension.tsx","../../node_modules/@peculiar/asn1-x509-qualified-etsi/build/es2015/index.js","src/components/certificate-details-parts/extensions/qc_statements_extension.tsx","src/components/certificate-details-parts/extensions/netscape_comment_extension.tsx","src/components/certificate-details-parts/extensions/netscape_cert_type_extension.tsx","src/components/certificate-details-parts/extensions/lei_role_extennsion.tsx","src/components/certificate-details-parts/extensions/lei_extension.tsx","src/components/certificate-details-parts/extensions/timestamp_extension.tsx","src/components/certificate-details-parts/extensions/archive_rev_info_extension.tsx","src/components/certificate-details-parts/extensions/crl_reason_extension.tsx","src/components/certificate-details-parts/extensions/attribute_value.ts","src/components/certificate-details-parts/extensions/subject_directory_attributes_extension.tsx","src/components/certificate-details-parts/extensions/as_string_extension.tsx","src/components/certificate-details-parts/extensions/private_key_usage_period_extension.tsx","src/components/certificate-details-parts/extensions/entrust_version_info_extension.tsx","src/components/certificate-details-parts/extensions/biometric_syntax_extension.tsx","src/components/certificate-details-parts/extensions/logotype_extension.tsx","src/components/certificate-details-parts/extensions/tn_auth_list_extension.tsx","src/components/certificate-details-parts/extensions/policy_constraints_extension.tsx","src/components/certificate-details-parts/extensions/policy_mappings_extension.tsx","src/components/certificate-details-parts/extensions/crl_number_extension.tsx","src/components/certificate-details-parts/extensions/issuing_distribution_point_extension.tsx","src/components/certificate-details-parts/extensions/key_description_extension.tsx","src/components/certificate-details-parts/extensions/cabforganization_identifier_extension.tsx","src/components/certificate-details-parts/extensions/index.tsx","src/components/certificate-details-parts/miscellaneous.tsx"],"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 { OIDs } from '../constants/oids';\n\nexport function getStringByOID(value: string) {\n const oid = OIDs[value];\n\n if (oid) {\n return `${oid} (${value})`;\n }\n\n return value;\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\nexport function camelCaseToWords(value: string) {\n const result = value.replace(/([A-Z])/g, ' $1');\n\n return result.charAt(0).toUpperCase() + result.slice(1);\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\nexport const getLEILink = (lei: string) => `https://search.gleif.org/#/record/${lei}`;\n\nexport const getDNSNameLink = (dnsName: string) => `https://search.censys.io/search?resource=hosts&q=dns.names%3A${dnsName}`;\n\nexport const getIPAddressLink = (ipAddress: string) => `https://search.censys.io/search?resource=hosts&q=ip%3A${ipAddress}`;\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\nexport default function isLink(value: string): boolean {\n return value.indexOf('http') === 0;\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 { h, FunctionalComponent } from '@stencil/core';\nimport isLink from '../../utils/is_link';\nimport { Typography } from '../typography';\nimport { Link } from '../link';\n\nexport const TableRowTable: FunctionalComponent = (_, children) => (\n <tr>\n <td colSpan={2}>\n <table>\n {children}\n </table>\n </td>\n </tr>\n);\n\ninterface IRowTitleProps {\n value: string | string[];\n}\n\nexport const RowTitle: FunctionalComponent<IRowTitleProps> = (props) => {\n const { value } = props;\n\n if (!value) {\n return null;\n }\n\n return [\n <tr class=\"title\">\n <td colSpan={2}>\n <Typography\n variant=\"s1\"\n color=\"black\"\n >\n {value}\n </Typography>\n </td>\n </tr>,\n <tr>\n <td colSpan={2} class=\"divider\">\n <span />\n </td>\n </tr>,\n ];\n};\n\ninterface IRowValueProps {\n name: string | string[];\n value: string | number | string[];\n monospace?: boolean;\n collapse?: boolean;\n href?: string;\n extraValue?: Element[];\n}\n\nexport const RowValue: FunctionalComponent<IRowValueProps> = (props) => {\n const {\n name,\n value,\n monospace,\n collapse,\n href,\n extraValue,\n } = props;\n\n if (!name) {\n return null;\n }\n\n if (value === undefined || value === null) {\n return null;\n }\n\n let elementValue;\n\n if (collapse) {\n elementValue = (\n <peculiar-text-hider>\n {value}\n </peculiar-text-hider>\n );\n } else {\n elementValue = value;\n }\n\n const hasValue = !!value.toString();\n\n return (\n <tr>\n <td\n colSpan={hasValue ? 1 : 2}\n >\n <Typography\n variant=\"b2\"\n color=\"gray-9\"\n >\n {name}\n </Typography>\n </td>\n {hasValue && (\n <td\n class={{\n monospace,\n }}\n >\n {(isLink(value.toString()) || href) ? (\n <Link\n variant=\"b2\"\n href={href || value.toString()}\n >\n {value}\n </Link>\n ) : (\n <Typography\n variant=\"b2\"\n color=\"black\"\n >\n {elementValue}\n {extraValue}\n </Typography>\n )}\n </td>\n )}\n </tr>\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport { dateShort, l10n } from '../../utils';\n\nimport { RowTitle, RowValue } from './row';\n\ninterface IBasicInformationProps {\n serialNumber?: string;\n version?: number;\n validity?: string;\n notBefore?: Date;\n notAfter?: Date;\n lastUpdate?: Date;\n nextUpdate?: Date;\n type: string;\n}\n\nexport const BasicInformation: FunctionalComponent<IBasicInformationProps> = (props) => {\n const {\n serialNumber,\n version,\n validity,\n notBefore,\n notAfter,\n lastUpdate,\n nextUpdate,\n type,\n } = props;\n\n return [\n <RowTitle\n value={l10n.getString('basicInformation')}\n />,\n <RowValue\n name={l10n.getString('type')}\n value={type}\n />,\n <RowValue\n name={l10n.getString('serialNumber')}\n value={serialNumber}\n monospace\n />,\n <RowValue\n name={l10n.getString('version')}\n value={version}\n />,\n <RowValue\n name={l10n.getString('validity')}\n value={validity}\n />,\n <RowValue\n name={l10n.getString('issued')}\n value={notBefore ? dateShort(notBefore) : undefined}\n />,\n <RowValue\n name={l10n.getString('expired')}\n value={notAfter ? dateShort(notAfter) : undefined}\n />,\n <RowValue\n name={l10n.getString('lastUpdate')}\n value={lastUpdate ? dateShort(lastUpdate) : undefined}\n />,\n <RowValue\n name={l10n.getString('nextUpdate')}\n value={nextUpdate ? dateShort(nextUpdate) : undefined}\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 { h, FunctionalComponent } from '@stencil/core';\nimport { Convert } from 'pvtsutils';\n\nimport { IPublicKey } from '../../crypto';\nimport { l10n, getStringByOID } from '../../utils';\n\nimport { RowTitle, RowValue, TableRowTable } from './row';\n\nfunction getPublicKeyModulus(publicKey: IPublicKey) {\n if (publicKey.params && 'modulus' in publicKey.params) {\n let length = publicKey.params.modulus.byteLength;\n\n if (length % 2) {\n length -= 1;\n }\n\n return length * 8;\n }\n\n return null;\n}\n\nfunction getPublicKeyExponent(publicKey: IPublicKey) {\n if (publicKey.params && 'publicExponent' in publicKey.params) {\n return publicKey.params.publicExponent.byteLength === 3\n ? 65537\n : 3;\n }\n\n return null;\n}\n\ninterface IPublicKeyProps {\n publicKey: IPublicKey;\n}\n\nexport const PublicKey: FunctionalComponent<IPublicKeyProps> = (props) => {\n const { publicKey } = props;\n\n if (!publicKey) {\n return null;\n }\n\n function renderKeyDetails(key: IPublicKey) {\n return [\n <RowValue\n name={l10n.getString('algorithm')}\n value={getStringByOID(key.algorithm)}\n />,\n <RowValue\n name={l10n.getString('namedCurve')}\n value={getStringByOID((key.params && 'namedCurve' in key.params) ? key.params.namedCurve : undefined)}\n />,\n <RowValue\n name={l10n.getString('exponent')}\n value={getPublicKeyExponent(key)}\n />,\n <RowValue\n name={l10n.getString('modulus')}\n value={getPublicKeyModulus(key)}\n />,\n <RowValue\n name={l10n.getString('value')}\n value={Convert.ToHex(key.value)}\n monospace\n collapse\n />,\n ];\n }\n\n return [\n <RowTitle\n value={l10n.getString('publicKeyInfo')}\n />,\n renderKeyDetails(publicKey),\n (Array.isArray(publicKey.params) && publicKey.params.length && publicKey.params.map((param) => (\n <TableRowTable>\n {renderKeyDetails(param)}\n </TableRowTable>\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport type { INameJSON } from '../../crypto/name';\nimport { l10n } from '../../utils';\n\nimport { RowTitle, RowValue } from './row';\n\ninterface ISubjectNameProps {\n name: INameJSON[];\n}\n\nexport const SubjectName: FunctionalComponent<ISubjectNameProps> = (props) => {\n const { name } = props;\n\n return [\n <RowTitle\n value={l10n.getString('subjectName')}\n />,\n name.map((n) => (\n <RowValue\n name={n.name || n.type}\n value={n.value}\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport type { INameJSON } from '../../crypto/name';\nimport { l10n } from '../../utils';\nimport { Link } from '../link';\nimport { RowTitle, RowValue } from './row';\n\ninterface ISubjectNameProps {\n name: INameJSON[];\n issuerDnLink?: string;\n}\n\nexport const IssuerName: FunctionalComponent<ISubjectNameProps> = (props) => {\n const { name, issuerDnLink } = props;\n const title = l10n.getString('issuerName');\n\n return [\n <RowTitle\n value={issuerDnLink ? (\n <Link\n href={issuerDnLink}\n >\n {title}\n </Link>\n ) : title}\n />,\n name.map((n) => (\n <RowValue\n name={n.name || n.type}\n value={n.value}\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 { h, FunctionalComponent } from '@stencil/core';\nimport { Convert } from 'pvtsutils';\n\nimport { ISignature } from '../../crypto';\nimport { l10n, getStringByOID } from '../../utils';\n\nimport { RowTitle, RowValue, TableRowTable } from './row';\n\ninterface ISignatureProps {\n signature: ISignature;\n}\n\nexport const Signature: FunctionalComponent<ISignatureProps> = (props) => {\n const { signature } = props;\n\n if (!signature) {\n return null;\n }\n\n function renderSignatureDetails(data: ISignature) {\n return [\n <RowValue\n name={l10n.getString('algorithm')}\n value={getStringByOID(data.algorithm)}\n />,\n <RowValue\n name={l10n.getString('value')}\n value={Convert.ToHex(data.value)}\n monospace\n collapse\n />,\n ];\n }\n\n return [\n <RowTitle\n value={l10n.getString('signature')}\n />,\n renderSignatureDetails(signature),\n (signature.params && signature.params.length && signature.params.map((param) => (\n <TableRowTable>\n {renderSignatureDetails(param)}\n </TableRowTable>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { l10n } from '../../utils';\n\nimport { RowTitle, RowValue } from './row';\n\ninterface IThumbprintsProps {\n thumbprints: Record<string, string>;\n}\n\nexport const Thumbprints: FunctionalComponent<IThumbprintsProps> = (props) => {\n const { thumbprints } = props;\n\n if (!thumbprints) {\n return null;\n }\n\n const keys = Object.keys(thumbprints);\n\n if (!keys.length) {\n return null;\n }\n\n return [\n <RowTitle\n value={l10n.getString('fingerprints')}\n />,\n keys.map((name) => (\n <RowValue\n name={name}\n value={thumbprints[name]}\n monospace\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport { Extension, TExtensionValue } from '../../../crypto/extension';\nimport { l10n, getStringByOID } from '../../../utils';\nimport { RowValue } from '../row';\n\ninterface IBasicExtensionProps {\n extension: Extension<TExtensionValue>;\n}\n\nexport const BasicExtension: FunctionalComponent<IBasicExtensionProps> = (props, children) => {\n const { extension } = props;\n\n return ([\n <RowValue\n name=\"Name\"\n value={getStringByOID(extension.asn.extnID)}\n />,\n <RowValue\n name=\"Critical\"\n value={extension.asn.critical ? l10n.getString('yes') : l10n.getString('no')}\n />,\n children,\n <tr>\n <td colSpan={2} class=\"divider\">\n <span />\n </td>\n </tr>,\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 { h, FunctionalComponent } from '@stencil/core';\nimport { KeyUsage } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IKeyUsageExtensionProps {\n extension: Extension<KeyUsage>;\n}\n\nexport const KeyUsageExtension: FunctionalComponent<IKeyUsageExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Usage\"\n value={extension.value.toJSON().join(', ')}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { BasicConstraints } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\nimport { l10n } from '../../../utils';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IBasicConstraintsExtensionProps {\n extension: Extension<BasicConstraints>;\n}\n\nexport const BasicConstraintsExtension:\nFunctionalComponent<IBasicConstraintsExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Certificate Authority\"\n value={extension.value.cA ? l10n.getString('yes') : l10n.getString('no')}\n />\n <RowValue\n name=\"Path Length Constraint\"\n value={extension.value.pathLenConstraint}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { ExtendedKeyUsage } from '@peculiar/asn1-x509';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IExtendedKeyUsageExtensionProps {\n extension: Extension<ExtendedKeyUsage>;\n}\n\nexport const ExtendedKeyUsageExtension:\nFunctionalComponent<IExtendedKeyUsageExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Purposes\"\n value=\"\"\n />,\n extension.value.map((usage) => (\n <TableRowTable>\n <RowValue\n name=\"Purpose\"\n value={getStringByOID(usage)}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { SubjectKeyIdentifier } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\nimport { Extension } from '../../../crypto/extension';\nimport { Link } from '../../link';\nimport { RowValue } from '../row';\nimport { BasicExtension } from './basic_extension';\n\ninterface ISubjectKeyIdentifierExtensionProps extends ISubjectKeyIdentifierOptions {\n extension: Extension<SubjectKeyIdentifier>;\n}\n\nexport const SubjectKeyIdentifierExtension:\nFunctionalComponent<ISubjectKeyIdentifierExtensionProps> = (props) => {\n const { extension, getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink } = props;\n\n const keyId = Convert.ToHex(extension.value.buffer);\n const childrenLink = getSubjectKeyIdChildrenLink(keyId);\n const siblingsLink = getSubjectKeyIdSiblingsLink(keyId);\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Key ID\"\n value={keyId}\n monospace\n extraValue={[\n childrenLink && (\n <span>\n [\n <Link href={childrenLink}>\n children\n </Link>\n ]\n </span>\n ),\n siblingsLink && (\n <span>\n [\n <Link href={siblingsLink}>\n siblings\n </Link>\n ]\n </span>\n ),\n ]}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { AuthorityKeyIdentifier } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\nimport { Extension } from '../../../crypto/extension';\nimport { Link } from '../../link';\nimport { RowValue } from '../row';\nimport { BasicExtension } from './basic_extension';\n\ninterface IAuthorityKeyIdentifierExtensionProps extends IAuthorityKeyIdentifierOptions {\n extension: Extension<AuthorityKeyIdentifier>;\n}\n\nexport const AuthorityKeyIdentifierExtension:\nFunctionalComponent<IAuthorityKeyIdentifierExtensionProps> = (props) => {\n const { extension, getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink } = props;\n\n const keyId = Convert.ToHex(extension.value.keyIdentifier.buffer);\n const parentLink = getAuthKeyIdParentLink(keyId);\n const siblingsLink = getAuthKeyIdSiblingsLink(keyId);\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Key ID\"\n value={keyId}\n monospace\n extraValue={[\n parentLink && (\n <span>\n [\n <Link href={parentLink}>\n parents\n </Link>\n ]\n </span>\n ),\n siblingsLink && (\n <span>\n [\n <Link href={siblingsLink}>\n siblings\n </Link>\n ]\n </span>\n ),\n ]}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport {\n GeneralName,\n Name,\n OtherName,\n DisplayText,\n EDIPartyName,\n UserNotice,\n} from '@peculiar/asn1-x509';\nimport { Convert, BufferSourceConverter } from 'pvtsutils';\nimport { AsnParser } from '@peculiar/asn1-schema';\n\nimport { OIDs } from '../../../constants/oids';\nimport { RowValue, TableRowTable } from '../row';\n\nconst names: Record<keyof GeneralName, string> = {\n otherName: 'Other Name',\n rfc822Name: 'RFC 822 Name',\n dNSName: 'DNS Name',\n x400Address: 'X400 Address',\n directoryName: 'Directory Name',\n ediPartyName: 'Edi Party Name ',\n uniformResourceIdentifier: 'URI',\n iPAddress: 'IP Address',\n registeredID: 'Registered ID',\n};\n\ninterface IGeneralNamePartProps extends IGeneralNameOptions {\n generalName: GeneralName;\n}\n\nexport const GeneralNamePart: FunctionalComponent<IGeneralNamePartProps> = (props) => {\n const { generalName, getDNSNameLink, getIPAddressLink } = props;\n\n if (!generalName) {\n return null;\n }\n\n return Object.keys(generalName).map((name: keyof GeneralName) => {\n const value = generalName[name];\n\n if (value instanceof Name) {\n return [\n <RowValue\n name={names[name] || name}\n value=\"\"\n />,\n <TableRowTable>\n {value.map((relativeDistinguishedName) => (\n relativeDistinguishedName.map((attributeTypeAndValue) => (\n <RowValue\n name={OIDs[attributeTypeAndValue.type] || attributeTypeAndValue.type}\n value={attributeTypeAndValue.value.toString()}\n />\n ))\n ))}\n </TableRowTable>,\n ];\n }\n\n if (value instanceof OtherName) {\n try {\n const text = AsnParser.parse(value.value, DisplayText);\n\n return (\n <RowValue\n name={OIDs[value.typeId] || value.typeId}\n value={text.toString()}\n />\n );\n } catch (error) {\n //\n }\n\n try {\n const text = AsnParser.parse(value.value, UserNotice);\n\n if (text.explicitText) {\n return (\n <RowValue\n name={OIDs[value.typeId] || value.typeId}\n value={text.explicitText.toString()}\n />\n );\n }\n } catch (error) {\n //\n }\n\n return (\n <RowValue\n name={OIDs[value.typeId] || value.typeId}\n value={Convert.ToHex(value.value)}\n monospace\n />\n );\n }\n\n if (BufferSourceConverter.isBufferSource(value)) {\n return (\n <RowValue\n name={names[name] || name}\n value={Convert.ToString(value)}\n />\n );\n }\n\n if (value instanceof EDIPartyName) {\n return (\n <RowValue\n name={names[name] || name}\n value={value.partyName.toString()}\n />\n );\n }\n\n if (name === 'dNSName') {\n return (\n <RowValue\n name={names[name] || name}\n value={value}\n href={getDNSNameLink(value)}\n />\n );\n }\n\n if (name === 'iPAddress') {\n return (\n <RowValue\n name={names[name] || name}\n value={value}\n href={getIPAddressLink(value)}\n />\n );\n }\n\n return (\n <RowValue\n name={names[name] || name}\n value={value}\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CRLDistributionPoints } from '@peculiar/asn1-x509';\n\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface ICRLDistributionPointsExtensionProps extends IGeneralNameOptions {\n extension: Extension<CRLDistributionPoints>;\n}\n\nexport const CRLDistributionPointsExtension:\nFunctionalComponent<ICRLDistributionPointsExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.map((point) => ([\n point.distributionPoint?.fullName.map((gn) => (\n <GeneralNamePart\n generalName={gn}\n {...props}\n />\n )),\n point.cRLIssuer?.map((gn) => (\n <GeneralNamePart\n generalName={gn}\n {...props}\n />\n )),\n ]))}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { AuthorityInfoAccessSyntax, SubjectInfoAccessSyntax } from '@peculiar/asn1-x509';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface IInfoAccessSyntaxExtensionProps extends IGeneralNameOptions {\n extension: Extension<AuthorityInfoAccessSyntax | SubjectInfoAccessSyntax>;\n}\n\nexport const InfoAccessSyntaxExtension:\nFunctionalComponent<IInfoAccessSyntaxExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Descriptions\"\n value=\"\"\n />,\n extension.value.map((description) => (\n <TableRowTable>\n <RowValue\n name=\"Method\"\n value={getStringByOID(description.accessMethod)}\n />\n <GeneralNamePart\n generalName={description.accessLocation}\n {...props}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { SubjectAlternativeName } from '@peculiar/asn1-x509';\n\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface ISubjectAlternativeNameExtensionProps extends IGeneralNameOptions {\n extension: Extension<SubjectAlternativeName>;\n}\n\nexport const SubjectAlternativeNameExtension:\nFunctionalComponent<ISubjectAlternativeNameExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.map((gn) => (\n <GeneralNamePart\n generalName={gn}\n {...props}\n />\n ))}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CertificatePolicies, UserNotice, DisplayText } from '@peculiar/asn1-x509';\nimport { AsnParser } from '@peculiar/asn1-schema';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICertificatePoliciesExtensionProps {\n extension: Extension<CertificatePolicies>;\n}\n\nexport const CertificatePoliciesExtension:\nFunctionalComponent<ICertificatePoliciesExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Policies\"\n value=\"\"\n />,\n extension.value.map((policy) => (\n <TableRowTable>\n <RowValue\n name=\"Policy ID\"\n value={getStringByOID(policy.policyIdentifier)}\n />\n {policy.policyQualifiers && Boolean(policy.policyQualifiers.length) && ([\n <RowValue\n name=\"Qualifiers\"\n value=\"\"\n />,\n policy.policyQualifiers.map((qualifierInfo) => {\n const data = [\n <RowValue\n name=\"Qualifier ID\"\n value={getStringByOID(qualifierInfo.policyQualifierId)}\n />,\n ];\n\n if (qualifierInfo.policyQualifierId === '1.3.6.1.5.5.7.2.1') {\n const value = AsnParser.parse(qualifierInfo.qualifier, DisplayText);\n\n data.push(\n <RowValue\n name=\"Value\"\n value={value.toString()}\n />,\n );\n }\n\n if (qualifierInfo.policyQualifierId === '1.3.6.1.5.5.7.2.2') {\n const value = AsnParser.parse(qualifierInfo.qualifier, UserNotice);\n\n if (value.explicitText) {\n data.push(\n <RowValue\n name=\"Value\"\n value={value.explicitText.toString()}\n />,\n );\n }\n }\n\n return (\n <TableRowTable>\n {data}\n </TableRowTable>\n );\n }),\n ])}\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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\nexport default {\n '9606c02c690033aa1d145f59c6e2648d0549f0df96aab8db915a70d8ecf390a5': 'Akamai CT',\n '39376f545f7b4607f59742d768cd5d2437bf3473b6534a4834bcf72e681c83c9': 'Alpha CT',\n a577ac9ced7548dd8f025b67a241089df86e0f476ec203c2ecbedb185f282638: 'CNNIC CT',\n cdb5179b7fc1c046feea31136a3f8f002e6182faf8896fecc8b2f5b5ab604900: 'Certly.IO',\n '1fbc36e002ede97f40199e86b3573b8a4217d80187746ad0da03a06054d20df4': 'Cloudflare “Nimbus2017”',\n db74afeecb29ecb1feca3e716d2ce5b9aabb36f7847183c75d9d4f37b61fbf64: 'Cloudflare “Nimbus2018”',\n '747eda8331ad331091219cce254f4270c2bffd5e422008c6373579e6107bcc56': 'Cloudflare “Nimbus2019”',\n '5ea773f9df56c0e7b536487dd049e0327a919a0c84a112128418759681714558': 'Cloudflare “Nimbus2020”',\n '4494652eb0eeceafc44007d8a8fe28c0dae682bed8cb31b53fd33396b5b681a8': 'Cloudflare “Nimbus2021”',\n '41c8cab1df22464a10c6a13a0942875e4e318b1b03ebeb4bc768f090629606f6': 'Cloudflare “Nimbus2022”',\n '7a328c54d8b72db620ea38e0521ee98416703213854d3bd22bc13a57a352eb52': 'Cloudflare “Nimbus2023”',\n '6ff141b5647e4222f7ef052cefae7c21fd608e27d2af5a6e9f4b8a37d6633ee5': 'DigiCert Nessie2018',\n fe446108b1d01ab78a62ccfeab6ab2b2babff3abdad80a4d8b30df2d0008830c: 'DigiCert Nessie2019',\n c652a0ec48ceb3fcab170992c43a87413309e80065a26252401ba3362a17c565: 'DigiCert Nessie2020',\n eec095ee8d72640f92e3c3b91bc712a3696a097b4b6a1a1438e647b2cbedc5f9: 'DigiCert Nessie2021',\n '51a3b0f5fd01799c566db837788f0ca47acc1b27cbf79e88429a0dfed48b05e5': 'DigiCert Nessie2022',\n b3737707e18450f86386d605a9dc11094a792db1670c0b87dcf0030e7936a59a: 'DigiCert Nessie2023',\n '5614069a2fd7c2ecd3f5e1bd44b23ec74676b9bc99115cc0ef949855d689d0dd': 'DigiCert Server',\n '8775bfe7597cf88c43995fbdf36eff568d475636ff4ab560c1b4eaff5ea0830f': 'DigiCert Server 2',\n c1164ae0a772d2d4392dc80ac10770d4f0c49bde991a4840c1fa075164f63360: 'DigiCert Yeti2018',\n e2694bae26e8e94009e8861bb63b83d43ee7fe7488fba48f2893019dddf1dbfe: 'DigiCert Yeti2019',\n f095a459f200d18240102d2f93888ead4bfe1d47e399e1d034a6b0a8aa8eb273: 'DigiCert Yeti2020',\n '5cdc4392fee6ab4544b15e9ad456e61037fbd5fa47dca17394b25ee6f6c70eca': 'DigiCert Yeti2021',\n '2245450759552456963fa12ff1f76d86e0232663adc04b7f5dc6835c6ee20f02': 'DigiCert Yeti2022',\n '35cf191bbfb16c57bf0fad4c6d42cbbbb627202651ea3fe12aefa803c33bd64c': 'DigiCert Yeti2023',\n '717ea7420975be84a2723553f1777c26dd51af4e102144094d9019b462fb6668': 'GDCA 1',\n '14308d90ccd030135005c01ca526d81e84e87624e39b6248e08f724aea3bb42a': 'GDCA 2',\n c9cf890a21109c666cc17a3ed065c930d0e0135a9feba85af14210b8072421aa: 'GDCA CT #1',\n '924a30f909336ff435d6993a10ac75a2c641728e7fc2d659ae6188ffad40ce01': 'GDCA CT #2',\n fad4c97cc49ee2f8ac85c5ea5cea09d0220dbbf4e49c6b50662ff868f86b8c28: 'Google “Argon2017”',\n a4501269055a15545e6211ab37bc103f62ae5576a45e4b1714453e1b22106a25: 'Google “Argon2018”',\n '63f2dbcde83bcc2ccf0b728427576b33a48d61778fbd75a638b1c768544bd88d': 'Google “Argon2019”',\n b21e05cc8ba2cd8a204e8766f92bb98a2520676bdafa70e7b249532def8b905e: 'Google “Argon2020”',\n f65c942fd1773022145418083094568ee34d131933bfdf0c2f200bcc4ef164e3: 'Google “Argon2021”',\n '2979bef09e393921f056739f63a577e5be577d9c600af8f94d5d265c255dc784': 'Google “Argon2022”',\n e83ed0da3ef5063532e75728bc896bc903d3cbd1116beceb69e1777d6d06bd6e: 'Google “Argon2023”',\n '68f698f81f6482be3a8ceeb9281d4cfc71515d6793d444d10a67acbb4f4ffbc4': 'Google “Aviator”',\n c3bf03a7e1ca8841c607bae3ff4270fca5ec45b186ebbe4e2cf3fc778630f5f6: 'Google “Crucible”',\n '1d024b8eb1498b344dfd87ea3efc0996f7506f235d1d497061a4773c439c25fb': 'Google “Daedalus”',\n '293c519654c83965baaa50fc5807d4b76fbf587a2972dca4c30cf4e54547f478': 'Google “Icarus”',\n a4b90990b418581487bb13a2cc67700a3c359804f91bdfb8e377cd0ec80ddc10: 'Google “Pilot”',\n ee4bbdb775ce60bae142691fabe19e66a30f7e5fb072d88300c47b897aa8fdcb: 'Google “Rocketeer”',\n bbd9dfbc1f8a71b593942397aa927b473857950aab52e81a909664368e1ed185: 'Google “Skydiver”',\n '52eb4b225ec896974850675f23e43bc1d021e3214ce52ecd5fa87c203cdfca03': 'Google “Solera2018”',\n '0b760e9a8b9a682f88985b15e947501a56446bba8830785c3842994386450c00': 'Google “Solera2019”',\n '1fc72ce5a1b799f400c359bff96ca3913548e8644220610952e9ba1774f7bac7': 'Google “Solera2020”',\n a3c99845e80ab7ce00157b3742df0207dd272b2b602ecf98ee2c12db9c5ae7e7: 'Google “Solera2021”',\n '697aafca1a6b536fae21205046debad7e0eaea13d2432e6e9d8fb379f2b9aaf3': 'Google “Solera2022”',\n a899d8780c9290aaf462f31880ccfbd52451e970d0fbf591ef75b0d99b645681: 'Google “Submariner”',\n b0cc83e5a5f97d6baf7c09cc284904872ac7e88b132c6350b7c6fd26e16c6c77: 'Google “Testtube”',\n b10cd559a6d67846811f7df9a51532739ac48d703bea0323da5d38755bc0ad4e: 'Google “Xenon2018”',\n '084114980071532c16190460bcfc47fdc2653afa292c72b37ff863ae29ccc9f0': 'Google “Xenon2019”',\n '07b75c1be57d68fff1b0c61d2315c7bae6577c5794b76aeebc613a1a69d3a21c': 'Google “Xenon2020”',\n '7d3ef2f88fff88556824c2c0ca9e5289792bc50e78097f2e6a9768997e22f0d7': 'Google “Xenon2021”',\n '46a555eb75fa912030b5a28969f4f37d112c4174befd49b885abf2fc70fe6d47': 'Google “Xenon2022”',\n '7461b4a09cfb3d41d75159575b2e7649a445a8d27709b0cc564a6482b7eb41a3': 'Izenpe',\n '8941449c70742e06b9fc9ce7b116ba0024aa36d59af44f0204404f00f7ea8566': 'Izenpe “Argi”',\n '296afa2d568bca0d2ea844956ae9721fc35fa355ecda99693aafd458a71aefdd': 'Let“s Encrypt ”Clicky”',\n '537b69a3564335a9c04904e39593b2c298eb8d7a6e83023635c627248cd6b440': 'Nordu “flimsy”',\n aae70b7f3cb8d566c86c2f16979c9f445f69ab0eb4535589b2f77a030104f3cd: 'Nordu “plausible”',\n e0127629e90496564e3d0147984498aa48f8adb16600eb7902a1ef9909906273: 'PuChuangSiDa CT',\n cf55e28923497c340d5206d05353aeb25834b52f1f8dc9526809f212efdd7ca6: 'SHECA CT 1',\n '32dc59c2d4c41968d56e14bc61ac8f0e45db39faf3c155aa4252f5001fa0c623': 'SHECA CT 2',\n db76fdadac65e7d09508886e2159bd8b90352f5fead3e3dc5e22eb350acc7b98: 'Sectigo (Comodo) “Dodo” CT',\n '6f5376ac31f03119d89900a45115ff77151c11d902c10029068db2089a37d913': 'Sectigo (Comodo) “Mammoth” CT',\n '5581d4c2169036014aea0b9b573c53f0c0e43878702508172fa3aa1d0713d30c': 'Sectigo (Comodo) “Sabre” CT',\n '34bb6ad6c3df9c03eea8a499ff7891486c9d5e5cac92d01f7bfd1bce19db48ef': 'StartCom',\n ddeb1d2b7a0d4fa6208b81ad8168707e2e8e9d01d55c888d3d11c4cdb6ecbecc: 'Symantec',\n a7ce4a4e6207e0addee5fdaa4b1f86768767b5d002a55d47310e7e670a95eab2: 'Symantec Deneb',\n '15970488d7b997a05beb52512adee8d2e8b4a3165264121a9fabfbd5f85ad93f': 'Symantec “Sirius”',\n bc78e1dfc5f63c684649334da10fa15f0979692009c081b4f3f6917f3ed9b8a5: 'Symantec “Vega”',\n b0b784bc81c0ddc47544e883f05985bb9077d134d8ab88b2b2e533980b8e508b: 'Up In The Air “Behind the Sofa”',\n ac3b9aed7fa9674757159e6d7d575672f9d98100941e9bdeffeca1313b75782d: 'Venafi',\n '03019df3fd85a69a8ebd1facc6da9ba73e469774fe77f579fc5a08b8328c1d6b': 'Venafi Gen2 CT',\n '41b2dc2e89e63ce4af1ba7bb29bf68c6dee6f9f1cc047e30dffae3b3ba259263': 'WoSign',\n '63d0006026dde10bb0601f452446965ee2b6ea2cd4fbc95ac866a550af9075b7': 'WoSign 2',\n '9e4ff73dc3ce220b69217c899e468076abf8d78636d5ccfc85a31a75628ba88b': 'WoSign CT #1',\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 { h, FunctionalComponent } from '@stencil/core';\nimport type { CertificateTransparency } from '@peculiar/asn1-cert-transparency';\n\nimport type { Extension } from '../../../crypto/extension';\nimport logs from '../../../constants/logs';\nimport { dateShort } from '../../../utils';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICertificateTransparencyExtensionProps {\n extension: Extension<CertificateTransparency>;\n}\n\nexport const CertificateTransparencyExtension:\nFunctionalComponent<ICertificateTransparencyExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.items.length) && ([\n <RowValue\n name=\"Signed Certificate Timestamps\"\n value=\"\"\n />,\n extension.value.toJSON().map((signedCertificateTimestamp) => (\n <TableRowTable>\n <RowValue\n name=\"Version\"\n value={signedCertificateTimestamp.version + 1}\n />\n <RowValue\n name=\"Log Operator\"\n value={logs[signedCertificateTimestamp.logId] || signedCertificateTimestamp.logId}\n />\n <RowValue\n name=\"Log Key ID\"\n value={signedCertificateTimestamp.logId}\n monospace\n />\n <RowValue\n name=\"Timestamp\"\n value={dateShort(signedCertificateTimestamp.timestamp)}\n />\n <RowValue\n name=\"Signature Algorithm\"\n value={`${signedCertificateTimestamp.hashAlgorithm} ${signedCertificateTimestamp.signatureAlgorithm}`.toUpperCase()}\n />\n <RowValue\n name=\"Signature\"\n value={signedCertificateTimestamp.signature}\n monospace\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { NameConstraints } from '@peculiar/asn1-x509';\n\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface INameConstraintsExtensionProps extends IGeneralNameOptions {\n extension: Extension<NameConstraints>;\n}\n\nexport const NameConstraintsExtension:\nFunctionalComponent<INameConstraintsExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.excludedSubtrees?.map((generalSubtree) => (\n <GeneralNamePart\n generalName={generalSubtree.base}\n {...props}\n />\n ))}\n {extension.value.permittedSubtrees?.map((generalSubtree) => (\n <GeneralNamePart\n generalName={generalSubtree.base}\n {...props}\n />\n ))}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CertificateTemplate } from '@peculiar/asn1-x509-microsoft';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICertificateTemplateExtensionProps {\n extension: Extension<CertificateTemplate>;\n}\n\nexport const CertificateTemplateExtension:\nFunctionalComponent<ICertificateTemplateExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Template ID\"\n value={extension.value.templateID}\n />\n <RowValue\n name=\"Template Major Version\"\n value={extension.value.templateMajorVersion}\n />\n <RowValue\n name=\"Template Minor Version\"\n value={extension.value.templateMinorVersion}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { EnrollCertTypeChoice } from '@peculiar/asn1-x509-microsoft';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IEnrollCertTypeChoiceExtensionProps {\n extension: Extension<EnrollCertTypeChoice>;\n}\n\nexport const EnrollCertTypeChoiceExtension:\nFunctionalComponent<IEnrollCertTypeChoiceExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Name\"\n value={extension.value.toString()}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CaVersion } from '@peculiar/asn1-x509-microsoft';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICaVersionExtensionProps {\n extension: Extension<CaVersion>;\n}\n\nexport const CaVersionExtension: FunctionalComponent<ICaVersionExtensionProps> = (props) => {\n const { extension } = props;\n const version = extension.value.getVersion();\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Certificate Index\"\n value={version.certificateIndex}\n />\n <RowValue\n name=\"Key Index\"\n value={version.keyIndex}\n />\n </BasicExtension>\n );\n};\n","var PdsLocations_1, QcEuPDS_1, QcType_1, QcCClegislation_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nlet Iso4217CurrencyCode = class Iso4217CurrencyCode {\n constructor(value) {\n if (typeof value === \"string\") {\n this.alphabetic = value;\n }\n else if (typeof value === \"number\") {\n this.numeric = value;\n }\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.PrintableString })\n], Iso4217CurrencyCode.prototype, \"alphabetic\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.PrintableString })\n], Iso4217CurrencyCode.prototype, \"numeric\", void 0);\nIso4217CurrencyCode = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Iso4217CurrencyCode);\nexport { Iso4217CurrencyCode };\nexport class MonetaryValue {\n constructor(params = {}) {\n this.currency = new Iso4217CurrencyCode();\n this.amount = 0;\n this.exponent = 0;\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: Iso4217CurrencyCode })\n], MonetaryValue.prototype, \"currency\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], MonetaryValue.prototype, \"amount\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], MonetaryValue.prototype, \"exponent\", void 0);\nlet QcEuLimitValue = class QcEuLimitValue extends MonetaryValue {\n};\nQcEuLimitValue = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], QcEuLimitValue);\nexport { QcEuLimitValue };\nlet QcEuRetentionPeriod = class QcEuRetentionPeriod {\n constructor(value = 0) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], QcEuRetentionPeriod.prototype, \"value\", void 0);\nQcEuRetentionPeriod = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], QcEuRetentionPeriod);\nexport { QcEuRetentionPeriod };\nlet PdsLocation = class PdsLocation {\n constructor(params = {}) {\n this.url = \"\";\n this.language = \"\";\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], PdsLocation.prototype, \"url\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.PrintableString })\n], PdsLocation.prototype, \"language\", void 0);\nPdsLocation = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], PdsLocation);\nexport { PdsLocation };\nlet PdsLocations = PdsLocations_1 = class PdsLocations extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, PdsLocations_1.prototype);\n }\n};\nPdsLocations = PdsLocations_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: PdsLocation })\n], PdsLocations);\nexport { PdsLocations };\nlet QcEuPDS = QcEuPDS_1 = class QcEuPDS extends PdsLocations {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, QcEuPDS_1.prototype);\n }\n};\nQcEuPDS = QcEuPDS_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: PdsLocation })\n], QcEuPDS);\nexport { QcEuPDS };\nlet QcType = QcType_1 = class QcType extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, QcType_1.prototype);\n }\n};\nQcType = QcType_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier })\n], QcType);\nexport { QcType };\nlet QcCClegislation = QcCClegislation_1 = class QcCClegislation extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, QcCClegislation_1.prototype);\n }\n};\nQcCClegislation = QcCClegislation_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.PrintableString })\n], QcCClegislation);\nexport { QcCClegislation };\nexport const id_etsi_qcs = \"0.4.0.1862.1\";\nexport const id_etsi_qcs_qcCompliance = `${id_etsi_qcs}.1`;\nexport const id_etsi_qcs_qcLimitValue = `${id_etsi_qcs}.2`;\nexport const id_etsi_qcs_qcRetentionPeriod = `${id_etsi_qcs}.3`;\nexport const id_etsi_qcs_qcSSCD = `${id_etsi_qcs}.4`;\nexport const id_etsi_qcs_qcPDS = `${id_etsi_qcs}.5`;\nexport const id_etsi_qcs_qcType = `${id_etsi_qcs}.6`;\nexport const id_etsi_qcs_qcCClegislation = `${id_etsi_qcs}.7`;\nexport const id_etsi_qct_esign = `${id_etsi_qcs_qcType}.1`;\nexport const id_etsi_qct_eseal = `${id_etsi_qcs_qcType}.2`;\nexport const id_etsi_qct_web = `${id_etsi_qcs_qcType}.3`;\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 { h, FunctionalComponent } from '@stencil/core';\nimport {\n QCStatements,\n id_qcs_pkixQCSyntax_v2,\n SemanticsInformation,\n} from '@peculiar/asn1-x509-qualified';\nimport {\n id_etsi_qcs_qcType,\n QcType,\n id_etsi_qcs_qcPDS,\n PdsLocations,\n id_etsi_qcs_qcRetentionPeriod,\n QcEuRetentionPeriod,\n} from '@peculiar/asn1-x509-qualified-etsi';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport { Convert } from 'pvtsutils';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IQCStatementsExtensionProps {\n extension: Extension<QCStatements>;\n}\n\nexport const QCStatementsExtension: FunctionalComponent<IQCStatementsExtensionProps> = (props) => {\n const { extension } = props;\n\n function renderStatementInfo(statementId: string, statementInfo: ArrayBuffer) {\n if (!statementInfo.byteLength) {\n return null;\n }\n\n if (statementId === id_qcs_pkixQCSyntax_v2) {\n const semanticsInformation = AsnParser.parse(statementInfo, SemanticsInformation);\n\n return (\n <RowValue\n name=\"Semantics Identifier\"\n value={getStringByOID(semanticsInformation.semanticsIdentifier)}\n />\n );\n }\n\n if (statementId === id_etsi_qcs_qcType) {\n const qcTypes = AsnParser.parse(statementInfo, QcType);\n\n return (\n <RowValue\n name=\"QC Types\"\n value={qcTypes.map((type) => getStringByOID(type)).join(', ')}\n />\n );\n }\n\n if (statementId === id_etsi_qcs_qcRetentionPeriod) {\n const retentionPeriod = AsnParser.parse(statementInfo, QcEuRetentionPeriod);\n\n return (\n <RowValue\n name=\"Retention Period\"\n value={`${retentionPeriod.value} years`}\n />\n );\n }\n\n if (statementId === id_etsi_qcs_qcPDS) {\n const pdsLocations = AsnParser.parse(statementInfo, PdsLocations);\n\n return ([\n <RowValue\n name=\"PDS Locations\"\n value=\"\"\n />,\n pdsLocations.map((location) => (\n <TableRowTable>\n <RowValue\n name=\"URL\"\n value={location.url}\n />\n <RowValue\n name=\"Language\"\n value={location.language}\n />\n </TableRowTable>\n )),\n ]);\n }\n\n return (\n <RowValue\n name=\"Info\"\n value={Convert.ToHex(statementInfo)}\n monospace\n />\n );\n }\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Statements\"\n value=\"\"\n />,\n extension.value.map((statement) => (\n <TableRowTable>\n <RowValue\n name=\"Statement ID\"\n value={getStringByOID(statement.statementId)}\n />\n {renderStatementInfo(statement.statementId, statement.statementInfo)}\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { NetscapeComment } from '@peculiar/asn1-x509-netscape';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface INetscapeCommentExtensionProps {\n extension: Extension<NetscapeComment>;\n}\n\nexport const NetscapeCommentExtension:\nFunctionalComponent<INetscapeCommentExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Comment\"\n value={extension.value.value}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { NetscapeCertType } from '@peculiar/asn1-x509-netscape';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface INetscapeCertTypeExtensionProps {\n extension: Extension<NetscapeCertType>;\n}\n\nexport const NetscapeCertTypeExtension:\nFunctionalComponent<INetscapeCertTypeExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Type\"\n value={extension.value.toJSON().join(', ')}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { LeiRole } from '@peculiar/asn1-lei';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ILeiRoleExtensionProps {\n extension: Extension<LeiRole>;\n}\n\nexport const LeiRoleExtension: FunctionalComponent<ILeiRoleExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Role\"\n value={extension.value.text}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { LeiChoice } from '@peculiar/asn1-lei';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ILeiExtensionProps extends ILeiOptions {\n extension: Extension<LeiChoice>;\n}\n\nexport const LeiExtension: FunctionalComponent<ILeiExtensionProps> = (props) => {\n const { extension, getLEILink } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Identifier\"\n value={extension.value.text}\n href={getLEILink(extension.value.text)}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { Timestamp } from '@peculiar/asn1-adobe-acrobat';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\nimport { l10n } from '../../../utils';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface ITimestampExtensionProps extends IGeneralNameOptions {\n extension: Extension<Timestamp>;\n}\n\nexport const TimestampExtension: FunctionalComponent<ITimestampExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Version\"\n value={extension.value.version}\n />\n <GeneralNamePart\n generalName={extension.value.location}\n {...props}\n />\n <RowValue\n name=\"Requires Auth\"\n value={extension.value.requiresAuth ? l10n.getString('yes') : l10n.getString('no')}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { ArchiveRevInfo } from '@peculiar/asn1-adobe-acrobat';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IArchiveRevInfoExtensionProps {\n extension: Extension<ArchiveRevInfo>;\n}\n\nexport const ArchiveRevInfoExtension:\nFunctionalComponent<IArchiveRevInfoExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Version\"\n value={extension.value.version}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CRLReason } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICRLReasonExtensionProps {\n extension: Extension<CRLReason>;\n}\n\nexport const CRLReasonExtension: FunctionalComponent<ICRLReasonExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Reason\"\n value={extension.value.toJSON()}\n />\n </BasicExtension>\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 { Convert } from 'pvtsutils';\nimport { Attribute } from '@peculiar/asn1-x509';\n\nexport function getAttributeValue(attribute: Attribute) {\n return Convert.ToString(attribute.values[0]);\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 { h, FunctionalComponent } from '@stencil/core';\nimport { SubjectDirectoryAttributes } from '@peculiar/asn1-x509';\n\nimport { Extension } from '../../../crypto/extension';\nimport { getStringByOID } from '../../../utils';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\nimport { getAttributeValue } from './attribute_value';\n\ninterface ISubjectDirectoryAttributesExtensionProps {\n extension: Extension<SubjectDirectoryAttributes>;\n}\n\nexport const SubjectDirectoryAttributesExtension:\nFunctionalComponent<ISubjectDirectoryAttributesExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Attributes\"\n value=\"\"\n />,\n extension.value.map((attribute) => (\n <TableRowTable>\n <RowValue\n name=\"Type\"\n value={getStringByOID(attribute.type)}\n />\n <RowValue\n name=\"Value\"\n value={getAttributeValue(attribute)}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IAsStringExtensionProps {\n extension: Extension<string>;\n}\n\nexport const AsStringExtension: FunctionalComponent<IAsStringExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Value\"\n value={extension.value}\n monospace\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { PrivateKeyUsagePeriod } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\nimport { dateShort } from '../../../utils';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IPrivateKeyUsagePeriodExtensionProps {\n extension: Extension<PrivateKeyUsagePeriod>;\n}\n\nexport const PrivateKeyUsagePeriodExtension:\nFunctionalComponent<IPrivateKeyUsagePeriodExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Not Before\"\n value={dateShort(extension.value.notBefore)}\n />\n <RowValue\n name=\"Not After\"\n value={dateShort(extension.value.notAfter)}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { EntrustVersionInfo } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IEntrustVersionInfoExtensionProps {\n extension: Extension<EntrustVersionInfo>;\n}\n\nexport const EntrustVersionInfoExtension:\nFunctionalComponent<IEntrustVersionInfoExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name=\"Version\"\n value={extension.value.entrustVers}\n />\n <RowValue\n name=\"Info Flags\"\n value={extension.value.entrustInfoFlags.toJSON().join(', ')}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { BiometricSyntax } from '@peculiar/asn1-x509-qualified';\nimport { Convert } from 'pvtsutils';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IBiometricSyntaxExtensionProps {\n extension: Extension<BiometricSyntax>;\n}\n\nexport const BiometricSyntaxExtension:\nFunctionalComponent<IBiometricSyntaxExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Boolean(extension.value.length) && ([\n <RowValue\n name=\"Biometrics\"\n value=\"\"\n />,\n extension.value.map((data) => (\n <TableRowTable>\n <RowValue\n name=\"OID\"\n value={getStringByOID(data.typeOfBiometricData.biometricDataOid)}\n />\n <RowValue\n name=\"Type\"\n value={data.typeOfBiometricData.predefinedBiometricType}\n />\n <RowValue\n name=\"Algorithm\"\n value={getStringByOID(data.hashAlgorithm.algorithm)}\n />\n <RowValue\n name=\"Hash\"\n value={Convert.ToHex(data.biometricDataHash.buffer)}\n monospace\n />\n <RowValue\n name=\"Source Uri\"\n value={data.sourceDataUri}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport {\n LogotypeExtn,\n LogotypeInfo,\n LogotypeImage,\n LogotypeAudio,\n} from '@peculiar/asn1-x509-logotype';\nimport { Convert } from 'pvtsutils';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ILogotypeExtensionProps {\n extension: Extension<LogotypeExtn>;\n}\n\nexport const LogotypeExtension: FunctionalComponent<ILogotypeExtensionProps> = (props) => {\n const { extension } = props;\n\n const renderImage = (image?: LogotypeImage[]) => {\n if (!image) {\n return null;\n }\n\n return image.map((img) => {\n const { imageDetails } = img;\n\n return [\n <RowValue\n name=\"Image Type\"\n value={imageDetails.mediaType}\n />,\n <RowValue\n name=\"Image Hash\"\n value={Convert.ToHex(imageDetails.logotypeHash[0].hashValue)}\n monospace\n />,\n <RowValue\n name=\"Image URL\"\n value={imageDetails.logotypeURI[0]}\n monospace\n collapse\n />,\n <RowValue\n name=\"Image Hash Algorithm\"\n value={getStringByOID(imageDetails.logotypeHash[0].hashAlg.algorithm)}\n />,\n ];\n });\n };\n\n const renderAudio = (audio?: LogotypeAudio[]) => {\n if (!audio) {\n return null;\n }\n\n return audio.map((aud) => {\n const { audioDetails } = aud;\n\n return [\n <RowValue\n name=\"Audio Type\"\n value={audioDetails.mediaType}\n />,\n <RowValue\n name=\"Audio Hash\"\n value={Convert.ToHex(audioDetails.logotypeHash[0].hashValue)}\n monospace\n />,\n <RowValue\n name=\"Audio URL\"\n value={audioDetails.logotypeURI[0]}\n monospace\n collapse\n />,\n <RowValue\n name=\"Audio Hash Algorithm\"\n value={getStringByOID(audioDetails.logotypeHash[0].hashAlg.algorithm)}\n />,\n ];\n });\n };\n\n const renderLogo = (title: string, info?: LogotypeInfo) => {\n if (!info || !info.direct) {\n return null;\n }\n\n const { image, audio } = info.direct;\n\n return [\n <RowValue\n name=\"Type\"\n value={title}\n />,\n renderImage(image),\n renderAudio(audio),\n <tr>\n <td />\n <td />\n </tr>,\n ];\n };\n\n return (\n <BasicExtension\n extension={extension}\n >\n {renderLogo('Subject', extension.value.subjectLogo)}\n {renderLogo('Issuer', extension.value.issuerLogo)}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { TNAuthorizationList } from '@peculiar/asn1-rfc8226';\n\nimport { RowValue, TableRowTable } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ITNAuthListExtensionProps {\n extension: Extension<TNAuthorizationList>;\n}\n\nexport const TNAuthListExtension: FunctionalComponent<ITNAuthListExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.length > 0 && ([\n <RowValue\n name=\"Entries\"\n value=\"\"\n />,\n extension.value.map((entry) => (\n <TableRowTable>\n <RowValue\n name=\"SPC\"\n value={entry.spc}\n />\n <RowValue\n name=\"Range\"\n value={entry.range ? `start=${entry.range.start} count==${entry.range.count}` : null}\n />\n <RowValue\n name=\"One\"\n value={entry.one}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { PolicyConstraints } from '@peculiar/asn1-x509';\nimport { AsnIntegerArrayBufferConverter } from '@peculiar/asn1-schema';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IPolicyConstraintsExtensionProps {\n extension: Extension<PolicyConstraints>;\n}\n\nexport const PolicyConstraintsExtension:\nFunctionalComponent<IPolicyConstraintsExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.requireExplicitPolicy && (\n <RowValue\n name=\"Require Explicit Policy\"\n value={AsnIntegerArrayBufferConverter.toASN(\n extension.value.requireExplicitPolicy,\n ).valueBlock.toString()}\n />\n )}\n {extension.value.inhibitPolicyMapping && (\n <RowValue\n name=\"Inhibit Policy Mapping\"\n value={AsnIntegerArrayBufferConverter.toASN(\n extension.value.inhibitPolicyMapping,\n ).valueBlock.toString()}\n />\n )}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { PolicyMappings } from '@peculiar/asn1-x509';\n\nimport { getStringByOID } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IPolicyMappingsExtensionProps {\n extension: Extension<PolicyMappings>;\n}\n\nexport const PolicyMappingsExtension:\nFunctionalComponent<IPolicyMappingsExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.length > 0 && ([\n <RowValue\n name=\"Policies\"\n value=\"\"\n />,\n extension.value.map((policy) => (\n <TableRowTable>\n <RowValue\n name=\"Issuer Domain\"\n value={getStringByOID(policy.issuerDomainPolicy)}\n />\n <RowValue\n name=\"Subject Domain\"\n value={getStringByOID(policy.subjectDomainPolicy)}\n />\n </TableRowTable>\n )),\n ])}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { CRLNumber } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\nimport { l10n } from '../../../utils';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface ICRLNumberExtensionProps {\n extension: Extension<CRLNumber>;\n}\n\nexport const CRLNumberExtension: FunctionalComponent<ICRLNumberExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name={l10n.getString('value')}\n value={extension.value.value}\n />\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport { IssuingDistributionPoint } from '@peculiar/asn1-x509';\n\nimport { RowValue } from '../row';\nimport { Extension } from '../../../crypto/extension';\nimport { l10n } from '../../../utils';\n\nimport { BasicExtension } from './basic_extension';\nimport { GeneralNamePart } from './general_name_part';\n\ninterface IIssuingDistributionPointExtensionProps extends IGeneralNameOptions {\n extension: Extension<IssuingDistributionPoint>;\n}\n\n// eslint-disable-next-line max-len\nexport const IssuingDistributionPointExtension: FunctionalComponent<IIssuingDistributionPointExtensionProps> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {extension.value.distributionPoint?.fullName.map((gn) => (\n <GeneralNamePart\n generalName={gn}\n {...props}\n />\n ))}\n {extension.value.onlySomeReasons && (\n <RowValue\n name={l10n.getString('onlyReasons')}\n value={extension.value.onlySomeReasons.toJSON().join(', ')}\n />\n )}\n {extension.value.indirectCRL && (\n <RowValue\n name={l10n.getString('indirectCRL')}\n value={l10n.getString('yes')}\n />\n )}\n {extension.value.onlyContainsUserCerts && (\n <RowValue\n name={l10n.getString('onlyUserCertificates')}\n value={l10n.getString('yes')}\n />\n )}\n {extension.value.onlyContainsAttributeCerts && (\n <RowValue\n name={l10n.getString('onlyAttributeCertificates')}\n value={l10n.getString('yes')}\n />\n )}\n {extension.value.onlyContainsCACerts && (\n <RowValue\n name={l10n.getString('onlyCACertificates')}\n value={l10n.getString('yes')}\n />\n )}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport {\n NonStandardKeyDescription,\n AttestationApplicationId,\n AuthorizationList,\n IntegerSet,\n RootOfTrust,\n} from '@peculiar/asn1-android';\nimport { Convert, BufferSourceConverter } from 'pvtsutils';\nimport { AsnParser } from '@peculiar/asn1-schema';\n\nimport { l10n, camelCaseToWords } from '../../../utils';\nimport { Extension } from '../../../crypto/extension';\nimport { RowValue, TableRowTable } from '../row';\n\nimport { BasicExtension } from './basic_extension';\n\ninterface IKeyDescriptionExtensionProps {\n extension: Extension<NonStandardKeyDescription>;\n}\n\nexport const KeyDescriptionExtension:\nFunctionalComponent<IKeyDescriptionExtensionProps> = (props) => {\n const { extension } = props;\n\n const renderRowValue = (data: Object) => Object.keys(data).map((keyName) => {\n const keyValue = data[keyName];\n let value: string | number | string[] = '';\n\n switch (true) {\n case typeof keyValue === 'string' || typeof keyValue === 'number':\n value = keyValue;\n break;\n\n case keyValue instanceof IntegerSet:\n value = keyValue.join(', ');\n break;\n\n case typeof keyValue === 'boolean':\n value = keyValue\n ? l10n.getString('yes')\n : l10n.getString('no');\n break;\n\n case Object.is(keyValue, null):\n value = 'NULL';\n break;\n\n case keyValue instanceof RootOfTrust:\n return [\n <RowValue\n name={camelCaseToWords(keyName)}\n value=\"\"\n />,\n <TableRowTable>\n {renderRowValue(keyValue)}\n </TableRowTable>,\n ];\n\n case BufferSourceConverter.isBufferSource(keyValue):\n if (keyName === 'attestationApplicationId') {\n try {\n const parsed = AsnParser.parse(keyValue, AttestationApplicationId);\n\n if (parsed.packageInfos.length || parsed.signatureDigests.length) {\n return [\n <RowValue\n name={camelCaseToWords(keyName)}\n value=\"\"\n />,\n Boolean(parsed.packageInfos) && (\n <TableRowTable>\n <RowValue\n name={camelCaseToWords('packageInfos')}\n value=\"\"\n />\n {parsed.packageInfos.map((attestationPackageInfo) => (\n <TableRowTable>\n {renderRowValue(attestationPackageInfo)}\n </TableRowTable>\n ))}\n </TableRowTable>\n ),\n ];\n }\n } catch (error) {\n //\n }\n }\n\n try {\n value = Convert.ToString(keyValue);\n } catch (error) {\n value = Convert.ToHex(keyValue);\n }\n\n break;\n\n default:\n }\n\n return (\n <RowValue\n name={camelCaseToWords(keyName)}\n value={value}\n />\n );\n });\n\n const renderAuthorizationList = (title: string, authorizationList: AuthorizationList[]) => {\n if (authorizationList.length === 0) {\n return null;\n }\n\n return [\n <RowValue\n name={title}\n value=\"\"\n />,\n <TableRowTable>\n {authorizationList.map(renderRowValue)}\n </TableRowTable>,\n ];\n };\n\n return (\n <BasicExtension\n extension={extension}\n >\n <RowValue\n name={camelCaseToWords('attestationVersion')}\n value={extension.value.attestationVersion}\n />\n <RowValue\n name={camelCaseToWords('attestationSecurityLevel')}\n value={extension.value.attestationSecurityLevel}\n />\n <RowValue\n name={camelCaseToWords('keymasterVersion')}\n value={extension.value.keymasterVersion}\n />\n <RowValue\n name={camelCaseToWords('keymasterSecurityLevel')}\n value={extension.value.keymasterSecurityLevel}\n />\n <RowValue\n name={camelCaseToWords('attestationChallenge')}\n value={Convert.ToString(extension.value.attestationChallenge)}\n />\n <RowValue\n name={camelCaseToWords('uniqueId')}\n value={Convert.ToString(extension.value.uniqueId) || undefined}\n />\n {renderAuthorizationList(camelCaseToWords('softwareEnforced'), extension.value.softwareEnforced)}\n {renderAuthorizationList(camelCaseToWords('teeEnforced'), extension.value.teeEnforced)}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport { Extension } from '../../../crypto/extension';\nimport { CabforganizationIdentifier } from '../../../crypto/extensions';\nimport { RowValue } from '../row';\n\nimport { BasicExtension } from './basic_extension';\nimport { camelCaseToWords } from '../../../utils';\n\ninterface ICabforganizationIdentifierExtensionProps {\n extension: Extension<CabforganizationIdentifier>;\n}\n\nexport const CabforganizationIdentifierExtension: FunctionalComponent<\nICabforganizationIdentifierExtensionProps\n> = (props) => {\n const { extension } = props;\n\n return (\n <BasicExtension\n extension={extension}\n >\n {Object.keys(extension.value).map((keyName) => (\n <RowValue\n name={camelCaseToWords(keyName)}\n value={extension.value[keyName]}\n />\n ))}\n </BasicExtension>\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 { h, FunctionalComponent } from '@stencil/core';\nimport {\n KeyUsage,\n BasicConstraints,\n ExtendedKeyUsage,\n SubjectKeyIdentifier,\n AuthorityKeyIdentifier,\n CRLDistributionPoints,\n AuthorityInfoAccessSyntax,\n SubjectAlternativeName,\n CertificatePolicies,\n NameConstraints,\n CRLReason,\n CRLNumber,\n SubjectDirectoryAttributes,\n PrivateKeyUsagePeriod,\n EntrustVersionInfo,\n PolicyConstraints,\n PolicyMappings,\n SubjectInfoAccessSyntax,\n IssuingDistributionPoint,\n} from '@peculiar/asn1-x509';\nimport { CertificateTransparency } from '@peculiar/asn1-cert-transparency';\nimport {\n CertificateTemplate,\n EnrollCertTypeChoice,\n CaVersion,\n} from '@peculiar/asn1-x509-microsoft';\nimport { QCStatements, BiometricSyntax } from '@peculiar/asn1-x509-qualified';\nimport { NetscapeComment, NetscapeCertType } from '@peculiar/asn1-x509-netscape';\nimport { LeiRole, LeiChoice } from '@peculiar/asn1-lei';\nimport { Timestamp, ArchiveRevInfo } from '@peculiar/asn1-adobe-acrobat';\nimport { LogotypeExtn } from '@peculiar/asn1-x509-logotype';\nimport { TNAuthorizationList } from '@peculiar/asn1-rfc8226';\nimport { NonStandardKeyDescription } from '@peculiar/asn1-android';\n\nimport { RowTitle } from '../row';\nimport { Extension, TExtensionValue } from '../../../crypto/extension';\nimport {\n CabforganizationIdentifier,\n} from '../../../crypto/extensions';\n\nimport { KeyUsageExtension } from './key_usage_extension';\nimport { BasicConstraintsExtension } from './basic_constraints_extension';\nimport { ExtendedKeyUsageExtension } from './extended_key_usage_extension';\nimport { SubjectKeyIdentifierExtension } from './subject_key_identifier_extension';\nimport { AuthorityKeyIdentifierExtension } from './authority_key_identifier_extension';\nimport { CRLDistributionPointsExtension } from './crl_distribution_points_extension';\nimport { InfoAccessSyntaxExtension } from './info_access_syntax_extension';\nimport { SubjectAlternativeNameExtension } from './subject_alternative_name_extension';\nimport { CertificatePoliciesExtension } from './certificate_policies_extension';\nimport { CertificateTransparencyExtension } from './certificate_transparency_extension';\nimport { NameConstraintsExtension } from './name_constraints_extension';\nimport { CertificateTemplateExtension } from './certificate_template_extension';\nimport { EnrollCertTypeChoiceExtension } from './enroll_cert_type_extension';\nimport { CaVersionExtension } from './ca_version_extension';\nimport { QCStatementsExtension } from './qc_statements_extension';\nimport { NetscapeCommentExtension } from './netscape_comment_extension';\nimport { NetscapeCertTypeExtension } from './netscape_cert_type_extension';\nimport { LeiRoleExtension } from './lei_role_extennsion';\nimport { LeiExtension } from './lei_extension';\nimport { TimestampExtension } from './timestamp_extension';\nimport { ArchiveRevInfoExtension } from './archive_rev_info_extension';\nimport { CRLReasonExtension } from './crl_reason_extension';\nimport { SubjectDirectoryAttributesExtension } from './subject_directory_attributes_extension';\nimport { AsStringExtension } from './as_string_extension';\nimport { BasicExtension } from './basic_extension';\nimport { PrivateKeyUsagePeriodExtension } from './private_key_usage_period_extension';\nimport { EntrustVersionInfoExtension } from './entrust_version_info_extension';\nimport { BiometricSyntaxExtension } from './biometric_syntax_extension';\nimport { LogotypeExtension } from './logotype_extension';\nimport { TNAuthListExtension } from './tn_auth_list_extension';\nimport { PolicyConstraintsExtension } from './policy_constraints_extension';\nimport { PolicyMappingsExtension } from './policy_mappings_extension';\nimport { CRLNumberExtension } from './crl_number_extension';\nimport { IssuingDistributionPointExtension } from './issuing_distribution_point_extension';\nimport { KeyDescriptionExtension } from './key_description_extension';\nimport { CabforganizationIdentifierExtension } from './cabforganization_identifier_extension';\n\ninterface IExtensionsProps extends\n IGeneralNameOptions,\n ILeiOptions,\n IAuthorityKeyIdentifierOptions,\n ISubjectKeyIdentifierOptions {\n extensions: Extension<TExtensionValue>[];\n title?: string;\n}\n\nexport const Extensions: FunctionalComponent<IExtensionsProps> = (props) => {\n const { extensions, title } = props;\n\n if (!extensions || !extensions.length) {\n return null;\n }\n\n return ([\n <RowTitle\n value={title || 'Extensions'}\n />,\n extensions.map((extension) => {\n try {\n if (extension.value instanceof KeyUsage) {\n return (\n <KeyUsageExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof BasicConstraints) {\n return (\n <BasicConstraintsExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof ExtendedKeyUsage) {\n return (\n <ExtendedKeyUsageExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof SubjectKeyIdentifier) {\n return (\n <SubjectKeyIdentifierExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof AuthorityKeyIdentifier) {\n return (\n <AuthorityKeyIdentifierExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof CRLDistributionPoints) {\n return (\n <CRLDistributionPointsExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (\n extension.value instanceof AuthorityInfoAccessSyntax\n || extension.value instanceof SubjectInfoAccessSyntax\n ) {\n return (\n <InfoAccessSyntaxExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof SubjectAlternativeName) {\n return (\n <SubjectAlternativeNameExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof CertificatePolicies) {\n return (\n <CertificatePoliciesExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof CertificateTransparency) {\n return (\n <CertificateTransparencyExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof NameConstraints) {\n return (\n <NameConstraintsExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof CertificateTemplate) {\n return (\n <CertificateTemplateExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof EnrollCertTypeChoice) {\n return (\n <EnrollCertTypeChoiceExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof CaVersion) {\n return (\n <CaVersionExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof QCStatements) {\n return (\n <QCStatementsExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof NetscapeComment) {\n return (\n <NetscapeCommentExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof NetscapeCertType) {\n return (\n <NetscapeCertTypeExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof LeiRole) {\n return (\n <LeiRoleExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof LeiChoice) {\n return (\n <LeiExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof Timestamp) {\n return (\n <TimestampExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof ArchiveRevInfo) {\n return (\n <ArchiveRevInfoExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof CRLReason) {\n return (\n <CRLReasonExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof SubjectDirectoryAttributes) {\n return (\n <SubjectDirectoryAttributesExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof PrivateKeyUsagePeriod) {\n return (\n <PrivateKeyUsagePeriodExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof EntrustVersionInfo) {\n return (\n <EntrustVersionInfoExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof BiometricSyntax) {\n return (\n <BiometricSyntaxExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof LogotypeExtn) {\n return (\n <LogotypeExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof TNAuthorizationList) {\n return (\n <TNAuthListExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof PolicyConstraints) {\n return (\n <PolicyConstraintsExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof PolicyMappings) {\n return (\n <PolicyMappingsExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof CRLNumber) {\n return (\n <CRLNumberExtension\n extension={extension as any}\n />\n );\n }\n\n if (extension.value instanceof IssuingDistributionPoint) {\n return (\n <IssuingDistributionPointExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof NonStandardKeyDescription) {\n return (\n <KeyDescriptionExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (extension.value instanceof CabforganizationIdentifier) {\n return (\n <CabforganizationIdentifierExtension\n extension={extension as any}\n {...props}\n />\n );\n }\n\n if (typeof extension.value === 'string') {\n return (\n <AsStringExtension\n extension={extension as any}\n />\n );\n }\n\n return (\n <BasicExtension\n extension={extension}\n />\n );\n } catch (error) {\n console.error('Error render extension:', extension.asn.extnID);\n\n return null;\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 { h, FunctionalComponent } from '@stencil/core';\n\nimport {\n X509Certificates,\n X509Certificate,\n X509AttributeCertificate,\n Pkcs10CertificateRequest,\n X509Crl,\n} from '../../crypto';\nimport { l10n } from '../../utils';\nimport { Button } from '../button';\nimport { DownloadIcon } from '../icons';\nimport { RowTitle } from './row';\n\ntype CertificateType = X509Certificates\n| X509Certificate\n| X509AttributeCertificate\n| Pkcs10CertificateRequest\n| X509Crl;\n\ninterface IMiscellaneousProps {\n certificate: CertificateType;\n}\n\nexport const Miscellaneous: FunctionalComponent<IMiscellaneousProps> = (props) => {\n const { certificate } = props;\n\n return [\n <RowTitle\n value={l10n.getString('miscellaneous')}\n />,\n <tr>\n <td>\n <Button\n onClick={() => certificate.downloadAsPEM()}\n startIcon={<DownloadIcon />}\n >\n {l10n.getString('download.pem')}\n </Button>\n </td>\n </tr>,\n <tr>\n <td>\n <Button\n onClick={() => certificate.downloadAsDER()}\n startIcon={<DownloadIcon />}\n >\n {l10n.getString('download.der')}\n </Button>\n </td>\n </tr>,\n ];\n};\n"],"names":["Convert","Name","BufferSourceConverter"],"mappings":"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","x_google_ignoreList":[28]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"p-DxdVL_Kj.system.js","sources":["src/crypto/x509_certificate.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 { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport {\n id_composite_key,\n id_alg_composite,\n CompositePublicKey,\n CompositeSignatureValue,\n CompositeParams,\n} from '@peculiar/asn1-x509-post-quantum';\nimport { Certificate, SubjectPublicKeyInfo } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { Name, INameJSON } from './name';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\nexport interface ISignature {\n algorithm: string;\n value: BufferSource;\n params?: {\n algorithm: string;\n value: BufferSource;\n }[];\n}\n\nexport interface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey | IPublicKey[];\n}\n\nexport class X509Certificate extends AsnData<Certificate> {\n public readonly serialNumber: string;\n\n public readonly subject: INameJSON[];\n\n public readonly issuer: INameJSON[];\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public readonly version: number;\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate';\n\n public readonly tag = PemConverter.CertificateTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), Certificate);\n\n const { tbsCertificate } = this.asn;\n\n this.serialNumber = Convert.ToHex(tbsCertificate.serialNumber);\n this.subject = new Name(tbsCertificate.subject).toJSON();\n this.issuer = new Name(tbsCertificate.issuer).toJSON();\n this.version = tbsCertificate.version + 1;\n\n const notBefore = tbsCertificate.validity.notBefore.utcTime\n || tbsCertificate.validity.notBefore.generalTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = tbsCertificate.validity.notAfter.utcTime\n || tbsCertificate.validity.notAfter.generalTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n }\n\n public parseExtensions() {\n const { tbsCertificate } = this.asn;\n\n if (tbsCertificate.extensions) {\n this.extensions = tbsCertificate.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n private getPublicKeyInfo(publicKeyInfo: SubjectPublicKeyInfo) {\n const { subjectPublicKey, algorithm } = publicKeyInfo;\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 if (algorithm.algorithm === id_composite_key) {\n params = AsnConvert.parse(subjectPublicKey, CompositePublicKey);\n\n params = params.map((param) => this.getPublicKeyInfo(param));\n }\n\n const spki = AsnConvert.serialize(publicKeyInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get publicKey(): IPublicKey {\n return this.getPublicKeyInfo(this.asn.tbsCertificate.subjectPublicKeyInfo);\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n let params;\n\n if (signatureAlgorithm.algorithm === id_alg_composite) {\n const compositeSignatureValues = AsnConvert.parse(signatureValue, CompositeSignatureValue);\n const compositeParams = AsnConvert.parse(signatureAlgorithm.parameters, CompositeParams);\n\n params = compositeParams.map((param, index) => ({\n ...param,\n value: compositeSignatureValues[index],\n }));\n }\n\n return {\n params,\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public async getThumbprint(\n algorithm: string = '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 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 get issuerCommonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN') {\n return name.value;\n }\n\n if (name.shortName === 'E') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get isRoot(): boolean {\n return JSON.stringify(this.issuer) === JSON.stringify(this.subject);\n }\n\n public subjectToString() {\n if (!this.subject) {\n return '';\n }\n\n return this.subject\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public issuerToString() {\n if (!this.issuer) {\n return '';\n }\n\n return this.issuer\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\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.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"],"names":["Convert"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"p-FVz6FuoZ.system.js","sources":["src/components/certificate-summary/certificate-summary.tsx","src/components/certificates-viewer/certificates-viewer.scss?tag=peculiar-certificates-viewer&encapsulation=shadow","src/components/certificates-viewer/certificates-viewer.tsx"],"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 { FunctionalComponent, h } from '@stencil/core';\nimport type { X509Certificate } from '../../crypto';\nimport { dateShort, l10n } from '../../utils';\nimport { Typography } from '../typography';\n\ninterface CertificateSummaryProps {\n certificate: X509Certificate;\n showIssuer?: boolean;\n}\n\nexport const CertificateSummary: FunctionalComponent<CertificateSummaryProps> = (props) => {\n const {\n certificate,\n showIssuer,\n } = props;\n\n const renderRow = (name: string | string[], value: string | number) => (\n <tr>\n <td>\n <Typography\n variant=\"b2\"\n color=\"gray-9\"\n >\n {name}\n </Typography>\n </td>\n <td>\n <Typography\n variant=\"b2\"\n color=\"black\"\n >\n {value}\n </Typography>\n </td>\n </tr>\n );\n\n return (\n <table>\n <tbody>\n {renderRow(\n l10n.getString('subjectName'),\n certificate.subjectToString(),\n )}\n {showIssuer && renderRow(\n l10n.getString('issuerName'),\n certificate.issuerToString(),\n )}\n\n {renderRow(\n l10n.getString('serialNumber'),\n certificate.serialNumber,\n )}\n {renderRow(\n l10n.getString('version'),\n certificate.version,\n )}\n {renderRow(\n l10n.getString('validity'),\n certificate.validity,\n )}\n {renderRow(\n l10n.getString('issued'),\n dateShort(certificate.notBefore),\n )}\n {renderRow(\n l10n.getString('expired'),\n dateShort(certificate.notAfter),\n )}\n </tbody>\n </table>\n );\n};\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n min-width: 280px;\n overflow: auto;\n position: relative;\n}\n\n.search_section {\n padding: var(--pv-size-base-4);\n border-bottom: 1px solid var(--pv-color-gray-4);\n}\n\n.input_search {\n height: var(--pv-size-base-8);\n width: 100%;\n outline: none;\n background-color: var(--pv-color-gray-1);\n padding: 0 var(--pv-size-base-2);\n border: 1px solid var(--pv-color-gray-7);\n border-radius: 4px;\n transition: background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;\n &::placeholder {\n color: var(--pv-color-gray-9);\n }\n}\n\ntable {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n td, th {\n border-bottom: 1px solid var(--pv-color-gray-4);\n vertical-align: top;\n text-align: left;\n\n &:first-child {\n padding-right: 0;\n width: var(--pv-size-base-10);\n }\n &:last-child {\n padding-left: 0;\n width: var(--pv-size-base-10);\n }\n }\n\n th {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n\n &.col_action {\n padding: 0;\n }\n }\n\n td {\n padding: var(--pv-size-base-4);\n }\n\n tr {\n &.m_expanded {\n background: var(--pv-color-gray-1);\n\n > td {\n border-bottom: none;\n }\n }\n\n &.expanded_summary {\n background: var(--pv-color-gray-1);\n\n table {\n table-layout: initial;\n\n td {\n border-bottom: none;\n padding: var(--pv-size-base-2);\n\n &:first-child {\n width: 200px;\n }\n\n &:last-child {\n width: auto;\n }\n }\n }\n }\n }\n}\n\n.button_table_cell {\n margin-top: -3px;\n}\n\n.status_wrapper {\n text-align: center;\n height: var(--pv-size-base-16);\n vertical-align: middle;\n}\n\n.modal_wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n animation: fadeIn 200ms;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.modal_backdrop {\n background: var(--pv-color-black);\n z-index: -1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0.5;\n}\n\n.modal_container {\n background: var(--pv-color-white);\n width: 100%;\n display: flex;\n max-height: calc(100% - 60px);\n flex-direction: column;\n margin: var(--pv-size-base-6);\n position: relative;\n outline: none;\n box-shadow: var(--pv-shadow-dark-hight);\n overflow: hidden;\n border: 0px;\n padding: 0px;\n max-width: 640px;\n border-radius: 4px;\n}\n\n.modal_header {\n padding: var(--pv-size-base-3) var(--pv-size-base-4);\n display: flex;\n flex: 0 0 auto;\n -webkit-box-pack: justify;\n justify-content: space-between;\n gap: var(--pv-size-base-2);\n border-bottom: 1px solid var(--pv-color-gray-5);\n}\n\n.modal_content {\n flex: 1 1 auto;\n overflow: auto;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tbody, tr, td {\n display: block;\n width: 100% !important;\n padding: 0;\n border: none;\n }\n\n thead {\n display: none;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n }\n\n .expanded_summary {\n padding: 0;\n }\n\n .certificate_row {\n border-bottom: 1px solid var(--pv-color-gray-5);\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n }\n\n .certificate_row_actions {\n padding-top: var(--pv-size-base-6);\n\n td {\n display: flex;\n justify-content: right;\n gap: var(--pv-size-base-4);\n }\n }\n }\n\n .button_table_cell {\n margin-top: 0;\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 Event,\n EventEmitter,\n Build,\n} from '@stencil/core';\n\nimport { X509Certificate } from '../../crypto';\nimport { OIDs } from '../../constants/oids';\nimport { l10n } from '../../utils';\nimport { Typography } from '../typography';\nimport { CertificateSummary } from '../certificate-summary';\nimport { Button } from '../button';\nimport {\n DownloadIcon,\n LinkIcon,\n DetailsIcon,\n ArrowBottomIcon,\n ArrowTopIcon,\n CrossIcon,\n} from '../icons';\n\nexport interface ICertificate {\n value: string;\n name?: string;\n tests?: {\n valid?: string;\n revoked?: string;\n expired?: string;\n };\n}\n\ninterface ICertificateDecoded {\n body: X509Certificate;\n tests?: ICertificate['tests'];\n name?: string;\n}\n\n@Component({\n tag: 'peculiar-certificates-viewer',\n styleUrl: 'certificates-viewer.scss',\n shadow: true,\n})\nexport class CertificatesViewer {\n private isHasRoots: boolean = false;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * List of certificates values for decode and show in the list.\n * <br />\n * **NOTE**: If you do not provide a `name` value when\n * invocing the component it will take the first Subject CN value.\n * <br />\n * **NOTE**: If you do not provide a `tests` this column will be ommited from the rendered page.\n * <br />\n * **NOTE**: If the supplied certificates are self-signed the issuer column will be ommited.\n */\n @Prop() certificates: ICertificate[] = [];\n\n /**\n * Use filter in the list when search is changed.\n */\n @Prop() filterWithSearch: boolean = true;\n\n /**\n * Use highlight chapters in the list when search is changed.\n */\n @Prop() highlightWithSearch: boolean = true;\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 /**\n * Emitted when the user open certificate details modal.\n */\n @Event() detailsOpen!: EventEmitter<X509Certificate>;\n\n /**\n * Emitted when the user close certificate details modal.\n */\n @Event() detailsClose!: EventEmitter<void>;\n\n @State() mobileScreenView: boolean = false;\n\n @State() search: string = '';\n\n @State() certificatesDecoded: ICertificateDecoded[] = [];\n\n @State() expandedRow?: number;\n\n @State() certificateSelectedForDetails?: X509Certificate;\n\n @State() isDecodeInProcess: boolean = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.certificatesDecodeAndSet();\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 @Watch('certificates')\n watchCertificates(newValue: ICertificate[], oldValue: ICertificate[]) {\n /**\n * Prevent rerender after set the same `certificates` prop.\n */\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n this.certificatesDecodeAndSet();\n }\n }\n\n async certificatesDecodeAndSet() {\n let hasRoots = false;\n\n if (!Array.isArray(this.certificates)) {\n return;\n }\n\n const data: ICertificateDecoded[] = [];\n\n // eslint-disable-next-line no-restricted-syntax\n for (const certificate of this.certificates) {\n try {\n const decoded = new X509Certificate(certificate.value);\n\n await decoded.getThumbprint('SHA-1');\n\n data.push({\n body: decoded,\n tests: certificate.tests,\n name: certificate.name,\n });\n\n if (!hasRoots && decoded.isRoot) {\n hasRoots = true;\n }\n } catch (error) {\n console.error('Error certificate parse:', error);\n }\n }\n\n this.isHasRoots = hasRoots;\n this.isDecodeInProcess = false;\n this.certificatesDecoded = data;\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsPem(certificate: ICertificateDecoded) {\n certificate.body.downloadAsPEM(certificate.name || certificate.body.commonName);\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsDer(certificate: ICertificateDecoded) {\n certificate.body.downloadAsDER(certificate.name || certificate.body.commonName);\n }\n\n private handleClickDetails = (certificate: X509Certificate) => {\n this.certificateSelectedForDetails = certificate;\n this.detailsOpen.emit(certificate);\n };\n\n private handleModalClose = () => {\n this.certificateSelectedForDetails = undefined;\n\n this.detailsClose.emit();\n };\n\n private handleClickRow(index: number) {\n const isExpandedRowClicked = this.expandedRow === index;\n\n this.expandedRow = isExpandedRowClicked\n ? undefined\n : index;\n }\n\n private handleSearch = (event: any) => {\n this.search = event.target.value.trim();\n };\n\n private getMaxColSpanValue() {\n let colSpan = 5;\n\n if (!this.isHasRoots) {\n colSpan += 1;\n }\n\n return colSpan;\n }\n\n private renderCertificateButtonActions(certificate: ICertificateDecoded) {\n const isHasTestURLs = certificate.tests\n && (certificate.tests.expired || certificate.tests.revoked || certificate.tests.valid);\n\n return (\n <peculiar-button-menu\n class=\"button_table_cell\"\n groups={[\n {\n title: l10n.getString('previewCertificate'),\n options: [\n {\n text: l10n.getString('viewDetails'),\n startIcon: <DetailsIcon />,\n onClick: () => this.handleClickDetails(certificate.body),\n },\n ],\n },\n {\n title: l10n.getString('downloadOptions'),\n options: [\n {\n text: l10n.getString('download.pem'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsPem(certificate),\n },\n {\n text: l10n.getString('download.der'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsDer(certificate),\n },\n ],\n },\n ...(isHasTestURLs ? [{\n title: l10n.getString('testURLs'),\n options: [\n ...(certificate.tests?.valid ? [{\n text: l10n.getString('valid'),\n href: certificate.tests.valid,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.revoked ? [{\n text: l10n.getString('revoked'),\n href: certificate.tests.revoked,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.expired ? [{\n text: l10n.getString('expired'),\n href: certificate.tests.expired,\n startIcon: <LinkIcon />,\n }] : []),\n ],\n }] : []),\n ]}\n />\n );\n }\n\n private renderExpandedRow(certificate: X509Certificate) {\n const colSpan = this.getMaxColSpanValue() - 2;\n\n return (\n <tr class=\"expanded_summary\">\n <td />\n <td colSpan={colSpan}>\n <CertificateSummary\n certificate={certificate}\n showIssuer={!certificate.isRoot}\n />\n </td>\n <td />\n </tr>\n );\n }\n\n private renderCertificatesRows() {\n const searchHighlight = this.highlightWithSearch\n ? this.search\n : '';\n const content = [];\n\n this.certificatesDecoded.forEach((certificate, index) => {\n const isExpandedRow = index === this.expandedRow;\n const publicKeyValue = OIDs[certificate.body.signature.algorithm]\n || certificate.body.signature.algorithm;\n\n if (this.filterWithSearch && this.search) {\n const certificateStringForSearch = [\n publicKeyValue,\n certificate.body.issuerCommonName,\n certificate.name,\n certificate.body.commonName,\n certificate.body.thumbprints['SHA-1'],\n ]\n .join(' ')\n .toLowerCase();\n\n if (certificateStringForSearch.indexOf(this.search.toLowerCase()) === -1) {\n return;\n }\n }\n\n if (this.mobileScreenView) {\n content.push([\n <tr\n class={{\n certificate_row: true,\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <table>\n <tbody>\n {!this.isHasRoots && (\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('issuer')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n )}\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('name')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('publicKey')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n {isExpandedRow && this.renderExpandedRow(certificate.body)}\n <tr class=\"certificate_row_actions\">\n <td>\n {this.renderCertificateButtonActions(certificate)}\n <Button\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>,\n ]);\n\n return;\n }\n\n content.push([\n <tr\n class={{\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <Button\n class=\"button_table_cell\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n {!this.isHasRoots && (\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n )}\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n {this.renderCertificateButtonActions(certificate)}\n </td>\n </tr>,\n isExpandedRow && this.renderExpandedRow(certificate.body),\n ]);\n });\n\n return content;\n }\n\n private renderCertificateDetailsModal() {\n if (!this.certificateSelectedForDetails) {\n return null;\n }\n\n return (\n <div\n class=\"modal_wrapper\"\n role=\"presentation\"\n aria-hidden=\"false\"\n part=\"presentation\"\n >\n <div\n class=\"modal_backdrop\"\n onClick={this.handleModalClose}\n aria-hidden=\"true\"\n />\n <div\n class=\"modal_container\"\n role=\"dialog\"\n part=\"presentation_container\"\n >\n <header class=\"modal_header\">\n <Typography\n variant=\"h4\"\n >\n {l10n.getString('certificateDetails')}\n </Typography>\n <Button\n onClick={this.handleModalClose}\n startIcon={<CrossIcon />}\n />\n </header>\n <div class=\"modal_content\">\n <peculiar-certificate-viewer\n certificate={this.certificateSelectedForDetails}\n mobileMediaQueryString={this.mobileMediaQueryString}\n />\n </div>\n </div>\n </div>\n );\n }\n\n private renderSearch() {\n if (!this.filterWithSearch && !this.highlightWithSearch) {\n return null;\n }\n\n return (\n <div class=\"search_section\">\n <input\n onInput={this.handleSearch}\n type=\"search\"\n value=\"\"\n class=\"input_search t-b3 c-black\"\n disabled={!this.certificatesDecoded.length}\n placeholder=\"Search\"\n />\n </div>\n );\n }\n\n private renderEmptyState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n There are no certificates available.\n </Typography>\n </td>\n </tr>\n );\n }\n\n private renderEmptySearchState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n No results found for “\n {this.search}\n “\n </Typography>\n </td>\n </tr>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderLoadingState() {\n return (\n <div class=\"loading_container\">\n <peculiar-circular-progress />\n </div>\n );\n }\n\n private renderTableBody() {\n if (this.isDecodeInProcess) {\n return null;\n }\n\n if (!this.certificatesDecoded.length) {\n return this.renderEmptyState();\n }\n\n const certificatesRows = this.renderCertificatesRows();\n\n if (this.search && !certificatesRows.length) {\n return this.renderEmptySearchState();\n }\n\n return certificatesRows;\n }\n\n render() {\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n {this.renderSearch()}\n <table>\n {!this.mobileScreenView && (\n <thead>\n <tr>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n {!this.isHasRoots && (\n <th class=\"col_issuer\">\n <Typography variant=\"s2\">\n {l10n.getString('issuer')}\n </Typography>\n </th>\n )}\n <th class=\"col_name\">\n <Typography variant=\"s2\">\n {l10n.getString('name')}\n </Typography>\n </th>\n <th class=\"col_public_key\">\n <Typography variant=\"s2\">\n {l10n.getString('publicKey')}\n </Typography>\n </th>\n <th class=\"col_fingerprint\">\n <Typography variant=\"s2\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </th>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n </tr>\n </thead>\n )}\n <tbody>\n {this.renderTableBody()}\n </tbody>\n </table>\n\n {this.renderCertificateDetailsModal()}\n {this.isDecodeInProcess && this.renderLoadingState()}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"p-RW7UbzcZ.system.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';\n\nimport { Download } from '../utils';\n\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 // eslint-disable-next-line no-restricted-syntax\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({\n single: new OctetString(),\n });\n signedData.certificates = new CertificateSet(\n Array.from(this).map((o) => new CertificateChoices({\n certificate: AsnConvert.parse(o.raw, Certificate),\n })),\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","@import '../../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: var(--pv-size-base-2);\n display: flex;\n flex-direction: column;\n gap: var(--pv-size-base-2);\n margin-bottom: 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';\n\nimport { readAsBinaryString } from '../../utils';\nimport {\n X509Certificate,\n X509AttributeCertificate,\n Pkcs10CertificateRequest,\n X509Crl,\n X509Certificates,\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\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 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 private handleChangeExample = (event: any) => {\n if (event.target.value) {\n this.decode(event.target.value);\n } else {\n this.clearValue();\n }\n };\n\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 setValue(value: typeof this.certificateDecoded) {\n this.certificateDecoded = value;\n this.inputPaste.value = value.toString('pem');\n this.successParse.emit(value.toString('base64url'));\n }\n\n 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 .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 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\"\n onChange={this.handleChangeInputFile}\n value=\"\"\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["certificateViewerCss","CertificateViewer","exports","class_1","hostRef","_this","this","mobileMediaQueryString","mobileScreenView","isDecodeInProcess","getAuthKeyIdParentLink","value","_a","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","prototype","handleMediaQueryChange","event","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","addEventListener","bind","disconnectedCallback","removeEventListener","X509Certificate","certificateDecoded","parseExtensions","getThumbprint","_b","sent","certificateDecodeError","error_1","console","error","watchCertificateAndDecode","newValue","oldValue","serialNumber","getIssuerDnLink","issuerDnLink","renderErrorState","h","class","Typography","renderEmptyState","render","Host","String","BasicInformation","Object","assign","SubjectName","name","subject","IssuerName","issuer","PublicKey","publicKey","Signature","signature","Thumbprints","thumbprints","Extensions","extensions","getLEILink","getDNSNameLink","getIPAddressLink","download","Miscellaneous"],"sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@import '../../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\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\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: 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: var(--pv-size-base-6);\n padding-bottom: 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: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\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';\n\nimport {\n X509Certificate,\n} from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 CertificateProp = 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: CertificateProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: CertificateProp) {\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: CertificateProp, oldValue: CertificateProp) {\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 // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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"],"mappings":"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","ignoreList":[]}
|