@peculiar/certificates-viewer 4.5.0 → 4.6.1
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 +4 -6
- package/components/attribute-certificate-viewer.js.map +1 -1
- package/components/attribute.js.map +1 -1
- package/components/button-menu.js +2 -4
- package/components/button-menu.js.map +1 -1
- package/components/button.js +5 -3
- package/components/button.js.map +1 -1
- package/components/certificate-chain-viewer.js +2 -3
- package/components/certificate-chain-viewer.js.map +1 -1
- package/components/certificate-viewer.js +5 -10
- package/components/certificate-viewer.js.map +1 -1
- package/components/circular-progress.js +3 -7
- package/components/circular-progress.js.map +1 -1
- package/components/crl-viewer.js +2 -4
- package/components/crl-viewer.js.map +1 -1
- package/components/cross.js.map +1 -1
- package/components/csr-viewer.js +2 -6
- package/components/csr-viewer.js.map +1 -1
- package/components/download.js +3317 -3097
- package/components/download.js.map +1 -1
- package/components/highlight-words.js +2 -2
- package/components/highlight-words.js.map +1 -1
- package/components/index.js +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 +9 -10
- package/components/peculiar-certificate-decoder.js.map +1 -1
- package/components/peculiar-certificates-viewer.js +45 -44
- package/components/peculiar-certificates-viewer.js.map +1 -1
- package/components/peculiar-text-hider.js +2 -2
- 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 → actions-ByC9jQU-.js} +3 -3
- package/dist/cjs/actions-ByC9jQU-.js.map +1 -0
- package/dist/cjs/{arrow_top-DBMPHVlB.js → arrow_top-Cw9KN115.js} +3 -3
- package/dist/cjs/arrow_top-Cw9KN115.js.map +1 -0
- package/dist/cjs/{button-C5jDF-CZ.js → button-C8EWG_-r.js} +8 -6
- package/dist/cjs/button-C8EWG_-r.js.map +1 -0
- package/dist/cjs/{certification_request-DS5FED4F.js → certification_request-CxHe71zR.js} +3318 -3098
- package/dist/cjs/certification_request-CxHe71zR.js.map +1 -0
- package/dist/cjs/{cross-pi7K0cHC.js → cross-3DqhA0G_.js} +3 -3
- package/dist/cjs/cross-3DqhA0G_.js.map +1 -0
- package/dist/cjs/{download-D9skkVoT.js → download-DQP0KR4o.js} +3 -3
- package/dist/cjs/download-DQP0KR4o.js.map +1 -0
- package/dist/cjs/{index-BO3rFndV.js → index-uHmGhObe.js} +430 -157
- package/dist/cjs/index-uHmGhObe.js.map +1 -0
- package/dist/cjs/index.cjs.js +9 -9
- package/dist/cjs/{link-CwLq-Nge.js → link-Cgh8wnbs.js} +5 -5
- package/dist/cjs/link-Cgh8wnbs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{miscellaneous-UxtK1SWb.js → miscellaneous-DeBEwLDy.js} +25 -24
- package/dist/cjs/miscellaneous-DeBEwLDy.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 +14 -22
- 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 +7 -13
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +13 -14
- 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 +8 -10
- 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 +51 -50
- 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 +4 -4
- 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/peculiar.cjs.js +4 -5
- package/dist/cjs/peculiar.cjs.js.map +1 -1
- package/dist/cjs/{pkcs10_certificate_request-DaWYvR0i.js → pkcs10_certificate_request-CHMDxe2Z.js} +3 -3
- package/dist/cjs/pkcs10_certificate_request-CHMDxe2Z.js.map +1 -0
- package/dist/cjs/read_file-DWtcn3zU.js.map +1 -1
- package/dist/cjs/{x509_certificate-DBpSGIUT.js → x509_certificate-CzplJQ0X.js} +6 -9
- package/dist/cjs/x509_certificate-CzplJQ0X.js.map +1 -0
- package/dist/cjs/{x509_crl-BBnJqOIF.js → x509_crl-B7kFbLDV.js} +6 -6
- package/dist/cjs/x509_crl-B7kFbLDV.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +11 -13
- 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 +6 -7
- package/dist/collection/components/button-menu/button-menu.js.map +1 -1
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.css +3 -0
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js +3 -3
- package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js.map +1 -1
- package/dist/collection/components/certificate-decoder/certificate-decoder.js +6 -2
- 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.css +3 -0
- package/dist/collection/components/certificate-viewer/certificate-viewer.js +13 -15
- package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -1
- package/dist/collection/components/certificates-viewer/certificates-viewer.js +48 -46
- package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -1
- package/dist/collection/components/circular-progress/circular-progress.js +4 -8
- package/dist/collection/components/circular-progress/circular-progress.js.map +1 -1
- package/dist/collection/components/crl-viewer/crl-viewer.js +10 -12
- package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -1
- package/dist/collection/components/csr-viewer/csr-viewer.js +9 -13
- package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -1
- package/dist/collection/components/highlight-words/highlight-words.js +2 -2
- 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 +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 → actions-BOY2Tl0T.js} +3 -3
- package/dist/esm/actions-BOY2Tl0T.js.map +1 -0
- package/dist/esm/{arrow_top-CF9pv-tQ.js → arrow_top-DL0RWe4n.js} +3 -3
- package/dist/esm/arrow_top-DL0RWe4n.js.map +1 -0
- package/dist/esm/{button-Djn8UI82.js → button-Bbh7MwG6.js} +8 -6
- package/dist/esm/button-Bbh7MwG6.js.map +1 -0
- package/dist/esm/{certification_request-Wtz6WM17.js → certification_request-PeMaLTUD.js} +3318 -3098
- package/dist/esm/certification_request-PeMaLTUD.js.map +1 -0
- package/dist/esm/{cross-DdCuR1F2.js → cross-G84H_-QL.js} +3 -3
- package/dist/esm/cross-G84H_-QL.js.map +1 -0
- package/dist/esm/{download-Cqfc-Sxf.js → download-ykcxSgxU.js} +3 -3
- package/dist/esm/download-ykcxSgxU.js.map +1 -0
- package/dist/esm/{index-DDDrq3In.js → index-CwgZaF40.js} +430 -158
- package/dist/esm/index-CwgZaF40.js.map +1 -0
- package/dist/esm/index.js +9 -9
- package/dist/esm/{link-BfDk078v.js → link-CGURvKy1.js} +5 -5
- package/dist/esm/link-CGURvKy1.js.map +1 -0
- package/dist/esm/loader.js +3 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{miscellaneous-CsGuJ6zr.js → miscellaneous-bVeJt-6m.js} +25 -24
- package/dist/esm/miscellaneous-bVeJt-6m.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 +14 -22
- 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 +7 -13
- package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-decoder.entry.js +13 -14
- package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-viewer.entry.js +8 -10
- package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-certificates-viewer.entry.js +51 -50
- package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-text-hider.entry.js +4 -4
- package/dist/esm/peculiar-text-hider.entry.js.map +1 -1
- package/dist/esm/peculiar.js +4 -5
- package/dist/esm/peculiar.js.map +1 -1
- package/dist/esm/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-CK8FH47X.js} +3 -3
- package/dist/esm/pkcs10_certificate_request-CK8FH47X.js.map +1 -0
- package/dist/esm/read_file-F2F0McJX.js.map +1 -1
- package/dist/esm/{x509_certificate-ObET7_Te.js → x509_certificate-CEEWtU_T.js} +6 -9
- package/dist/esm/x509_certificate-CEEWtU_T.js.map +1 -0
- package/dist/esm/{x509_crl-CeW7yzP9.js → x509_crl-BcZd9KVn.js} +6 -6
- package/dist/esm/x509_crl-BcZd9KVn.js.map +1 -0
- package/dist/esm-es5/{actions-DzoPRObK.js → actions-BOY2Tl0T.js} +2 -2
- package/dist/esm-es5/actions-BOY2Tl0T.js.map +1 -0
- package/dist/esm-es5/{arrow_top-CF9pv-tQ.js → arrow_top-DL0RWe4n.js} +2 -2
- package/dist/esm-es5/arrow_top-DL0RWe4n.js.map +1 -0
- package/dist/esm-es5/button-Bbh7MwG6.js +19 -0
- package/dist/esm-es5/button-Bbh7MwG6.js.map +1 -0
- package/dist/esm-es5/{certification_request-Wtz6WM17.js → certification_request-PeMaLTUD.js} +5 -5
- package/dist/esm-es5/certification_request-PeMaLTUD.js.map +1 -0
- package/dist/esm-es5/{cross-DdCuR1F2.js → cross-G84H_-QL.js} +2 -2
- package/dist/esm-es5/cross-G84H_-QL.js.map +1 -0
- package/dist/esm-es5/{download-Cqfc-Sxf.js → download-ykcxSgxU.js} +2 -2
- package/dist/esm-es5/download-ykcxSgxU.js.map +1 -0
- package/dist/esm-es5/index-CwgZaF40.js +6 -0
- package/dist/esm-es5/index-CwgZaF40.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/link-CGURvKy1.js +12 -0
- package/dist/esm-es5/link-CGURvKy1.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -2
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/{miscellaneous-CsGuJ6zr.js → miscellaneous-bVeJt-6m.js} +3 -3
- package/dist/esm-es5/miscellaneous-bVeJt-6m.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 +2 -2
- 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/peculiar.js +2 -2
- package/dist/esm-es5/peculiar.js.map +1 -1
- package/dist/esm-es5/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-CK8FH47X.js} +2 -2
- package/dist/esm-es5/pkcs10_certificate_request-CK8FH47X.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-CEEWtU_T.js} +3 -3
- package/dist/esm-es5/x509_certificate-CEEWtU_T.js.map +1 -0
- package/dist/esm-es5/{x509_crl-CeW7yzP9.js → x509_crl-BcZd9KVn.js} +2 -2
- package/dist/esm-es5/x509_crl-BcZd9KVn.js.map +1 -0
- package/dist/peculiar/index.esm.js +1 -1
- package/dist/peculiar/loader.esm.js.map +1 -1
- package/dist/peculiar/p-00d6f11f.system.entry.js +111 -0
- package/dist/peculiar/p-00d6f11f.system.entry.js.map +1 -0
- package/dist/peculiar/{p-7a3bf94e.entry.js → p-0de4837d.entry.js} +2 -2
- package/dist/peculiar/p-0de4837d.entry.js.map +1 -0
- package/dist/peculiar/{p-5b829829.system.entry.js → p-14fcbc5c.system.entry.js} +2 -2
- package/dist/peculiar/p-14fcbc5c.system.entry.js.map +1 -0
- package/dist/peculiar/{p-12d2e080.entry.js → p-27ae6a3a.entry.js} +2 -2
- package/dist/peculiar/p-27ae6a3a.entry.js.map +1 -0
- package/dist/peculiar/{p-0e8ab957.entry.js → p-315805ce.entry.js} +2 -2
- package/dist/peculiar/p-315805ce.entry.js.map +1 -0
- package/dist/peculiar/{p-69b461b4.entry.js → p-5479a530.entry.js} +3 -3
- package/dist/peculiar/p-5479a530.entry.js.map +1 -0
- package/dist/peculiar/{p-5608ba3e.system.entry.js → p-591a9019.system.entry.js} +2 -2
- package/dist/peculiar/p-591a9019.system.entry.js.map +1 -0
- package/dist/peculiar/p-607d08e8.system.entry.js +5 -0
- package/dist/peculiar/{p-cae95996.system.entry.js.map → p-607d08e8.system.entry.js.map} +1 -1
- package/dist/peculiar/{p-63aa01ad.system.entry.js → p-84f69023.system.entry.js} +3 -3
- package/dist/peculiar/p-84f69023.system.entry.js.map +1 -0
- package/dist/peculiar/p-9d9f24bd.entry.js +5 -0
- package/dist/peculiar/{p-f4490197.entry.js.map → p-9d9f24bd.entry.js.map} +1 -1
- package/dist/peculiar/{p-BRhx1gbw.system.js → p-B4PdAFCr.system.js} +4 -4
- package/dist/peculiar/p-B4PdAFCr.system.js.map +1 -0
- package/dist/peculiar/p-BGASC3UX.system.js +5 -0
- package/dist/peculiar/p-BGASC3UX.system.js.map +1 -0
- package/dist/peculiar/p-BaebEpW0.system.js.map +1 -0
- package/dist/peculiar/{p-B2YrZuK2.system.js → p-Bi5mjeeg.system.js} +2 -2
- package/dist/peculiar/p-Bi5mjeeg.system.js.map +1 -0
- package/dist/peculiar/p-BipKYW6e.system.js +142 -0
- package/dist/peculiar/p-BipKYW6e.system.js.map +1 -0
- package/dist/peculiar/{p-B859JpGw.system.js → p-Bknpl7EO.system.js} +3 -3
- package/dist/peculiar/p-Bknpl7EO.system.js.map +1 -0
- package/dist/peculiar/p-BloT0Xj9.system.js.map +1 -0
- package/dist/peculiar/p-BypepohK.system.js.map +1 -0
- package/dist/peculiar/{p-L1KL0R34.system.js → p-C9sY8yng.system.js} +3 -3
- package/dist/peculiar/p-C9sY8yng.system.js.map +1 -0
- package/dist/peculiar/{p-CttQwkXH.js → p-CGRNSrHk.js} +42 -42
- package/dist/peculiar/p-CGRNSrHk.js.map +1 -0
- package/dist/peculiar/{p-DhdG07f8.js → p-CHnDlTqM.js} +2 -2
- package/dist/peculiar/p-CHnDlTqM.js.map +1 -0
- package/dist/peculiar/{p-CcANm2qm.system.js → p-CZwhKPgb.system.js} +2 -2
- package/dist/peculiar/p-CZwhKPgb.system.js.map +1 -0
- package/dist/peculiar/p-CbJQZ9Hh.system.js.map +1 -0
- package/dist/peculiar/{p-BBgwMHRZ.system.js → p-CdS84qJs.system.js} +5 -5
- package/dist/peculiar/p-CdS84qJs.system.js.map +1 -0
- package/dist/peculiar/{p-uFLk5hDd.system.js → p-CezfC5i1.system.js} +42 -42
- package/dist/peculiar/p-CezfC5i1.system.js.map +1 -0
- package/dist/peculiar/{p-t-yLLnfF.js → p-CjWRKsN-.js} +3 -3
- package/dist/peculiar/p-CjWRKsN-.js.map +1 -0
- package/dist/peculiar/{p-BCATfe_H.js → p-CutTi-2B.js} +4 -4
- package/dist/peculiar/p-CutTi-2B.js.map +1 -0
- package/dist/peculiar/p-CwgZaF40.js +6 -0
- package/dist/peculiar/p-CwgZaF40.js.map +1 -0
- package/dist/peculiar/{p-lNFxlG5A.js → p-D1eNnGDF.js} +4 -4
- package/dist/peculiar/p-D1eNnGDF.js.map +1 -0
- package/dist/peculiar/p-D2QB-8Q6.system.js.map +1 -1
- package/dist/peculiar/{p-BP2bmYR2.system.js → p-D8xU284r.system.js} +3 -3
- package/dist/peculiar/p-D8xU284r.system.js.map +1 -0
- package/dist/peculiar/p-DKl0YViA.system.js +6 -0
- package/dist/peculiar/p-DKl0YViA.system.js.map +1 -0
- package/dist/peculiar/{p-BisXzAqN.js → p-DMZr5ztF.js} +2 -2
- package/dist/peculiar/p-DMZr5ztF.js.map +1 -0
- package/dist/peculiar/{p-CKoxwzVA.system.js → p-DRvp86xt.system.js} +2 -2
- package/dist/peculiar/p-DRvp86xt.system.js.map +1 -0
- package/dist/peculiar/{p-DkAhB3Vy.js → p-DanjeXNk.js} +2 -2
- package/dist/peculiar/p-DanjeXNk.js.map +1 -0
- package/dist/peculiar/{p-B3myni_G.js → p-DrmgUhyv.js} +2 -2
- package/dist/peculiar/p-DrmgUhyv.js.map +1 -0
- package/dist/peculiar/p-F2F0McJX.js.map +1 -1
- package/dist/peculiar/p-ITVWR0oT.system.js.map +1 -0
- package/dist/peculiar/{p-DPre0WhP.system.js → p-J1t5v5N3.system.js} +4 -4
- package/dist/peculiar/p-J1t5v5N3.system.js.map +1 -0
- package/dist/peculiar/{p-BHBizfwo.js → p-JyD6URnB.js} +3 -3
- package/dist/peculiar/p-JyD6URnB.js.map +1 -0
- package/dist/peculiar/{p-D13P_msn.system.js.map → p-N3w4Sc5c.system.js.map} +1 -1
- package/dist/peculiar/{p-BOSH9vjy.system.js → p-NnCM1ETy.system.js} +3 -3
- package/dist/peculiar/p-NnCM1ETy.system.js.map +1 -0
- package/dist/peculiar/p-PeMaLTUD.js +142 -0
- package/dist/peculiar/p-PeMaLTUD.js.map +1 -0
- package/dist/peculiar/{p-CeKqQ13Z.js → p-ZT6tVIen.js} +4 -4
- package/dist/peculiar/p-ZT6tVIen.js.map +1 -0
- package/dist/peculiar/p-c8b3766a.entry.js +110 -0
- package/dist/peculiar/p-c8b3766a.entry.js.map +1 -0
- package/dist/peculiar/{p-1af57833.system.entry.js → p-de857304.system.entry.js} +2 -2
- package/dist/peculiar/p-de857304.system.entry.js.map +1 -0
- package/dist/peculiar/p-eziSY5IJ.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/peculiar/peculiar.esm.js.map +1 -1
- package/dist/peculiar/peculiar.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 +7 -6
- package/dist/types/components.d.ts +46 -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/stencil-public-runtime.d.ts +34 -6
- package/dist/types/utils/l10n.d.ts +6 -6
- package/dist/types/utils/read_file.d.ts +7 -7
- package/hydrate/index.d.ts +38 -24
- package/hydrate/index.js +4386 -3421
- package/hydrate/index.mjs +4385 -3422
- package/package.json +32 -33
- package/dist/cjs/actions-Dl4HXXlI.js.map +0 -1
- package/dist/cjs/app-globals-BOZYdIuK.js +0 -11
- package/dist/cjs/app-globals-BOZYdIuK.js.map +0 -1
- package/dist/cjs/arrow_top-DBMPHVlB.js.map +0 -1
- package/dist/cjs/button-C5jDF-CZ.js.map +0 -1
- package/dist/cjs/certification_request-DS5FED4F.js.map +0 -1
- package/dist/cjs/cross-pi7K0cHC.js.map +0 -1
- package/dist/cjs/download-D9skkVoT.js.map +0 -1
- package/dist/cjs/index-BO3rFndV.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/actions-DzoPRObK.js.map +0 -1
- package/dist/esm/app-globals-zVR349KA.js +0 -9
- package/dist/esm/app-globals-zVR349KA.js.map +0 -1
- package/dist/esm/arrow_top-CF9pv-tQ.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/cross-DdCuR1F2.js.map +0 -1
- package/dist/esm/download-Cqfc-Sxf.js.map +0 -1
- package/dist/esm/index-DDDrq3In.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/actions-DzoPRObK.js.map +0 -1
- package/dist/esm-es5/app-globals-zVR349KA.js +0 -5
- package/dist/esm-es5/app-globals-zVR349KA.js.map +0 -1
- package/dist/esm-es5/arrow_top-CF9pv-tQ.js.map +0 -1
- package/dist/esm-es5/button-Djn8UI82.js +0 -19
- 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/cross-DdCuR1F2.js.map +0 -1
- package/dist/esm-es5/download-Cqfc-Sxf.js.map +0 -1
- package/dist/esm-es5/index-DDDrq3In.js +0 -6
- package/dist/esm-es5/index-DDDrq3In.js.map +0 -1
- package/dist/esm-es5/link-BfDk078v.js +0 -12
- 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 +0 -110
- 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-B2YrZuK2.system.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-BBgwMHRZ.system.js.map +0 -1
- package/dist/peculiar/p-BCATfe_H.js.map +0 -1
- package/dist/peculiar/p-BFenL1ap.system.js +0 -6
- package/dist/peculiar/p-BFenL1ap.system.js.map +0 -1
- package/dist/peculiar/p-BHBizfwo.js.map +0 -1
- package/dist/peculiar/p-BOSH9vjy.system.js.map +0 -1
- package/dist/peculiar/p-BP2bmYR2.system.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-CeKqQ13Z.js.map +0 -1
- package/dist/peculiar/p-CttQwkXH.js.map +0 -1
- package/dist/peculiar/p-CwlxH4oM.system.js +0 -5
- package/dist/peculiar/p-CwlxH4oM.system.js.map +0 -1
- package/dist/peculiar/p-D5BWI7FK.system.js +0 -5
- package/dist/peculiar/p-D5BWI7FK.system.js.map +0 -1
- package/dist/peculiar/p-DDDrq3In.js +0 -6
- package/dist/peculiar/p-DDDrq3In.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 +0 -142
- package/dist/peculiar/p-DgcB4Nqx.system.js.map +0 -1
- package/dist/peculiar/p-DhdG07f8.js.map +0 -1
- package/dist/peculiar/p-Dk86_qlM.system.js.map +0 -1
- package/dist/peculiar/p-DkAhB3Vy.js.map +0 -1
- package/dist/peculiar/p-L1KL0R34.system.js.map +0 -1
- package/dist/peculiar/p-Wtz6WM17.js +0 -142
- package/dist/peculiar/p-Wtz6WM17.js.map +0 -1
- package/dist/peculiar/p-bafc3336.system.entry.js +0 -111
- 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
- package/dist/peculiar/p-zVR349KA.js +0 -5
- package/dist/peculiar/p-zVR349KA.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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,QAAQ,GAAG,KAAK,SAAS,IAAI,CAAC;AACpC,MAAM,SAAS,GAAG,GAAG,WAAW,UAAU,QAAQ,MAAM,WAAW,KAAK,WAAW,EAAE,CAAC;AACtF,MAAM,OAAO,GAAG,GAAG,WAAW,UAAU,WAAW,EAAE,CAAC;AACtD,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,UAAU,GAAG,MAAM,SAAS,IAAI,CAAC;AACvC,MAAM,YAAY,GAAG,QAAQ,SAAS,KAAK,SAAS,UAAU,SAAS,KAAK,SAAS,KAAK,CAAC;AAC3F,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,OAAO,GAAG,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC;AACnD,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,SAAS,UAAU,UAAU,KAAK,YAAY,QAAQ,SAAS,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC;AA8BrH;;GAEG;AACH,MAAM,OAAO,YAAY;IAShB,MAAM,CAAC,KAAK,CAAC,IAAY;QAC9B,OAAO,OAAO,IAAI,KAAK,QAAQ;eAC1B,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACzC,6CAA6C;QAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;QAC3C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAgB,EAAE,CAAC;QAE5B,IAAI,OAAO,GAA2B,IAAI,CAAC;QAC3C,0CAA0C;QAC1C,OAAO,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,8BAA8B;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;iBACtB,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,SAAS,GAAc;gBAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChB,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;aACpC,CAAC;YAEF,eAAe;YACf,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,UAAU,GAAqB,IAAI,CAAC;gBAExC,gDAAgD;gBAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,QAAQ;wBACR,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;wBACrE,CAAC;wBACD,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,gBAAgB;wBAChB,IAAI,UAAU,EAAE,CAAC;4BACf,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACrC,CAAC;wBACD,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBACD,kBAAkB;gBAClB,IAAI,UAAU,EAAE,CAAC;oBACf,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAoBM,MAAM,CAAC,MAAM,CAClB,OAAgE,EAChE,GAAY;QAEZ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,KAAK,EAAU,CAAC;YAEjC,IAAI,GAAG,EAAE,CAAC;gBACR,wBAAwB;gBACxB,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1B,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnD,MAAM,IAAI,SAAS,CAAC,gGAAgG,CAAC,CAAC;oBACxH,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC1B,IAAI,EAAE,GAAG;wBACT,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC;qBACtD,CAAC,CAAC,CAAC;gBACN,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;wBACzB,MAAM,IAAI,SAAS,CAAC,yFAAyF,CAAC,CAAC;oBACjH,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,YAAY,CAAC,GAA0B;;QACpD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEnD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,cAAc,aAAa,OAAO,CAAC,CAAC;QAE7C,IAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAC;YACxB,gDAAgD;YAChD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,KAAK,EAAU,CAAC;QAE7B,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;gBAChC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC/C,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAElB,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,YAAY,aAAa,OAAO,CAAC,CAAC;QAE3C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;;AA3La,2BAAc,GAAG,aAAa,CAAC;AAE/B,mBAAM,GAAG,KAAK,CAAC;AAEf,kCAAqB,GAAG,qBAAqB,CAAC;AAE9C,oCAAuB,GAAG,uBAAuB,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 { 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":"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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 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"]}
|