@peculiar/certificates-viewer 4.5.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 +32 -19
- 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-DS5FED4F.js → certification_request-DaJSDP3R.js} +33 -20
- 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-UxtK1SWb.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-DaWYvR0i.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-DBpSGIUT.js → x509_certificate-h5GZArG6.js} +6 -9
- package/dist/cjs/x509_certificate-h5GZArG6.js.map +1 -0
- package/dist/cjs/{x509_crl-BBnJqOIF.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 +5 -0
- 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.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-Wtz6WM17.js → certification_request-DazysL_f.js} +33 -20
- 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-CsGuJ6zr.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-Cn7_Z7a1.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-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +6 -9
- package/dist/esm/x509_certificate-Dmgw53TR.js.map +1 -0
- package/dist/esm/{x509_crl-CeW7yzP9.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-Wtz6WM17.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-CsGuJ6zr.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-Cn7_Z7a1.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-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +3 -3
- package/dist/esm-es5/x509_certificate-Dmgw53TR.js.map +1 -0
- package/dist/esm-es5/{x509_crl-CeW7yzP9.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-t-yLLnfF.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-5b829829.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-3e4062f6.entry.js → p-1cbb0d6b.entry.js} +16 -16
- package/dist/peculiar/p-1cbb0d6b.entry.js.map +1 -0
- package/dist/peculiar/{p-7a3bf94e.entry.js → p-218364f2.entry.js} +2 -2
- package/dist/peculiar/p-218364f2.entry.js.map +1 -0
- package/dist/peculiar/{p-B3myni_G.js → p-3zhoLQno.js} +4 -4
- package/dist/peculiar/p-3zhoLQno.js.map +1 -0
- package/dist/peculiar/{p-63aa01ad.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-5608ba3e.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-69b461b4.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-DPre0WhP.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-CKoxwzVA.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-uFLk5hDd.system.js → p-BmIps4bV.system.js} +18 -18
- package/dist/peculiar/p-BmIps4bV.system.js.map +1 -0
- package/dist/peculiar/{p-DgcB4Nqx.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-CttQwkXH.js → p-CJro0Exb.js} +10 -10
- 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-L1KL0R34.system.js → p-DRoyzOgk.system.js} +3 -3
- package/dist/peculiar/p-DRoyzOgk.system.js.map +1 -0
- package/dist/peculiar/{p-Wtz6WM17.js → p-DazysL_f.js} +4 -4
- 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-lNFxlG5A.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-CcANm2qm.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-0e8ab957.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-bafc3336.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 +5 -0
- 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 +115 -120
- package/hydrate/index.mjs +115 -120
- package/package.json +2 -2
- package/dist/cjs/button-C5jDF-CZ.js.map +0 -1
- package/dist/cjs/certification_request-DS5FED4F.js.map +0 -1
- package/dist/cjs/link-CwLq-Nge.js.map +0 -1
- package/dist/cjs/miscellaneous-UxtK1SWb.js.map +0 -1
- package/dist/cjs/pkcs10_certificate_request-DaWYvR0i.js.map +0 -1
- package/dist/cjs/x509_certificate-DBpSGIUT.js.map +0 -1
- package/dist/cjs/x509_crl-BBnJqOIF.js.map +0 -1
- package/dist/esm/button-Djn8UI82.js.map +0 -1
- package/dist/esm/certification_request-Wtz6WM17.js.map +0 -1
- package/dist/esm/link-BfDk078v.js.map +0 -1
- package/dist/esm/miscellaneous-CsGuJ6zr.js.map +0 -1
- package/dist/esm/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
- package/dist/esm/x509_certificate-ObET7_Te.js.map +0 -1
- package/dist/esm/x509_crl-CeW7yzP9.js.map +0 -1
- package/dist/esm-es5/button-Djn8UI82.js.map +0 -1
- package/dist/esm-es5/certification_request-Wtz6WM17.js.map +0 -1
- package/dist/esm-es5/link-BfDk078v.js.map +0 -1
- package/dist/esm-es5/miscellaneous-CsGuJ6zr.js.map +0 -1
- package/dist/esm-es5/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
- package/dist/esm-es5/x509_certificate-ObET7_Te.js.map +0 -1
- package/dist/esm-es5/x509_crl-CeW7yzP9.js.map +0 -1
- package/dist/peculiar/p-0e8ab957.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-3e4062f6.entry.js.map +0 -1
- package/dist/peculiar/p-5608ba3e.system.entry.js.map +0 -1
- package/dist/peculiar/p-5b829829.system.entry.js.map +0 -1
- package/dist/peculiar/p-63aa01ad.system.entry.js.map +0 -1
- package/dist/peculiar/p-69b461b4.entry.js.map +0 -1
- package/dist/peculiar/p-7Nmqck4T.system.js.map +0 -1
- package/dist/peculiar/p-7a3bf94e.entry.js.map +0 -1
- package/dist/peculiar/p-B3myni_G.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-BX9qW3ww.system.js.map +0 -1
- package/dist/peculiar/p-BisXzAqN.js.map +0 -1
- package/dist/peculiar/p-CFhlbr47.system.js.map +0 -1
- package/dist/peculiar/p-CKoxwzVA.system.js.map +0 -1
- package/dist/peculiar/p-C_vT-OYk.system.js.map +0 -1
- package/dist/peculiar/p-CcANm2qm.system.js.map +0 -1
- package/dist/peculiar/p-CttQwkXH.js.map +0 -1
- package/dist/peculiar/p-DPre0WhP.system.js.map +0 -1
- package/dist/peculiar/p-DX5B2Msh.system.js.map +0 -1
- package/dist/peculiar/p-DgcB4Nqx.system.js.map +0 -1
- package/dist/peculiar/p-Dk86_qlM.system.js.map +0 -1
- package/dist/peculiar/p-L1KL0R34.system.js.map +0 -1
- package/dist/peculiar/p-Wtz6WM17.js.map +0 -1
- package/dist/peculiar/p-bafc3336.system.entry.js.map +0 -1
- package/dist/peculiar/p-cae95996.system.entry.js +0 -5
- package/dist/peculiar/p-f4490197.entry.js +0 -5
- package/dist/peculiar/p-lNFxlG5A.js.map +0 -1
- package/dist/peculiar/p-t-yLLnfF.js.map +0 -1
- package/dist/peculiar/p-uFLk5hDd.system.js.map +0 -1
|
@@ -28,12 +28,12 @@ var _AsnData_asn, _AsnData_raw;
|
|
|
28
28
|
import { AsnConvert } from "@peculiar/asn1-schema";
|
|
29
29
|
import { BufferSourceConverter } from "pvtsutils";
|
|
30
30
|
export class AsnData {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
32
|
constructor(...args) {
|
|
32
33
|
_AsnData_asn.set(this, void 0);
|
|
33
34
|
_AsnData_raw.set(this, void 0);
|
|
34
35
|
if (args.length === 1) {
|
|
35
36
|
// asn
|
|
36
|
-
// eslint-disable-next-line prefer-destructuring
|
|
37
37
|
__classPrivateFieldSet(this, _AsnData_asn, args[0], "f");
|
|
38
38
|
__classPrivateFieldSet(this, _AsnData_raw, AsnConvert.serialize(__classPrivateFieldGet(this, _AsnData_asn, "f")), "f");
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asn_data.js","sourceRoot":"","sources":["../../src/crypto/asn_data.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,OAAO,OAAO;IAOlB,YAAmB,GAAG,IAAW;
|
|
1
|
+
{"version":3,"file":"asn_data.js","sourceRoot":"","sources":["../../src/crypto/asn_data.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,OAAO,OAAO;IAOlB,8DAA8D;IAC9D,YAAmB,GAAG,IAAW;QAPjC,+BAAQ;QAER,+BAAkB;QAMhB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM;YAEN,uBAAA,IAAI,gBAAQ,IAAI,CAAC,CAAC,CAAC,MAAA,CAAC;YACpB,uBAAA,IAAI,gBAAQ,UAAU,CAAC,SAAS,CAAC,uBAAA,IAAI,oBAAK,CAAC,MAAA,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,YAAY;YACZ,uBAAA,IAAI,gBAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC;YAC/C,uBAAA,IAAI,gBAAQ,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QACL,OAAO,uBAAA,IAAI,oBAAK,CAAC;IACnB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,uBAAA,IAAI,oBAAK,CAAC;IACnB,CAAC;CACF","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 { BufferSourceConverter } from 'pvtsutils';\n\nexport class AsnData<T> {\n #asn: T;\n\n #raw: ArrayBuffer;\n\n public constructor(raw: BufferSource, type: new() => T);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public constructor(...args: any[]) {\n if (args.length === 1) {\n // asn\n\n this.#asn = args[0];\n this.#raw = AsnConvert.serialize(this.#asn);\n } else {\n // raw, type\n this.#asn = AsnConvert.parse(args[0], args[1]);\n this.#raw = BufferSourceConverter.toArrayBuffer(args[0]);\n }\n }\n\n get asn() {\n return this.#asn;\n }\n\n get raw() {\n return this.#raw;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/crypto/attribute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EAErB,gCAAgC,EAChC,6BAA6B,EAE7B,kBAAkB,EAClB,eAAe,EAEf,8BAA8B,EAC9B,2BAA2B,EAE3B,mBAAmB,EACnB,gBAAgB,EAEhB,sBAAsB,EACtB,mBAAmB,EAEnB,UAAU,EACV,OAAO,EAEP,iBAAiB,EACjB,cAAc,EAEd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAEhB,6BAA6B,EAC7B,iBAAiB,EAEjB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/crypto/attribute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EAErB,gCAAgC,EAChC,6BAA6B,EAE7B,kBAAkB,EAClB,eAAe,EAEf,8BAA8B,EAC9B,2BAA2B,EAE3B,mBAAmB,EACnB,gBAAgB,EAEhB,sBAAsB,EACtB,mBAAmB,EAEnB,UAAU,EACV,OAAO,EAEP,iBAAiB,EACjB,cAAc,EAEd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAEhB,6BAA6B,EAC7B,iBAAiB,EAEjB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,iBAAiB,GAAG;IACxB,CAAC,wBAAwB,CAAC,EAAE,qBAAqB;IACjD,CAAC,gCAAgC,CAAC,EAAE,6BAA6B;IACjE,CAAC,kBAAkB,CAAC,EAAE,eAAe;IACrC,CAAC,8BAA8B,CAAC,EAAE,2BAA2B;IAC7D,CAAC,mBAAmB,CAAC,EAAE,gBAAgB;IACvC,CAAC,sBAAsB,CAAC,EAAE,mBAAmB;IAC7C,CAAC,UAAU,CAAC,EAAE,OAAO;IACrB,CAAC,iBAAiB,CAAC,EAAE,cAAc;IACnC,CAAC,mBAAmB,CAAC,EAAE,gBAAgB;IACvC,CAAC,6BAA6B,CAAC,EAAE,iBAAiB;IAClD,CAAC,4BAA4B,CAAC,EAAE,gBAAgB;IAChD,CAAC,4BAA4B,CAAC,EAAE,gBAAgB;CACjD,CAAC;AAMF,MAAM,OAAO,SAAqC,SAAQ,OAAqB;IAGrE,eAAe;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,GAAiB;QAC3B,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAI,YAAY,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC;gBAEvE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAM,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAE1E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAM,CAAC;QAChD,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport { Attribute as AsnAttribute } from '@peculiar/asn1-x509';\nimport {\n id_DomainNameBeneficiary,\n DomainNameBeneficiary,\n\n id_DomainNameLegalRepresentative,\n DomainNameLegalRepresentative,\n\n id_DomainNameOwner,\n DomainNameOwner,\n\n id_DomainNameTechnicalOperator,\n DomainNameTechnicalOperator,\n\n id_TypeRelationship,\n TypeRelationship,\n\n id_ActivityDescription,\n ActivityDescription,\n\n id_WebGDPR,\n WebGDPR,\n\n id_InsuranceValue,\n InsuranceValue,\n\n id_ValuationRanking,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n\n id_pkcs9_at_challengePassword,\n ChallengePassword,\n\n id_pkcs9_at_unstructuredName,\n UnstructuredName,\n} from '@peculiar/asn1-pkcs9';\nimport { AsnData } from './asn_data';\n\nconst attributesParsers = {\n [id_DomainNameBeneficiary]: DomainNameBeneficiary,\n [id_DomainNameLegalRepresentative]: DomainNameLegalRepresentative,\n [id_DomainNameOwner]: DomainNameOwner,\n [id_DomainNameTechnicalOperator]: DomainNameTechnicalOperator,\n [id_TypeRelationship]: TypeRelationship,\n [id_ActivityDescription]: ActivityDescription,\n [id_WebGDPR]: WebGDPR,\n [id_InsuranceValue]: InsuranceValue,\n [id_ValuationRanking]: ValuationRanking,\n [id_pkcs9_at_challengePassword]: ChallengePassword,\n [id_pkcs9_at_unstructuredName]: UnstructuredName,\n [id_pkcs9_at_extensionRequest]: ExtensionRequest,\n};\n\ntype TAttributeKeys = keyof typeof attributesParsers;\n\nexport type TAttributeValue = InstanceType<typeof attributesParsers[TAttributeKeys]> | string;\n\nexport class Attribute<T extends TAttributeValue> extends AsnData<AsnAttribute> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.values[0];\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnAttribute);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n try {\n const target = attributesParsers[this.asn.type];\n\n if (target) {\n this.value = AsnParser.parse<T>(asnExtnValue, target);\n } else {\n console.warn(`Didn't detect parser for \"${this.asn.type}\" attribute.`);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n } catch (error) {\n console.error(`Error parse \"${this.asn.type}\" attribute:`, error.message);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/crypto/extension.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/crypto/extension.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport {\n Extension as AsnExtension,\n\n id_pe_authorityInfoAccess,\n AuthorityInfoAccessSyntax,\n\n id_ce_authorityKeyIdentifier,\n AuthorityKeyIdentifier,\n\n id_ce_basicConstraints,\n BasicConstraints,\n\n id_ce_certificateIssuer,\n CertificateIssuer,\n\n id_ce_certificatePolicies,\n CertificatePolicies,\n\n id_ce_cRLDistributionPoints,\n CRLDistributionPoints,\n\n id_ce_issuingDistributionPoint,\n IssuingDistributionPoint,\n\n id_ce_cRLReasons,\n CRLReason,\n\n id_ce_extKeyUsage,\n ExtendedKeyUsage,\n\n id_ce_inhibitAnyPolicy,\n InhibitAnyPolicy,\n\n id_ce_invalidityDate,\n InvalidityDate,\n\n id_ce_issuerAltName,\n IssueAlternativeName,\n\n id_ce_keyUsage,\n KeyUsage,\n\n id_ce_nameConstraints,\n NameConstraints,\n\n id_ce_policyConstraints,\n PolicyConstraints,\n\n id_ce_policyMappings,\n PolicyMappings,\n\n id_ce_subjectAltName,\n SubjectAlternativeName,\n\n id_ce_subjectDirectoryAttributes,\n SubjectDirectoryAttributes,\n\n id_ce_subjectKeyIdentifier,\n SubjectKeyIdentifier,\n\n id_ce_privateKeyUsagePeriod,\n PrivateKeyUsagePeriod,\n\n id_entrust_entrustVersInfo,\n EntrustVersionInfo,\n\n id_pe_subjectInfoAccess,\n SubjectInfoAccessSyntax,\n\n id_ce_cRLNumber,\n CRLNumber,\n\n id_ce_deltaCRLIndicator,\n BaseCRLNumber,\n} from '@peculiar/asn1-x509';\nimport {\n id_pe_qcStatements,\n QCStatements,\n\n id_pe_biometricInfo,\n BiometricSyntax,\n} from '@peculiar/asn1-x509-qualified';\nimport {\n id_certificateTemplate,\n CertificateTemplate,\n\n id_enrollCertType,\n EnrollCertTypeChoice,\n\n id_caVersion,\n CaVersion,\n} from '@peculiar/asn1-x509-microsoft';\nimport {\n id_netscapeComment,\n NetscapeComment,\n\n id_netscapeCertType,\n NetscapeCertType,\n} from '@peculiar/asn1-x509-netscape';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport {\n id_lei,\n LeiChoice,\n\n id_role,\n LeiRole,\n} from '@peculiar/asn1-lei';\nimport {\n id_certificateTransparency,\n CertificateTransparency,\n} from '@peculiar/asn1-cert-transparency';\nimport {\n id_adbe_timestamp,\n Timestamp,\n\n id_adbe_archiveRevInfo,\n ArchiveRevInfo,\n} from '@peculiar/asn1-adobe-acrobat';\nimport {\n id_pe_logotype,\n LogotypeExtn,\n} from '@peculiar/asn1-x509-logotype';\nimport {\n id_pe_TNAuthList,\n TNAuthorizationList,\n} from '@peculiar/asn1-rfc8226';\nimport {\n id_ce_keyDescription,\n NonStandardKeyDescription,\n} from '@peculiar/asn1-android';\nimport {\n id_cabforganizationIdentifier,\n CabforganizationIdentifier,\n} from './extensions';\nimport { AsnData } from './asn_data';\n\nconst extensionParsers = {\n [id_pe_authorityInfoAccess]: AuthorityInfoAccessSyntax,\n [id_ce_authorityKeyIdentifier]: AuthorityKeyIdentifier,\n [id_ce_basicConstraints]: BasicConstraints,\n [id_ce_certificateIssuer]: CertificateIssuer,\n [id_ce_certificatePolicies]: CertificatePolicies,\n [id_ce_cRLDistributionPoints]: CRLDistributionPoints,\n '2.5.29.46': CRLDistributionPoints,\n [id_ce_issuingDistributionPoint]: IssuingDistributionPoint,\n [id_ce_cRLReasons]: CRLReason,\n [id_ce_extKeyUsage]: ExtendedKeyUsage,\n [id_ce_inhibitAnyPolicy]: InhibitAnyPolicy,\n [id_ce_invalidityDate]: InvalidityDate,\n [id_ce_issuerAltName]: IssueAlternativeName,\n [id_ce_keyUsage]: KeyUsage,\n [id_ce_nameConstraints]: NameConstraints,\n [id_ce_policyConstraints]: PolicyConstraints,\n [id_ce_policyMappings]: PolicyMappings,\n [id_ce_subjectAltName]: SubjectAlternativeName,\n [id_ce_subjectDirectoryAttributes]: SubjectDirectoryAttributes,\n [id_ce_subjectKeyIdentifier]: SubjectKeyIdentifier,\n [id_pe_qcStatements]: QCStatements,\n [id_certificateTemplate]: CertificateTemplate,\n [id_enrollCertType]: EnrollCertTypeChoice,\n [id_netscapeComment]: NetscapeComment,\n [id_netscapeCertType]: NetscapeCertType,\n [id_caVersion]: CaVersion,\n [id_certificateTransparency]: CertificateTransparency,\n [id_lei]: LeiChoice,\n [id_role]: LeiRole,\n [id_adbe_timestamp]: Timestamp,\n [id_adbe_archiveRevInfo]: ArchiveRevInfo,\n [id_ce_privateKeyUsagePeriod]: PrivateKeyUsagePeriod,\n [id_entrust_entrustVersInfo]: EntrustVersionInfo,\n '2.16.724.1.2.2.4.1': BiometricSyntax,\n [id_pe_biometricInfo]: BiometricSyntax,\n [id_pe_logotype]: LogotypeExtn,\n [id_pe_TNAuthList]: TNAuthorizationList,\n [id_pe_subjectInfoAccess]: SubjectInfoAccessSyntax,\n [id_ce_cRLNumber]: CRLNumber,\n [id_ce_deltaCRLIndicator]: BaseCRLNumber,\n [id_ce_keyDescription]: NonStandardKeyDescription,\n [id_cabforganizationIdentifier]: CabforganizationIdentifier,\n};\n\ntype TExtensionKeys = keyof typeof extensionParsers;\n\nexport type TExtensionValue = InstanceType<typeof extensionParsers[TExtensionKeys]> | string;\n\nexport class Extension<T extends TExtensionValue> extends AsnData<AsnExtension> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.extnValue.buffer;\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnExtension);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n try {\n const target = extensionParsers[this.asn.extnID];\n\n if (target) {\n this.value = AsnParser.parse<T>(asnExtnValue, target);\n } else {\n console.warn(`Didn't detect parser for \"${this.asn.extnID}\" extension.`);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n } catch (error) {\n console.error(`Error parse \"${this.asn.extnID}\" extension:`, error.message);\n\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../src/crypto/name.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;;;;;AAEH,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../src/crypto/name.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;;;;;AAEH,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUpD,MAAM,OAAO,IAAI;IAGf,YAAmB,IAA4B;QAF/C,oBAAO,IAAI,OAAO,EAAE,EAAC;QAGnB,IAAI,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,uBAAA,IAAI,aAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAA,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,uBAAA,IAAI,aAAQ,IAAI,MAAA,CAAC;QACnB,CAAC;IACH,CAAC;IAEM,MAAM;QACX,MAAM,GAAG,GAAG,EAAE,CAAC;QAEf,uBAAA,IAAI,iBAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACvB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF","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 { Name as AsnName } from '@peculiar/asn1-x509';\nimport { AsnParser } from '@peculiar/asn1-schema';\nimport { BufferSourceConverter } from 'pvtsutils';\nimport { OIDs, OIDsShort } from '../constants/oids';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface INameJSON {\n type: string;\n name: string;\n shortName: string;\n value: string;\n}\n\nexport class Name {\n #asn = new AsnName();\n\n public constructor(data: BufferSource | AsnName) {\n if (BufferSourceConverter.isBufferSource(data)) {\n this.#asn = AsnParser.parse(data, AsnName);\n } else {\n this.#asn = data;\n }\n }\n\n public toJSON(): INameJSON[] {\n const res = [];\n\n this.#asn.forEach((o) => (\n o.forEach((a) => {\n res.push({\n type: a.type,\n name: OIDs[a.type],\n shortName: OIDsShort[a.type],\n value: a.value.toString(),\n });\n })\n ));\n\n return res;\n }\n}\n"]}
|
|
@@ -23,13 +23,13 @@ const rPem = `${rBeginTag}${rEolGroup}(?:((?:${rHeaderKey}: ${rHeaderValue})+))?
|
|
|
23
23
|
/**
|
|
24
24
|
* Represents PEM Converter.
|
|
25
25
|
*/
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
26
27
|
export class PemConverter {
|
|
27
28
|
static isPem(data) {
|
|
28
29
|
return typeof data === 'string'
|
|
29
|
-
&& new RegExp(rPem, 'g').test(data);
|
|
30
|
+
&& new RegExp(rPem, 'g').test(data.replace(/\r/g, ''));
|
|
30
31
|
}
|
|
31
32
|
static decodeWithHeaders(pem) {
|
|
32
|
-
// eslint-disable-next-line no-param-reassign
|
|
33
33
|
pem = pem.replace(/\r/g, ''); // CRLF -> LF
|
|
34
34
|
const pattern = new RegExp(rPem, 'g');
|
|
35
35
|
const res = [];
|
|
@@ -49,7 +49,6 @@ export class PemConverter {
|
|
|
49
49
|
if (headersString) {
|
|
50
50
|
const headers = headersString.split(new RegExp(rEolGroup, 'g'));
|
|
51
51
|
let lastHeader = null;
|
|
52
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
53
52
|
for (const header of headers) {
|
|
54
53
|
const [key, value] = header.split(/:(.*)/);
|
|
55
54
|
if (value === undefined) {
|
|
@@ -64,7 +63,9 @@ export class PemConverter {
|
|
|
64
63
|
if (lastHeader) {
|
|
65
64
|
pemStruct.headers.push(lastHeader);
|
|
66
65
|
}
|
|
67
|
-
lastHeader = {
|
|
66
|
+
lastHeader = {
|
|
67
|
+
key, value: value.trim(),
|
|
68
|
+
};
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
// add last header
|
|
@@ -84,6 +85,11 @@ export class PemConverter {
|
|
|
84
85
|
const blocks = this.decodeWithHeaders(pem);
|
|
85
86
|
return blocks.map((o) => o.rawData);
|
|
86
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Encodes a list of raws in PEM format
|
|
90
|
+
* @param raws A list of raws
|
|
91
|
+
* @param tag PEM tag
|
|
92
|
+
*/
|
|
87
93
|
static encode(rawData, tag) {
|
|
88
94
|
if (Array.isArray(rawData)) {
|
|
89
95
|
const raws = new Array();
|
|
@@ -100,10 +106,10 @@ export class PemConverter {
|
|
|
100
106
|
});
|
|
101
107
|
}
|
|
102
108
|
else {
|
|
103
|
-
// encode
|
|
109
|
+
// encode IPemStruct[]
|
|
104
110
|
rawData.forEach((element) => {
|
|
105
111
|
if (!('type' in element)) {
|
|
106
|
-
throw new TypeError('Cannot encode array of
|
|
112
|
+
throw new TypeError('Cannot encode array of IPemStruct in PEM format. Not all items of the array are PemStrut');
|
|
107
113
|
}
|
|
108
114
|
raws.push(this.encodeStruct(element));
|
|
109
115
|
});
|
|
@@ -111,7 +117,7 @@ export class PemConverter {
|
|
|
111
117
|
return raws.join('\n');
|
|
112
118
|
}
|
|
113
119
|
if (!tag) {
|
|
114
|
-
throw new Error(
|
|
120
|
+
throw new Error('Required argument \'tag\' is missed');
|
|
115
121
|
}
|
|
116
122
|
return this.encodeStruct({
|
|
117
123
|
type: tag,
|
|
@@ -129,7 +135,6 @@ export class PemConverter {
|
|
|
129
135
|
const res = [];
|
|
130
136
|
res.push(`-----BEGIN ${upperCaseType}-----`);
|
|
131
137
|
if ((_a = pem.headers) === null || _a === void 0 ? void 0 : _a.length) {
|
|
132
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
133
138
|
for (const header of pem.headers) {
|
|
134
139
|
res.push(`${header.key}: ${header.value}`);
|
|
135
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pem_converter.js","sourceRoot":"","sources":["../../src/crypto/pem_converter.ts"],"names":[],"mappings":"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","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 { BufferSourceConverter, Convert } from 'pvtsutils';\n\nconst rPaddingTag = '-{5}';\nconst rEolChars = '\\\\n';\nconst rNameTag = `[^${rEolChars}]+`;\nconst rBeginTag = `${rPaddingTag}BEGIN (${rNameTag}(?=${rPaddingTag}))${rPaddingTag}`;\nconst rEndTag = `${rPaddingTag}END \\\\1${rPaddingTag}`;\nconst rEolGroup = '\\\\n';\nconst rHeaderKey = `[^:${rEolChars}]+`;\nconst rHeaderValue = `(?:[^${rEolChars}]+${rEolGroup}(?: +[^${rEolChars}]+${rEolGroup})*)`;\nconst rBase64Chars = '[a-zA-Z0-9=+/]+';\nconst rBase64 = `(?:${rBase64Chars}${rEolGroup})+`;\nconst rPem = `${rBeginTag}${rEolGroup}(?:((?:${rHeaderKey}: ${rHeaderValue})+))?${rEolGroup}?(${rBase64})${rEndTag}`;\n\nexport interface PemHeader {\n key: string;\n value: string;\n}\n\n/**\n * Represents PEM structure\n */\nexport interface PemStruct {\n /**\n * Type\n */\n type: string;\n /**\n * Headers\n */\n headers: PemHeader[];\n\n /**\n * Decoded message data\n */\n rawData: ArrayBuffer;\n}\n\ntype AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport type PemStructEncodeParams = AtLeast<PemStruct, 'type' | 'rawData'>;\n\n/**\n * Represents PEM Converter.\n */\nexport class PemConverter {\n public static CertificateTag = 'CERTIFICATE';\n\n public static CrlTag = 'CRL';\n\n public static CertificateRequestTag = 'CERTIFICATE REQUEST';\n\n public static AttributeCertificateTag = 'ATTRIBUTE CERTIFICATE';\n\n public static isPem(data: string): boolean {\n return typeof data === 'string'\n && new RegExp(rPem, 'g').test(data);\n }\n\n public static decodeWithHeaders(pem: string): PemStruct[] {\n // eslint-disable-next-line no-param-reassign\n pem = pem.replace(/\\r/g, ''); // CRLF -> LF\n const pattern = new RegExp(rPem, 'g');\n\n const res: PemStruct[] = [];\n\n let matches: RegExpExecArray | null = null;\n // eslint-disable-next-line no-cond-assign\n while (matches = pattern.exec(pem)) {\n // prepare pem encoded message\n const base64 = matches[3]\n .replace(new RegExp(`[${rEolChars}]+`, 'g'), '');\n const pemStruct: PemStruct = {\n type: matches[1],\n headers: [],\n rawData: Convert.FromBase64(base64),\n };\n\n // read headers\n const headersString = matches[2];\n\n if (headersString) {\n const headers = headersString.split(new RegExp(rEolGroup, 'g'));\n let lastHeader: PemHeader | null = null;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const header of headers) {\n const [key, value] = header.split(/:(.*)/);\n if (value === undefined) {\n // value\n if (!lastHeader) {\n throw new Error('Cannot parse PEM string. Incorrect header value');\n }\n lastHeader.value += key.trim();\n } else {\n // key and value\n if (lastHeader) {\n pemStruct.headers.push(lastHeader);\n }\n lastHeader = { key, value: value.trim() };\n }\n }\n // add last header\n if (lastHeader) {\n pemStruct.headers.push(lastHeader);\n }\n }\n\n res.push(pemStruct);\n }\n\n return res;\n }\n\n /**\n * Decodes PEM to a list of raws\n * @param pem message in PEM format\n */\n public static decode(pem: string): ArrayBuffer[] {\n const blocks = this.decodeWithHeaders(pem);\n\n return blocks.map((o) => o.rawData);\n }\n\n /**\n * Encodes a list of PemStruct in PEM format\n * @param structs A list of PemStruct\n * @param tag PEM tag\n */\n public static encode(structs: PemStructEncodeParams[]): string;\n /**\n * Encodes a raw data in PEM format\n * @param rawData Raw data\n * @param tag PEM tag\n */\n public static encode(rawData: BufferSource, tag: string): string;\n /**\n * Encodes a list of raws in PEM format\n * @param raws A list of raws\n * @param tag PEM tag\n */\n public static encode(rawData: BufferSource[], tag: string): string;\n public static encode(\n rawData: BufferSource | BufferSource[] | PemStructEncodeParams[],\n tag?: string,\n ) {\n if (Array.isArray(rawData)) {\n const raws = new Array<string>();\n\n if (tag) {\n // encode BufferSource[]\n rawData.forEach((element) => {\n if (!BufferSourceConverter.isBufferSource(element)) {\n throw new TypeError('Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource');\n }\n\n raws.push(this.encodeStruct({\n type: tag,\n rawData: BufferSourceConverter.toArrayBuffer(element),\n }));\n });\n } else {\n // encode PemStruct[]\n rawData.forEach((element) => {\n if (!('type' in element)) {\n throw new TypeError('Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut');\n }\n\n raws.push(this.encodeStruct(element));\n });\n }\n\n return raws.join('\\n');\n }\n\n if (!tag) {\n throw new Error(\"Required argument 'tag' is missed\");\n }\n\n return this.encodeStruct({\n type: tag,\n rawData: BufferSourceConverter.toArrayBuffer(rawData),\n });\n }\n\n /**\n * Encodes PEMStruct in PEM block\n * @param pem PEM structure for encoding\n * @returns Returns PEM encoded block\n */\n private static encodeStruct(pem: PemStructEncodeParams): string {\n const upperCaseType = pem.type.toLocaleUpperCase();\n\n const res: string[] = [];\n res.push(`-----BEGIN ${upperCaseType}-----`);\n\n if (pem.headers?.length) {\n // eslint-disable-next-line no-restricted-syntax\n for (const header of pem.headers) {\n res.push(`${header.key}: ${header.value}`);\n }\n\n res.push(''); // blank line\n }\n\n const base64 = Convert.ToBase64(pem.rawData);\n let sliced: string;\n let offset = 0;\n const rows = Array<string>();\n\n while (offset < base64.length) {\n if (base64.length - offset < 64) {\n sliced = base64.substring(offset);\n } else {\n sliced = base64.substring(offset, offset + 64);\n offset += 64;\n }\n\n if (sliced.length !== 0) {\n rows.push(sliced);\n\n if (sliced.length < 64) {\n break;\n }\n } else {\n break;\n }\n }\n\n res.push(...rows);\n res.push(`-----END ${upperCaseType}-----`);\n\n return res.join('\\n');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pem_converter.js","sourceRoot":"","sources":["../../src/crypto/pem_converter.ts"],"names":[],"mappings":"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","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 { BufferSourceConverter, Convert } from 'pvtsutils';\n\nconst rPaddingTag = '-{5}';\nconst rEolChars = '\\\\n';\nconst rNameTag = `[^${rEolChars}]+`;\nconst rBeginTag = `${rPaddingTag}BEGIN (${rNameTag}(?=${rPaddingTag}))${rPaddingTag}`;\nconst rEndTag = `${rPaddingTag}END \\\\1${rPaddingTag}`;\nconst rEolGroup = '\\\\n';\nconst rHeaderKey = `[^:${rEolChars}]+`;\nconst rHeaderValue = `(?:[^${rEolChars}]+${rEolGroup}(?: +[^${rEolChars}]+${rEolGroup})*)`;\nconst rBase64Chars = '[a-zA-Z0-9=+/]+';\nconst rBase64 = `(?:${rBase64Chars}${rEolGroup})+`;\nconst rPem = `${rBeginTag}${rEolGroup}(?:((?:${rHeaderKey}: ${rHeaderValue})+))?${rEolGroup}?(${rBase64})${rEndTag}`;\n\nexport interface IPemHeader {\n key: string;\n value: string;\n}\n\n/**\n * Represents PEM structure\n */\nexport interface IPemStruct {\n /**\n * Type\n */\n type: string;\n /**\n * Headers\n */\n headers: IPemHeader[];\n\n /**\n * Decoded message data\n */\n rawData: ArrayBuffer;\n}\n\ntype TAtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport type TPemStructEncodeParams = TAtLeast<IPemStruct, 'type' | 'rawData'>;\n\n/**\n * Represents PEM Converter.\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class PemConverter {\n public static CertificateTag = 'CERTIFICATE';\n\n public static CrlTag = 'CRL';\n\n public static CertificateRequestTag = 'CERTIFICATE REQUEST';\n\n public static AttributeCertificateTag = 'ATTRIBUTE CERTIFICATE';\n\n public static isPem(data: string): boolean {\n return typeof data === 'string'\n && new RegExp(rPem, 'g').test(data.replace(/\\r/g, ''));\n }\n\n public static decodeWithHeaders(pem: string): IPemStruct[] {\n pem = pem.replace(/\\r/g, ''); // CRLF -> LF\n const pattern = new RegExp(rPem, 'g');\n\n const res: IPemStruct[] = [];\n\n let matches: RegExpExecArray | null = null;\n\n // eslint-disable-next-line no-cond-assign\n while (matches = pattern.exec(pem)) {\n // prepare pem encoded message\n const base64 = matches[3]\n .replace(new RegExp(`[${rEolChars}]+`, 'g'), '');\n const pemStruct: IPemStruct = {\n type: matches[1],\n headers: [],\n rawData: Convert.FromBase64(base64),\n };\n\n // read headers\n const headersString = matches[2];\n\n if (headersString) {\n const headers = headersString.split(new RegExp(rEolGroup, 'g'));\n let lastHeader: IPemHeader | null = null;\n\n for (const header of headers) {\n const [key, value] = header.split(/:(.*)/);\n\n if (value === undefined) {\n // value\n if (!lastHeader) {\n throw new Error('Cannot parse PEM string. Incorrect header value');\n }\n\n lastHeader.value += key.trim();\n } else {\n // key and value\n if (lastHeader) {\n pemStruct.headers.push(lastHeader);\n }\n\n lastHeader = {\n key, value: value.trim(),\n };\n }\n }\n\n // add last header\n if (lastHeader) {\n pemStruct.headers.push(lastHeader);\n }\n }\n\n res.push(pemStruct);\n }\n\n return res;\n }\n\n /**\n * Decodes PEM to a list of raws\n * @param pem message in PEM format\n */\n public static decode(pem: string): ArrayBuffer[] {\n const blocks = this.decodeWithHeaders(pem);\n\n return blocks.map((o) => o.rawData);\n }\n\n /**\n * Encodes a list of raws in PEM format\n * @param raws A list of raws\n * @param tag PEM tag\n */\n public static encode(\n rawData: BufferSource | BufferSource[] | TPemStructEncodeParams[],\n tag?: string,\n ) {\n if (Array.isArray(rawData)) {\n const raws = new Array<string>();\n\n if (tag) {\n // encode BufferSource[]\n rawData.forEach((element) => {\n if (!BufferSourceConverter.isBufferSource(element)) {\n throw new TypeError('Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource');\n }\n\n raws.push(this.encodeStruct({\n type: tag,\n rawData: BufferSourceConverter.toArrayBuffer(element),\n }));\n });\n } else {\n // encode IPemStruct[]\n rawData.forEach((element) => {\n if (!('type' in element)) {\n throw new TypeError('Cannot encode array of IPemStruct in PEM format. Not all items of the array are PemStrut');\n }\n\n raws.push(this.encodeStruct(element));\n });\n }\n\n return raws.join('\\n');\n }\n\n if (!tag) {\n throw new Error('Required argument \\'tag\\' is missed');\n }\n\n return this.encodeStruct({\n type: tag,\n rawData: BufferSourceConverter.toArrayBuffer(rawData),\n });\n }\n\n /**\n * Encodes PEMStruct in PEM block\n * @param pem PEM structure for encoding\n * @returns Returns PEM encoded block\n */\n private static encodeStruct(pem: TPemStructEncodeParams): string {\n const upperCaseType = pem.type.toLocaleUpperCase();\n\n const res: string[] = [];\n\n res.push(`-----BEGIN ${upperCaseType}-----`);\n\n if (pem.headers?.length) {\n for (const header of pem.headers) {\n res.push(`${header.key}: ${header.value}`);\n }\n\n res.push(''); // blank line\n }\n\n const base64 = Convert.ToBase64(pem.rawData);\n let sliced: string;\n let offset = 0;\n const rows = Array<string>();\n\n while (offset < base64.length) {\n if (base64.length - offset < 64) {\n sliced = base64.substring(offset);\n } else {\n sliced = base64.substring(offset, offset + 64);\n offset += 64;\n }\n\n if (sliced.length !== 0) {\n rows.push(sliced);\n\n if (sliced.length < 64) {\n break;\n }\n } else {\n break;\n }\n }\n\n res.push(...rows);\n res.push(`-----END ${upperCaseType}-----`);\n\n return res.join('\\n');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkcs10_certificate_request.js","sourceRoot":"","sources":["../../src/crypto/pkcs10_certificate_request.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,4BAA4B,GAE7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pkcs10_certificate_request.js","sourceRoot":"","sources":["../../src/crypto/pkcs10_certificate_request.ts"],"names":[],"mappings":"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","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 { CertificationRequest } from '@peculiar/asn1-csr';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n} from '@peculiar/asn1-pkcs9';\nimport { Convert } from 'pvtsutils';\nimport { Download } from '../utils';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { Extension, TExtensionValue } from './extension';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class Pkcs10CertificateRequest extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public extensions: Extension<TExtensionValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'PKCS#10 Certificate Request';\n\n public readonly tag = PemConverter.CertificateRequestTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n\n const extensionRequestAttribute = this.attributes.find(\n (attribute) => attribute.asn.type === id_pkcs9_at_extensionRequest,\n ) as Attribute<ExtensionRequest>;\n\n if (extensionRequestAttribute) {\n this.extensions = extensionRequestAttribute.value\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
|
|
@@ -10,16 +10,20 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export class CryptoProvider {
|
|
12
12
|
static isCryptoKeyPair(data) {
|
|
13
|
-
return data && data
|
|
13
|
+
return data && typeof data === 'object' && 'privateKey' in data && 'publicKey' in data;
|
|
14
14
|
}
|
|
15
15
|
constructor() {
|
|
16
16
|
this.providers = new Map();
|
|
17
|
-
// @ts-
|
|
17
|
+
// @ts-expect-error - window.crypto is not typed
|
|
18
18
|
const crypto = window.crypto || window.msCrypto;
|
|
19
19
|
if (typeof crypto !== 'undefined') {
|
|
20
20
|
this.set(CryptoProvider.DEFAULT, crypto);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns crypto by name
|
|
25
|
+
* @param key Crypto name
|
|
26
|
+
*/
|
|
23
27
|
get(key = CryptoProvider.DEFAULT) {
|
|
24
28
|
const crypto = this.providers.get(key.toLowerCase());
|
|
25
29
|
if (!crypto) {
|
|
@@ -30,7 +34,7 @@ export class CryptoProvider {
|
|
|
30
34
|
set(key, value) {
|
|
31
35
|
if (typeof key === 'string') {
|
|
32
36
|
if (!value) {
|
|
33
|
-
throw new TypeError(
|
|
37
|
+
throw new TypeError('Argument \'value\' is required');
|
|
34
38
|
}
|
|
35
39
|
this.providers.set(key.toLowerCase(), value);
|
|
36
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/crypto/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,OAAO,cAAc;IAKlB,MAAM,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/crypto/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,OAAO,cAAc;IAKlB,MAAM,CAAC,eAAe,CAAC,IAAa;QACzC,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;IACzF,CAAC;IAED;QARQ,cAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAS5C,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;QAEhD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAOD;;;OAGG;IACI,GAAG,CAAC,GAAG,GAAG,cAAc,CAAC,OAAO;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAMM,GAAG,CAAC,GAAoB,EAAE,KAAc;QAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AAlDa,sBAAO,GAAG,SAAS,AAAZ,CAAa;AAqDpC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC","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\nexport class CryptoProvider {\n private providers = new Map<string, Crypto>();\n\n public static DEFAULT = 'default';\n\n public static isCryptoKeyPair(data: unknown): data is CryptoKeyPair {\n return data && typeof data === 'object' && 'privateKey' in data && 'publicKey' in data;\n }\n\n constructor() {\n // @ts-expect-error - window.crypto is not typed\n const crypto = window.crypto || window.msCrypto;\n\n if (typeof crypto !== 'undefined') {\n this.set(CryptoProvider.DEFAULT, crypto);\n }\n }\n\n /**\n * Returns default crypto\n */\n public get(): Crypto;\n\n /**\n * Returns crypto by name\n * @param key Crypto name\n */\n public get(key = CryptoProvider.DEFAULT) {\n const crypto = this.providers.get(key.toLowerCase());\n\n if (!crypto) {\n throw new Error(`Cannot get Crypto by name '${key}'`);\n }\n\n return crypto;\n }\n\n public set(value: Crypto): this;\n\n public set(key: string, value: Crypto): this;\n\n public set(key: string | Crypto, value?: Crypto) {\n if (typeof key === 'string') {\n if (!value) {\n throw new TypeError('Argument \\'value\\' is required');\n }\n\n this.providers.set(key.toLowerCase(), value);\n } else {\n this.providers.set(CryptoProvider.DEFAULT, key);\n }\n\n return this;\n }\n}\n\nexport const cryptoProvider = new CryptoProvider();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAe,EAAE;IACjE,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,SAAyC,EACzC,IAAiB,EACiB,EAAE;IACpC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { PemConverter } from './pem_converter';\nimport { cryptoProvider } from './provider';\n\nexport const certificateRawToBuffer = (raw: string): ArrayBuffer => {\n if (PemConverter.isPem(raw)) {\n return PemConverter.decode(raw)[0];\n }\n\n if (Convert.isHex(raw)) {\n return Convert.FromHex(raw);\n }\n\n if (Convert.isBase64(raw)) {\n return Convert.FromBase64(raw);\n }\n\n if (Convert.isBase64Url(raw)) {\n return Convert.FromBase64Url(raw);\n }\n\n return Convert.FromBinary(raw);\n};\n\nexport const getCertificateThumbprint = async (\n algorithm: globalThis.AlgorithmIdentifier,\n data: ArrayBuffer,\n): Promise<ArrayBuffer | undefined> => {\n const crypto = cryptoProvider.get();\n\n if (crypto.subtle) {\n return crypto.subtle.digest(algorithm, data);\n }\n\n return undefined;\n};\n"]}
|
|
@@ -29,12 +29,12 @@ export class X509AttributeCertificate extends AsnData {
|
|
|
29
29
|
this.version = acinfo.version;
|
|
30
30
|
const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;
|
|
31
31
|
if (!notBefore) {
|
|
32
|
-
throw new Error(
|
|
32
|
+
throw new Error('Cannot get \'notBefore\' value');
|
|
33
33
|
}
|
|
34
34
|
this.notBefore = notBefore;
|
|
35
35
|
const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;
|
|
36
36
|
if (!notAfter) {
|
|
37
|
-
throw new Error(
|
|
37
|
+
throw new Error('Cannot get \'notAfter\' value');
|
|
38
38
|
}
|
|
39
39
|
this.notAfter = notAfter;
|
|
40
40
|
this.validity = dateDiff(this.notBefore, this.notAfter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x509_attribute_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_attribute_certificate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAU,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"x509_attribute_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_attribute_certificate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAU,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,SAAS,CAAC;AAOjB,MAAM,OAAO,wBAAyB,SAAQ,OAA6B;IAyBzE,YAAY,GAAW;;QACrB,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAXpD,gBAAW,GAA2B,EAAE,CAAC;QAMhC,SAAI,GAAG,6BAA6B,CAAC;QAErC,QAAG,GAAG,YAAY,CAAC,uBAAuB,CAAC;QAKzD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC;QAE9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC;QAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAI,MAAA,MAAM,CAAC,MAAM,CAAC,MAAM,0CAAE,UAAU,CAAA,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAW,SAAS;QAClB,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAExD,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,kBAAkB,CAAC,SAAS;SACxC,CAAC;IACJ,CAAC;IAEM,eAAe;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEM,eAAe;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAS,GAAG,OAAO;QAEnB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvE,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,yBAAyB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,CAAC;IAEM,QAAQ,CAAC,SAAyC,KAAK;QAC5D,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC;gBACE,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,IAAa;QAChC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,IAAI,IAAI,CAAC,UAAU,CACxB,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,IAAa;QAChC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CACrB,IAAI,CAAC,GAAG,EACR,IAAI,IAAI,IAAI,CAAC,UAAU,CACxB,CAAC;IACJ,CAAC;CACF","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 type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\nimport { dateDiff, Download } from '../utils';\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\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 attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public readonly type = 'X.509 Attribute Certificate';\n\n public readonly tag = PemConverter.AttributeCertificateTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error('Cannot get \\'notBefore\\' value');\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\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 this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\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.attrCert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
|
|
@@ -34,13 +34,13 @@ export class X509Certificate extends AsnData {
|
|
|
34
34
|
const notBefore = tbsCertificate.validity.notBefore.utcTime
|
|
35
35
|
|| tbsCertificate.validity.notBefore.generalTime;
|
|
36
36
|
if (!notBefore) {
|
|
37
|
-
throw new Error(
|
|
37
|
+
throw new Error('Cannot get \'notBefore\' value');
|
|
38
38
|
}
|
|
39
39
|
this.notBefore = notBefore;
|
|
40
40
|
const notAfter = tbsCertificate.validity.notAfter.utcTime
|
|
41
41
|
|| tbsCertificate.validity.notAfter.generalTime;
|
|
42
42
|
if (!notAfter) {
|
|
43
|
-
throw new Error(
|
|
43
|
+
throw new Error('Cannot get \'notAfter\' value');
|
|
44
44
|
}
|
|
45
45
|
this.notAfter = notAfter;
|
|
46
46
|
this.validity = dateDiff(this.notBefore, this.notAfter);
|
|
@@ -118,10 +118,7 @@ export class X509Certificate extends AsnData {
|
|
|
118
118
|
}
|
|
119
119
|
for (let i = 0; i < this.issuer.length; i += 1) {
|
|
120
120
|
const name = this.issuer[i];
|
|
121
|
-
if (name.shortName === 'CN') {
|
|
122
|
-
return name.value;
|
|
123
|
-
}
|
|
124
|
-
if (name.shortName === 'E') {
|
|
121
|
+
if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {
|
|
125
122
|
return name.value;
|
|
126
123
|
}
|
|
127
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x509_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_certificate.ts"],"names":[],"mappings":"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","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"]}
|
|
1
|
+
{"version":3,"file":"x509_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_certificate.ts"],"names":[],"mappings":"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","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';\nimport { dateDiff, Download } from '../utils';\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 = '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' || name.shortName === 'E' || name.shortName === 'O') {\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"]}
|
|
@@ -17,7 +17,6 @@ export class X509Certificates extends Array {
|
|
|
17
17
|
if (rawItems.length < 2) {
|
|
18
18
|
throw new Error('Unable to parse string. The array of elements is less than 2');
|
|
19
19
|
}
|
|
20
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
21
20
|
for (const item of rawItems) {
|
|
22
21
|
this.push(new X509Certificate(item));
|
|
23
22
|
}
|
|
@@ -31,12 +30,9 @@ export class X509Certificates extends Array {
|
|
|
31
30
|
const signedData = new SignedData();
|
|
32
31
|
signedData.version = 1;
|
|
33
32
|
signedData.encapContentInfo.eContentType = id_data;
|
|
34
|
-
signedData.encapContentInfo.eContent = new EncapsulatedContent({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
signedData.certificates = new CertificateSet(Array.from(this).map((o) => new CertificateChoices({
|
|
38
|
-
certificate: AsnConvert.parse(o.raw, Certificate),
|
|
39
|
-
})));
|
|
33
|
+
signedData.encapContentInfo.eContent = new EncapsulatedContent({ single: new OctetString() });
|
|
34
|
+
signedData.certificates = new CertificateSet(Array.from(this)
|
|
35
|
+
.map((o) => new CertificateChoices({ certificate: AsnConvert.parse(o.raw, Certificate) })));
|
|
40
36
|
const cms = new ContentInfo({
|
|
41
37
|
contentType: id_signedData,
|
|
42
38
|
content: AsnConvert.serialize(signedData),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x509_certificates.js","sourceRoot":"","sources":["../../src/crypto/x509_certificates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"x509_certificates.js","sourceRoot":"","sources":["../../src/crypto/x509_certificates.ts"],"names":[],"mappings":"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","sourcesContent":["import { Convert } from 'pvtsutils';\nimport {\n SignedData,\n id_data,\n EncapsulatedContent,\n CertificateSet,\n CertificateChoices,\n ContentInfo,\n id_signedData,\n} from '@peculiar/asn1-cms';\nimport { Certificate } from '@peculiar/asn1-x509';\nimport { AsnConvert, OctetString } from '@peculiar/asn1-schema';\nimport { Download } from '../utils';\nimport { PemConverter } from './pem_converter';\nimport { X509Certificate } from './x509_certificate';\n\nexport class X509Certificates extends Array<X509Certificate> {\n constructor(raw: string) {\n super();\n\n const rawItems = PemConverter.isPem(raw)\n ? PemConverter.decode(raw).map((value) => Convert.ToBase64Url(value))\n : raw.split(',');\n\n if (rawItems.length < 2) {\n throw new Error('Unable to parse string. The array of elements is less than 2');\n }\n\n for (const item of rawItems) {\n this.push(new X509Certificate(item));\n }\n }\n\n public get commonName(): string {\n return Array.from(this)\n .map((o) => o.commonName)\n .join('_');\n }\n\n public get raw(): ArrayBuffer {\n const signedData = new SignedData();\n\n signedData.version = 1;\n signedData.encapContentInfo.eContentType = id_data;\n signedData.encapContentInfo.eContent = new EncapsulatedContent({ single: new OctetString() });\n signedData.certificates = new CertificateSet(\n Array.from(this)\n .map((o) => new CertificateChoices({ certificate: AsnConvert.parse(o.raw, Certificate) })),\n );\n\n const cms = new ContentInfo({\n contentType: id_signedData,\n content: AsnConvert.serialize(signedData),\n });\n\n return AsnConvert.serialize(cms);\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return Array.from(this)\n .map((o) => o.toString('pem'))\n .join('\\n');\n case 'base64url':\n return Array.from(this)\n .map((o) => o.toString('base64url'))\n .join(',');\n default:\n return Array.from(this)\n .map((o) => o.toString('base64'))\n .join(',');\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x509_crl.js","sourceRoot":"","sources":["../../src/crypto/x509_crl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAQ,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"x509_crl.js","sourceRoot":"","sources":["../../src/crypto/x509_crl.ts"],"names":[],"mappings":"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","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 */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\nimport { Download } from '../utils';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class X509Crl extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate Revocation List';\n\n public readonly tag = PemConverter.CrlTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.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' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
|