mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2025-02-22 19:05:51 +03:00
1 line
183 KiB
Plaintext
1 line
183 KiB
Plaintext
{"version":3,"file":"crypto-pro-js.js","mappings":"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,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,qDAAqD;YACrD,IAAI,aAAa,EAAE;gBACjB,MAAM,cAAc,GAAG,2BAAe,CAAC,aAAa,CAAC,CAAC;gBAEtD,IAAI,cAAc,EAAE;oBAClB,KAAK,GAAG,cAAc,CAAC;oBACvB,YAAY,GAAG,IAAI,CAAC;iBACrB;aACF;YAED,MAAM,cAAc,SAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,0CACnG,WAAW,CAAC;YAEhB,IAAI,cAAc,EAAE;gBAClB,KAAK,GAAG,cAAc,CAAC;gBACvB,YAAY,GAAG,IAAI,CAAC;aACrB;YAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;;;;;;;;;;;AClDF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB,WAAW,UAAU,YAAY,aAAa;AACtG,gFAAgF,aAAa,mBAAmB,uBAAuB,uBAAuB,cAAc,mBAAmB,YAAY;AAC3M,qEAAqE,iBAAiB,yBAAyB,WAAW;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;UCvuBD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UEtBA;UACA;UACA;UACA","sources":["webpack://cryptoPro/webpack/universalModuleDefinition","webpack://cryptoPro/./api/addAttachedSignature.ts","webpack://cryptoPro/./api/addDetachedSignature.ts","webpack://cryptoPro/./api/certificate/certificate.ts","webpack://cryptoPro/./api/certificate/exportBase64.ts","webpack://cryptoPro/./api/certificate/getAlgorithm.ts","webpack://cryptoPro/./api/certificate/getCadesProp.ts","webpack://cryptoPro/./api/certificate/getDecodedExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getInfo.ts","webpack://cryptoPro/./api/certificate/hasExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/index.ts","webpack://cryptoPro/./api/certificate/isValid.ts","webpack://cryptoPro/./api/createAttachedSignature.ts","webpack://cryptoPro/./api/createDetachedSignature.ts","webpack://cryptoPro/./api/createHash.ts","webpack://cryptoPro/./api/createXMLSignature.ts","webpack://cryptoPro/./api/getAllCertificates.ts","webpack://cryptoPro/./api/getAllContainerCertificates.ts","webpack://cryptoPro/./api/getAllUserCertificates.ts","webpack://cryptoPro/./api/getCertificate.ts","webpack://cryptoPro/./api/getCertificates.ts","webpack://cryptoPro/./api/getContainerCertificates.ts","webpack://cryptoPro/./api/getCspVersion.ts","webpack://cryptoPro/./api/getPluginVersion.ts","webpack://cryptoPro/./api/getSystemInfo.ts","webpack://cryptoPro/./api/getUserCertificates.ts","webpack://cryptoPro/./api/index.ts","webpack://cryptoPro/./api/isValidSystemSetup.ts","webpack://cryptoPro/./constants/cades-constants.ts","webpack://cryptoPro/./constants/index.ts","webpack://cryptoPro/./constants/issuer-tags-translations.ts","webpack://cryptoPro/./constants/oids-dictionary.ts","webpack://cryptoPro/./constants/subject-tags-translations.ts","webpack://cryptoPro/./crypto-pro-js.ts","webpack://cryptoPro/./helpers/_afterPluginsLoaded.ts","webpack://cryptoPro/./helpers/_extractCommonName.ts","webpack://cryptoPro/./helpers/_extractMeaningfulErrorMessage.ts","webpack://cryptoPro/./helpers/_generateCadesFn.ts","webpack://cryptoPro/./helpers/_getCadesCert.ts","webpack://cryptoPro/./helpers/_getCadesContainerCert.ts","webpack://cryptoPro/./helpers/_getCadesUserCert.ts","webpack://cryptoPro/./helpers/_getDateObj.ts","webpack://cryptoPro/./helpers/_isSupportedCSPVersion.ts","webpack://cryptoPro/./helpers/_isSupportedCadesVersion.ts","webpack://cryptoPro/./helpers/_parseCertInfo.ts","webpack://cryptoPro/./vendor/cadesplugin_api.js","webpack://cryptoPro/webpack/bootstrap","webpack://cryptoPro/webpack/before-startup","webpack://cryptoPro/webpack/startup","webpack://cryptoPro/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cryptoPro\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cryptoPro\"] = factory();\n\telse\n\t\troot[\"cryptoPro\"] = factory();\n})(self, () => {\nreturn ","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param signedMessage - подписанное сообщение\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const addAttachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function addAttachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let messageBase64;\r\n\r\n try {\r\n messageBase64 = Buffer.from(signedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_Content(messageBase64));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));\r\n signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param signedMessage - подписанное сообщение\r\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const addDetachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function addDetachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesHashedData;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)\r\n );\r\n signature =\r\n __cadesAsyncToken__ +\r\n cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { ISSUER_TAGS_TRANSLATIONS, SUBJECT_TAGS_TRANSLATIONS } from '../../constants';\r\nimport { TagTranslation } from '../../helpers/_parseCertInfo';\r\nimport { exportBase64 } from './exportBase64';\r\nimport { getAlgorithm } from './getAlgorithm';\r\nimport { getCadesProp } from './getCadesProp';\r\nimport { getDecodedExtendedKeyUsage, ExtendedKeysTranslations } from './getDecodedExtendedKeyUsage';\r\nimport { getExtendedKeyUsage } from './getExtendedKeyUsage';\r\nimport { getInfo } from './getInfo';\r\nimport { hasExtendedKeyUsage } from './hasExtendedKeyUsage';\r\nimport { isValid } from './isValid';\r\n\r\nexport type CadesCertificate = any;\r\n\r\nexport class Certificate {\r\n constructor(\r\n public _cadesCertificate: CadesCertificate,\r\n public name: string,\r\n public issuerName: string,\r\n public subjectName: string,\r\n public thumbprint: string,\r\n public validFrom: string,\r\n public validTo: string,\r\n ) {}\r\n\r\n public getOwnerInfo(): Promise<TagTranslation[]> {\r\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\r\n }\r\n\r\n public getIssuerInfo(): Promise<TagTranslation[]> {\r\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\r\n }\r\n\r\n public getExtendedKeyUsage(): Promise<string[]> {\r\n return getExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getDecodedExtendedKeyUsage(): Promise<ExtendedKeysTranslations> {\r\n return getDecodedExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getAlgorithm(): Promise<string> {\r\n return getAlgorithm.call(this);\r\n }\r\n\r\n public getCadesProp(propName): Promise<any> {\r\n return getCadesProp.call(this, propName);\r\n }\r\n\r\n public isValid(): Promise<boolean> {\r\n return isValid.call(this);\r\n }\r\n\r\n public exportBase64(): Promise<string> {\r\n return exportBase64.call(this);\r\n }\r\n\r\n public hasExtendedKeyUsage(oids): Promise<boolean> {\r\n return hasExtendedKeyUsage.call(this, oids);\r\n }\r\n}\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Экспортирует сертификат в формате base64\r\n *\r\n * @returns сертификат в формате base64\r\n */\r\nexport const exportBase64 = _afterPluginsLoaded(function (): string {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function exportBase64(): string {\r\n let base64: string;\r\n\r\n try {\r\n base64 = __cadesAsyncToken__ + cadesCertificate.Export(0);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при экспорте сертификата');\r\n }\r\n\r\n return base64;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\ninterface AlgorithmInfo {\r\n algorithm: string;\r\n oid: string;\r\n}\r\n\r\n/**\r\n * Возвращает информацию об алгоритме сертификата\r\n *\r\n * @returns информацию об алгоритме и его OID'е\r\n */\r\nexport const getAlgorithm = _afterPluginsLoaded(function (): AlgorithmInfo {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getAlgorithm(): AlgorithmInfo {\r\n const algorithmInfo: AlgorithmInfo = {\r\n algorithm: null,\r\n oid: null,\r\n };\r\n let cadesPublicKey;\r\n\r\n try {\r\n cadesPublicKey = __cadesAsyncToken__ + cadesCertificate.PublicKey();\r\n cadesPublicKey = __cadesAsyncToken__ + cadesPublicKey.Algorithm;\r\n algorithmInfo.algorithm = __cadesAsyncToken__ + cadesPublicKey.FriendlyName;\r\n algorithmInfo.oid = __cadesAsyncToken__ + cadesPublicKey.Value;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении алгоритма');\r\n }\r\n\r\n return algorithmInfo;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Возвращает указанное внутренее свойство у сертификата в формате Cades\r\n *\r\n * @param propName = наименование свойства\r\n * @returns значение запрошенного свойства\r\n */\r\nexport const getCadesProp = _afterPluginsLoaded(function (propName: string): any {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getCadesProp() {\r\n let propertyValue;\r\n\r\n try {\r\n propertyValue = __cadesAsyncToken__ + cadesCertificate[propName];\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при обращении к свойству сертификата');\r\n }\r\n\r\n return propertyValue;\r\n }),\r\n );\r\n});\r\n","import { OIDS_DICTIONARY } from '../../constants';\r\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { Certificate } from './certificate';\r\n\r\nexport interface ExtendedKeysTranslations {\r\n [key: string]: string | null;\r\n}\r\n\r\n/**\r\n * Возвращает расшифрованные ОИД'ы сертификата\r\n *\r\n * @returns словарь расшифрованных ОИД'ов\r\n */\r\nexport const getDecodedExtendedKeyUsage = _afterPluginsLoaded(async function (): Promise<ExtendedKeysTranslations> {\r\n const certificateOids = await (this as Certificate).getExtendedKeyUsage();\r\n\r\n return certificateOids.reduce(\r\n (decodedOids, oidCode) => ({\r\n ...decodedOids,\r\n [oidCode]: OIDS_DICTIONARY[oidCode] || null,\r\n }),\r\n {},\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Возвращает ОИД'ы сертификата\r\n *\r\n * @returns список ОИД'ов\r\n */\r\nexport const getExtendedKeyUsage = _afterPluginsLoaded(function (): string[] {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getExtendedKeyUsage(): string[] {\r\n const OIDS: string[] = [];\r\n let count: any;\r\n\r\n try {\r\n count = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\r\n count = __cadesAsyncToken__ + count.EKUs;\r\n count = __cadesAsyncToken__ + count.Count;\r\n\r\n if (count > 0) {\r\n while (count > 0) {\r\n let cadesExtendedKeyUsage;\r\n\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.EKUs;\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.Item(count);\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.OID;\r\n\r\n OIDS.push(cadesExtendedKeyUsage);\r\n\r\n count--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || \"Ошибка при получении ОИД'ов\");\r\n }\r\n\r\n return OIDS;\r\n }),\r\n );\r\n});\r\n","import { TagsTranslations } from '../../constants/tags-translations';\r\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { _parseCertInfo, TagTranslation } from '../../helpers/_parseCertInfo';\r\nimport { getCadesProp } from './getCadesProp';\r\n\r\n/**\r\n * Возвращает расшифрованную информацию о сертификате из указанного свойства по тэгам\r\n *\r\n * @param tags = словарь\r\n * @param entitiesPath = путь к разбираемой сущности\r\n * @returns расшифрованная информация по отдельным тэгам\r\n */\r\nexport const getInfo = _afterPluginsLoaded(async function (\r\n tags: TagsTranslations[],\r\n entitiesPath: string,\r\n): Promise<TagTranslation[]> {\r\n let entities: string;\r\n\r\n try {\r\n entities = await getCadesProp.call(this, entitiesPath);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при извлечении информации из сертификата');\r\n }\r\n\r\n return _parseCertInfo(tags, entities);\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Проверяет наличие ОИД'а (ОИД'ов) у сертификата\r\n *\r\n * @param oids - ОИД'ы для проверки\r\n * @returns флаг наличия ОИД'ов у сертификата\r\n */\r\nexport const hasExtendedKeyUsage = _afterPluginsLoaded(async function (oids: string | string[]): Promise<boolean> {\r\n const certOids = await (this as Certificate).getExtendedKeyUsage();\r\n\r\n let result: boolean;\r\n\r\n if (Array.isArray(oids)) {\r\n result = oids.every((oidToCheck) => certOids.some((certOid) => certOid === oidToCheck));\r\n } else {\r\n result = certOids.some((certOid) => certOid === oids);\r\n }\r\n\r\n return result;\r\n});\r\n","export * from './certificate';\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Проверяет действительность сертификата\r\n *\r\n * @returns флаг валидности\r\n */\r\nexport const isValid = _afterPluginsLoaded(function (): boolean {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function isValid() {\r\n let isValid;\r\n\r\n try {\r\n isValid = __cadesAsyncToken__ + cadesCertificate.IsValid();\r\n isValid = __cadesAsyncToken__ + isValid.Result;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при проверке сертификата');\r\n }\r\n\r\n return Boolean(isValid);\r\n }),\r\n );\r\n});\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Создает присоединенную подпись сообщения по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param message - подписываемое сообщение\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const createAttachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createAttachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let messageBase64;\r\n\r\n try {\r\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_Content(messageBase64));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Создает отсоединенную подпись хеша по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const createDetachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, messageHash: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createDetachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesHashedData;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature =\r\n __cadesAsyncToken__ +\r\n cadesSignedData.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\n/**\r\n * Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит\r\n * https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B8%D0%B1%D0%BE%D0%B3_(%D1%85%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F)\r\n *\r\n * @param unencryptedMessage - сообщение для хеширования\r\n *\r\n * @returns хеш\r\n */\r\nexport const createHash = _afterPluginsLoaded(\r\n async (unencryptedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function createHash(): string {\r\n const cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n let messageBase64;\r\n let hash;\r\n\r\n try {\r\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации хэширования');\r\n }\r\n\r\n try {\r\n hash = __cadesAsyncToken__ + cadesHashedData.Value;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при создании хэша');\r\n }\r\n\r\n return hash;\r\n }),\r\n );\r\n },\r\n);\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\n\r\n/**\r\n * Создает XML подпись для документа в формате XML\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param unencryptedMessage - подписываемое сообщение в формате XML\r\n * @returns подпись\r\n */\r\nexport const createXMLSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, unencryptedMessage: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createXMLSignature(): string {\r\n let cadesSigner;\r\n let cadesSignedXML;\r\n\r\n try {\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n cadesSignedXML = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.SignedXML');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n try {\r\n const signatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';\r\n const digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';\r\n\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_CheckCertificate(true));\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_Content(unencryptedMessage));\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesSignedXML.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)\r\n );\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_SignatureMethod(signatureMethod));\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_DigestMethod(digestMethod));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature = __cadesAsyncToken__ + cadesSignedXML.Sign(cadesSigner);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getAllUserCertificates } from './getAllUserCertificates';\r\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\r\n\r\nlet certificatesCache: Certificate[];\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllCertificates = _afterPluginsLoaded(\r\n async (resetCache: boolean = false): Promise<Certificate[]> => {\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n try {\r\n availableCertificates = await getAllUserCertificates(resetCache);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n availableCertificates = [];\r\n }\r\n\r\n try {\r\n const containerAllCertificates: Certificate[] = await getAllContainerCertificates(resetCache);\r\n\r\n if (!availableCertificates) {\r\n availableCertificates = containerAllCertificates;\r\n } else {\r\n let containerAllCertificatesCount = containerAllCertificates.length - 1;\r\n let foundAvailableCertificate;\r\n\r\n while (containerAllCertificatesCount) {\r\n foundAvailableCertificate = availableCertificates.find(\r\n (cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint,\r\n );\r\n\r\n if (!foundAvailableCertificate) {\r\n availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);\r\n }\r\n\r\n containerAllCertificatesCount--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n if (!availableCertificates) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n certificatesCache = availableCertificates;\r\n\r\n return certificatesCache;\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\r\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllContainerCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getAllContainerCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllUserCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getAllUserCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getCertificates } from './getCertificates';\r\nimport { getAllCertificates } from './getAllCertificates';\r\n\r\n/**\r\n * Возвращает сертификат по отпечатку\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param validOnly - проверять сертификаты по дате и наличию приватного ключа\r\n * @returns сертификат\r\n */\r\nexport const getCertificate = _afterPluginsLoaded(\r\n async (thumbprint: string, validOnly: boolean = true): Promise<Certificate> => {\r\n if (!thumbprint) {\r\n throw new Error('Отпечаток не указан');\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n if (validOnly) {\r\n availableCertificates = await getCertificates();\r\n } else {\r\n availableCertificates = await getAllCertificates();\r\n }\r\n\r\n const foundCertificate: Certificate = availableCertificates.find((cert) => cert.thumbprint === thumbprint);\r\n\r\n if (!foundCertificate) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден`);\r\n }\r\n\r\n return foundCertificate;\r\n },\r\n);\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getUserCertificates } from './getUserCertificates';\r\nimport { getContainerCertificates } from './getContainerCertificates';\r\nimport { getAllUserCertificates } from './getAllUserCertificates';\r\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\r\n\r\nlet certificatesCache: Certificate[];\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getCertificates = _afterPluginsLoaded(\r\n async (resetCache: boolean = false): Promise<Certificate[]> => {\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n try {\r\n availableCertificates = await getUserCertificates(resetCache);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n availableCertificates = [];\r\n }\r\n\r\n try {\r\n const containerCertificates: Certificate[] = await getContainerCertificates(resetCache);\r\n\r\n if (!availableCertificates) {\r\n availableCertificates = containerCertificates;\r\n } else {\r\n let containerCertificatesCount = containerCertificates.length - 1;\r\n let foundAvailableCertificate;\r\n\r\n while (containerCertificatesCount) {\r\n foundAvailableCertificate = availableCertificates.find(\r\n (cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint,\r\n );\r\n\r\n if (!foundAvailableCertificate) {\r\n availableCertificates.push(containerCertificates[containerCertificatesCount]);\r\n }\r\n\r\n containerCertificatesCount--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n if (!availableCertificates) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n certificatesCache = availableCertificates;\r\n\r\n return certificatesCache;\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { CAPICOM_PROPID_KEY_PROV_INFO } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\r\n * Возвращает список сертификатов, доступных пользователю в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getContainerCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getContainerCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n\r\n if (cadesCertificates) {\r\n cadesCertificates =\r\n __cadesAsyncToken__ + cadesCertificates.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID);\r\n\r\n /**\r\n * Не рассматриваются сертификаты, в которых отсутствует закрытый ключ\r\n * или не действительны на данный момент\r\n */\r\n cadesCertificates =\r\n __cadesAsyncToken__ +\r\n cadesCertificates.Find(\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,\r\n CAPICOM_PROPID_KEY_PROV_INFO,\r\n );\r\n\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о CSP\r\n */\r\nexport const getCspVersion = _afterPluginsLoaded((): string => {\r\n let cspVersion = null;\r\n\r\n return eval(\r\n _generateCadesFn(function getCspVersion(): string {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\r\n\r\n cspVersion = __cadesAsyncToken__ + cspVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении версии системы');\r\n }\r\n\r\n return cspVersion;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о плагине\r\n */\r\nexport const getPluginVersion = _afterPluginsLoaded((): string => {\r\n let cadesVersion = null;\r\n\r\n return eval(\r\n _generateCadesFn(function getPluginVersion(): string {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\r\n\r\n if (!cadesVersion) {\r\n cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\r\n }\r\n\r\n cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о плагине');\r\n }\r\n\r\n return cadesVersion;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nexport interface SystemInfo {\r\n cadesVersion: string;\r\n cspVersion: string;\r\n}\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о CSP и плагине\r\n */\r\nexport const getSystemInfo = _afterPluginsLoaded(\r\n (): SystemInfo => {\r\n const sysInfo = {\r\n cadesVersion: null,\r\n cspVersion: null,\r\n };\r\n\r\n return eval(\r\n _generateCadesFn(function getSystemInfo(): SystemInfo {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\r\n sysInfo.cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\r\n\r\n if (!sysInfo.cadesVersion) {\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\r\n }\r\n\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + sysInfo.cadesVersion.toString();\r\n sysInfo.cspVersion = __cadesAsyncToken__ + sysInfo.cspVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о системе');\r\n }\r\n\r\n return sysInfo;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { CAPICOM_PROPID_KEY_PROV_INFO } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getUserCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getUserCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n\r\n if (cadesCertificates) {\r\n cadesCertificates =\r\n __cadesAsyncToken__ + cadesCertificates.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID);\r\n\r\n /**\r\n * Не рассматриваются сертификаты, в которых отсутствует закрытый ключ\r\n * или не действительны на данный момент\r\n */\r\n cadesCertificates =\r\n __cadesAsyncToken__ +\r\n cadesCertificates.Find(\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,\r\n CAPICOM_PROPID_KEY_PROV_INFO,\r\n );\r\n\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","export * from './getCertificate';\r\nexport * from './getUserCertificates';\r\nexport * from './getAllUserCertificates';\r\nexport * from './getContainerCertificates';\r\nexport * from './getAllContainerCertificates';\r\nexport * from './getCertificates';\r\nexport * from './getAllCertificates';\r\nexport * from './getSystemInfo';\r\nexport * from './isValidSystemSetup';\r\nexport * from './createXMLSignature';\r\nexport * from './createDetachedSignature';\r\nexport * from './addDetachedSignature';\r\nexport * from './createAttachedSignature';\r\nexport * from './addAttachedSignature';\r\nexport * from './createHash';\r\nexport * from './certificate';\r\nexport * from './getCspVersion';\r\nexport * from './getPluginVersion';\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { _isSupportedCadesVersion } from '../helpers/_isSupportedCadesVersion';\r\nimport { _isSupportedCSPVersion } from '../helpers/_isSupportedCSPVersion';\r\nimport { getSystemInfo, SystemInfo } from './getSystemInfo';\r\n\r\n/**\r\n * Проверяет корректность настроек ЭП на машине\r\n *\r\n * @returns флаг корректности настроек\r\n */\r\nexport const isValidSystemSetup = _afterPluginsLoaded(\r\n async (): Promise<boolean> => {\r\n let systemInfo: SystemInfo;\r\n\r\n try {\r\n systemInfo = await getSystemInfo();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Настройки ЭП на данной машине не верны');\r\n }\r\n\r\n if (!_isSupportedCadesVersion(systemInfo.cadesVersion)) {\r\n throw new Error('Не поддерживаемая версия плагина');\r\n }\r\n\r\n if (!_isSupportedCSPVersion(systemInfo.cspVersion)) {\r\n throw new Error('Не поддерживаемая версия CSP');\r\n }\r\n\r\n return true;\r\n },\r\n);\r\n","export const CADESCOM_ATTRIBUTE_OTHER = -1;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\nexport const CADESCOM_AllowNoOutstandingRequest = 1;\r\nexport const CADESCOM_AllowNone = 0;\r\nexport const CADESCOM_AllowUntrustedCertificate = 2;\r\nexport const CADESCOM_AllowUntrustedRoot = 4;\r\nexport const CADESCOM_BASE64_TO_BINARY = 0x01;\r\nexport const CADESCOM_CADES_BES = 1;\r\nexport const CADESCOM_CADES_DEFAULT = 0;\r\nexport const CADESCOM_CADES_T = 5;\r\nexport const CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\r\nexport const CADESCOM_CONTAINER_STORE = 100;\r\nexport const CADESCOM_CURRENT_USER_STORE = 2;\r\nexport const CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\r\nexport const CADESCOM_DISPLAY_DATA_CONTENT = 1;\r\nexport const CADESCOM_DISPLAY_DATA_NONE = 0;\r\nexport const CADESCOM_ENCODE_ANY = -1;\r\nexport const CADESCOM_ENCODE_BASE64 = 0;\r\nexport const CADESCOM_ENCODE_BINARY = 1;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\r\nexport const CADESCOM_HASH_ALGORITHM_MD2 = 1;\r\nexport const CADESCOM_HASH_ALGORITHM_MD4 = 2;\r\nexport const CADESCOM_HASH_ALGORITHM_MD5 = 3;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA1 = 0;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\r\nexport const CADESCOM_LOCAL_MACHINE_STORE = 1;\r\nexport const CADESCOM_PKCS7_TYPE = 65535;\r\nexport const CADESCOM_STRING_TO_UCS2LE = 0x00;\r\nexport const CADESCOM_SkipInstallToStore = 268435456;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\r\nexport const CAPICOM_ACTIVE_DIRECTORY_USER_STORE = 3;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\nexport const CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\r\nexport const CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\r\nexport const CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\r\nexport const CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\r\nexport const CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\r\nexport const CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\r\nexport const CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\r\nexport const CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\r\nexport const CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\nexport const CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\r\nexport const CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\r\nexport const CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\r\nexport const CAPICOM_CURRENT_USER_STORE = 2;\r\nexport const CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\r\nexport const CAPICOM_EKU_CLIENT_AUTH = 2;\r\nexport const CAPICOM_EKU_OTHER = 0;\r\nexport const CAPICOM_EKU_SMARTCARD_LOGON = 5;\r\nexport const CAPICOM_LOCAL_MACHINE_STORE = 1;\r\nexport const CAPICOM_MEMORY_STORE = 0;\r\nexport const CAPICOM_MY_STORE = 'My';\r\nexport const CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\r\nexport const CAPICOM_OID_OTHER = 0;\r\nexport const CAPICOM_PROPID_ACCESS_STATE = 14;\r\nexport const CAPICOM_PROPID_ARCHIVED = 19;\r\nexport const CAPICOM_PROPID_ARCHIVED_KEY_HASH = 65;\r\nexport const CAPICOM_PROPID_AUTO_ENROLL = 21;\r\nexport const CAPICOM_PROPID_CROSS_CERT_DIST_POINTS = 23;\r\nexport const CAPICOM_PROPID_CTL_USAGE = 9;\r\nexport const CAPICOM_PROPID_DATE_STAMP = 27;\r\nexport const CAPICOM_PROPID_DESCRIPTION = 13;\r\nexport const CAPICOM_PROPID_EFS = 17;\r\nexport const CAPICOM_PROPID_ENHKEY_USAGE = 9;\r\nexport const CAPICOM_PROPID_ENROLLMENT = 26;\r\nexport const CAPICOM_PROPID_EXTENDED_ERROR_INFO = 30;\r\nexport const CAPICOM_PROPID_FIRST_RESERVED = 66;\r\nexport const CAPICOM_PROPID_FIRST_USER = 0x00008000;\r\nexport const CAPICOM_PROPID_FORTEZZA_DATA = 18;\r\nexport const CAPICOM_PROPID_FRIENDLY_NAME = 11;\r\nexport const CAPICOM_PROPID_HASH_PROP = 3;\r\nexport const CAPICOM_PROPID_IE30_RESERVED = 7;\r\nexport const CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH = 24;\r\nexport const CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH = 28;\r\nexport const CAPICOM_PROPID_KEY_CONTEXT = 5;\r\nexport const CAPICOM_PROPID_KEY_IDENTIFIER = 20;\r\nexport const CAPICOM_PROPID_KEY_PROV_HANDLE = 1;\r\nexport const CAPICOM_PROPID_KEY_PROV_INFO = 2;\r\nexport const CAPICOM_PROPID_KEY_SPEC = 6;\r\nexport const CAPICOM_PROPID_LAST_RESERVED = 0x00007fff;\r\nexport const CAPICOM_PROPID_LAST_USER = 0x0000ffff;\r\nexport const CAPICOM_PROPID_MD5_HASH = 4;\r\nexport const CAPICOM_PROPID_NEXT_UPDATE_LOCATION = 10;\r\nexport const CAPICOM_PROPID_PUBKEY_ALG_PARA = 22;\r\nexport const CAPICOM_PROPID_PUBKEY_HASH_RESERVED = 8;\r\nexport const CAPICOM_PROPID_PVK_FILE = 12;\r\nexport const CAPICOM_PROPID_RENEWAL = 64;\r\nexport const CAPICOM_PROPID_SHA1_HASH = 3;\r\nexport const CAPICOM_PROPID_SIGNATURE_HASH = 15;\r\nexport const CAPICOM_PROPID_SMART_CARD_DATA = 16;\r\nexport const CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH = 29;\r\nexport const CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH = 25;\r\nexport const CAPICOM_PROPID_UNKNOWN = 0;\r\nexport const CAPICOM_SMART_CARD_USER_STORE = 4;\r\nexport const CAPICOM_STORE_OPEN_EXISTING_ONLY = 128;\r\nexport const CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = 256;\r\nexport const CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\r\nexport const CAPICOM_STORE_OPEN_READ_ONLY = 0;\r\nexport const CAPICOM_STORE_OPEN_READ_WRITE = 1;\r\nexport const CHECK_NONE = 0;\r\nexport const CHECK_OFFLINE_REVOCATION_STATUS = 16;\r\nexport const CHECK_ONLINE_REVOCATION_STATUS = 8;\r\nexport const CHECK_SIGNATURE_VALIDITY = 4;\r\nexport const CHECK_TIME_VALIDITY = 2;\r\nexport const CHECK_TRUSTED_ROOT = 1;\r\nexport const LOG_LEVEL_DEBUG = 4;\r\nexport const LOG_LEVEL_ERROR = 1;\r\nexport const LOG_LEVEL_INFO = 2;\r\nexport const TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144;\r\nexport const TRUST_CTL_IS_NOT_TIME_VALID = 131072;\r\nexport const TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288;\r\nexport const TRUST_IS_CYCLIC = 128;\r\nexport const TRUST_IS_NOT_SIGNATURE_VALID = 8;\r\nexport const TRUST_IS_NOT_TIME_NESTED = 2;\r\nexport const TRUST_IS_NOT_TIME_VALID = 1;\r\nexport const TRUST_IS_NOT_VALID_FOR_USAGE = 16;\r\nexport const TRUST_IS_PARTIAL_CHAIN = 65536;\r\nexport const TRUST_IS_REVOKED = 4;\r\nexport const TRUST_IS_UNTRUSTED_ROOT = 32;\r\nexport const TRUST_REVOCATION_STATUS_UNKNOWN = 64;\r\nexport const XmlDsigGost3410Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411';\r\nexport const XmlDsigGost3410UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411';\r\nexport const XmlDsigGost3411Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411';\r\nexport const XmlDsigGost3411UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr3411';\r\n","export * from './cades-constants';\r\nexport * from './issuer-tags-translations';\r\nexport * from './oids-dictionary';\r\nexport * from './subject-tags-translations';\r\n","import { TagsTranslations } from './tags-translations';\r\n\r\nexport const ISSUER_TAGS_TRANSLATIONS: TagsTranslations[] = [\r\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\r\n { possibleNames: ['CN', 'commonName'], translation: 'Удостоверяющий центр' },\r\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\r\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\r\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\r\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\r\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Тип' },\r\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\r\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\r\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\r\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\r\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\r\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\r\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\r\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\r\n];\r\n","export const OIDS_DICTIONARY = {\r\n '1.2.643.2.2.34.6': 'Пользователь Центра Регистрации',\r\n '1.2.643.2.39.1.1': 'Использование в программных продуктах системы \"1С:Предприятие 8\"',\r\n '1.2.643.3.131.1.1': 'ИНН',\r\n '1.2.643.100.4': 'ИНН организации',\r\n '1.2.643.100.1': 'ОГРН',\r\n '1.2.643.100.5': 'ОГРНИП',\r\n '1.2.643.100.3': 'СНИЛС',\r\n '1.2.643.3.141.1.1': 'РНС ФСС',\r\n '1.2.643.3.141.1.2': 'КП ФСС',\r\n '1.2.643.3.2.100.65.13.11': 'Использование в системе АИС \"Госзакупки\" Сахалинской области.',\r\n '1.2.643.3.8.100.1': 'Сертификат типа \"ekey-ГОСТ\"',\r\n '1.2.643.3.8.100.1.1': 'Общее использование в системах ИОК без права заверения финансовых документов',\r\n '1.2.643.3.8.100.1.10':\r\n 'Для участия в электронных торгах и подписания государственного контракта в информационных системах Тендерного комитета города Москвы уполномоченными лицами участников размещения государственного заказа города Москвы',\r\n '1.2.643.3.8.100.1.11':\r\n 'Подписание электронных документов в автоматизированной информационной системе размещения государственного и муниципального заказа Саратовской области',\r\n '1.2.643.3.8.100.1.12': 'Использование в системе государственного заказа Иркутской области',\r\n '1.2.643.3.8.100.1.13':\r\n 'Использование в электронной торговой площадке агентства государственного заказа Красноярского края',\r\n '1.2.643.3.8.100.1.14': 'Использование в электронной торговой площадке \"Тендер\"',\r\n '1.2.643.3.8.100.1.2': 'Передача отчетности по ТКС',\r\n '1.2.643.3.8.100.1.3': 'Оформление взаимных обязательств, соглашений, договоров, актов и т.п.',\r\n '1.2.643.3.8.100.1.4': 'Внутрикорпоративный документооборот',\r\n '1.2.643.3.8.100.1.5': 'Использование в системах электронной торговли',\r\n '1.2.643.3.8.100.1.6': 'Использование в торгово-закупочной системе \"ЭЛЕКТРА\"',\r\n '1.2.643.3.8.100.1.7': 'Использование в системе Портал государственных закупок Ставропольского края.',\r\n '1.2.643.3.8.100.1.8': 'Использование в Единой системе электронной торговли B2B-Center и B2G.',\r\n '1.2.643.3.8.100.1.9':\r\n 'Для участия в электронных торгах и подписания государственного контракта в электронной площадке ОАО «ЕЭТП» уполномоченными лицами участников размещения государственного или муниципального заказа',\r\n '1.2.643.5.1.24.2.1.3':\r\n 'Формирование документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\r\n '1.2.643.5.1.24.2.1.3.1':\r\n 'Формирование кадастровым инженером документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\r\n '1.2.643.5.1.24.2.2.2': 'Формирование документов как результата оказания услуги со стороны органов регистрации прав',\r\n '1.2.643.5.1.24.2.2.3':\r\n 'Формирование документов для получения государственных услуг в сфере государственной регистрации прав на недвижимое имущество и сделок с ним со стороны заявителя',\r\n '1.2.643.6.2.1.7.1':\r\n 'Использование единоличным исполнительным органом юридического лица или уполномоченными представителями юридического лица в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских и иных прав и обязанностей в сфере негосударственного пенсионного обеспечения, негосударственного пенсионного страхования, в сфере деятельности паевых инвестиционных фондов, акционерных инвестиционных фондов, профессиональных участников рынка ценных бумаг, а также связанной с обслуживанием указанной деятельности услуг кредитных и иных организаций',\r\n '1.2.643.6.2.1.7.2':\r\n 'Использование физическим лицом в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских прав и обязанностей в отношении инвестиционных паев паевых инвестиционных фондов, в том числе отношения, связанные с учетом и/или фиксацией прав на инвестиционные паи паевых инвестиционных фондов',\r\n '1.2.643.6.3':\r\n 'Использование в электронных торговых системах и в программном обеспечении, связанным с обменом электронных сообщений',\r\n '1.2.643.6.3.1.1': 'Использование на электронных площадок отобранных для проведения аукционах в электронной форме',\r\n '1.2.643.6.3.1.2.1': 'Тип участника - Юридическое лицо',\r\n '1.2.643.6.3.1.2.2': 'Тип участника - Физическое лицо',\r\n '1.2.643.6.3.1.2.3': 'Тип участника - Индивидуальный предприниматель',\r\n '1.2.643.6.3.1.3.1': 'Участник размещения заказа',\r\n '1.2.643.6.3.1.4.1': 'Администратор организации',\r\n '1.2.643.6.3.1.4.2': 'Уполномоченный специалист',\r\n '1.2.643.6.3.1.4.3': 'Специалист с правом подписи контракта',\r\n '1.2.840.113549.1.9.2': 'Неструктурированное имя',\r\n '1.3.6.1.4.1.24138.1.1.8.1': 'Обеспечение юридической значимости в Системе \"Электронная Торговая Площадка\"',\r\n '1.3.6.1.4.1.29919.21': 'Использование в системе Портал государственных закупок Ростовской области \"Рефери\".',\r\n '1.3.6.1.5.5.7.3.2': 'Проверка подлинности клиента',\r\n '1.3.6.1.5.5.7.3.4': 'Защищенная электронная почта',\r\n '1.3.643.3.8.100.15': 'Использование в ЭТП \"uTender\"',\r\n};\r\n","import { TagsTranslations } from './tags-translations';\r\n\r\nexport const SUBJECT_TAGS_TRANSLATIONS: TagsTranslations[] = [\r\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\r\n { possibleNames: ['CN', 'commonName'], translation: 'Владелец' },\r\n { possibleNames: ['SN', 'surname'], translation: 'Фамилия' },\r\n { possibleNames: ['G', 'givenName', 'gn'], translation: 'Имя Отчество' },\r\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\r\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\r\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\r\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\r\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Отдел/подразделение' },\r\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\r\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\r\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\r\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\r\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\r\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\r\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\r\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\r\n];\r\n","export * from './api';\r\n","import { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\n\r\ntype Unpromisify<T> = T extends Promise<infer R> ? R : T;\r\n\r\nlet isSetLogLevel = false;\r\nlet isPluginLoaded = false;\r\n\r\nexport const _afterPluginsLoaded = <T extends (...args: any[]) => any>(\r\n fn: T,\r\n): ((...args: Parameters<T>) => Promise<Unpromisify<ReturnType<T>>>) => {\r\n const canPromise = Boolean(window.Promise);\r\n\r\n return async function (...args: Parameters<T>): Promise<Unpromisify<ReturnType<T>>> {\r\n if (!isPluginLoaded) {\r\n try {\r\n require('../vendor/cadesplugin_api');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при подключении модуля для работы с Cades plugin',\r\n );\r\n }\r\n\r\n isPluginLoaded = true;\r\n }\r\n\r\n const { cadesplugin } = window;\r\n\r\n if (!canPromise) {\r\n throw new Error('Необходим полифилл для Promise');\r\n }\r\n\r\n if (!cadesplugin) {\r\n throw new Error('Не подключен модуль для работы с Cades plugin');\r\n }\r\n\r\n if (!isSetLogLevel) {\r\n cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_ERROR);\r\n\r\n isSetLogLevel = true;\r\n }\r\n\r\n try {\r\n await cadesplugin;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации модуля для работы с Cades plugin',\r\n );\r\n }\r\n\r\n return await fn.apply(this, args);\r\n };\r\n};\r\n","export const _extractCommonName = (subjectName: string): string | undefined =>\r\n subjectName.match(/CN=\"?(.+?)\"?(?:,|$)/)?.[1]?.replace(/\"{2}/g, '\"');\r\n","export const _extractMeaningfulErrorMessage = (error: Error): string | null => {\r\n let errorContainer = window.cadesplugin?.getLastError && window.cadesplugin.getLastError(error);\r\n\r\n if (!errorContainer?.message) {\r\n if (!error.message) {\r\n return null;\r\n }\r\n\r\n errorContainer = error;\r\n }\r\n\r\n const containsRussianLetters = /[а-яА-Я]/.test(errorContainer.message);\r\n\r\n if (!containsRussianLetters) {\r\n return null;\r\n }\r\n\r\n const searchResult = errorContainer.message.match(/^(.*?)(?:(?:\\.?\\s?\\(?(0x[0-9a-zA-Z]{1,8})\\)?)|(?:\\.?$))/);\r\n\r\n return searchResult ? searchResult[1] + (searchResult[2] ? ' (Код ошибки: ' + searchResult[2] + ')' : '') : null;\r\n};\r\n","// синтетические переменные, которые подменяются в рантайме\r\nexport const __cadesAsyncToken__ = {};\r\nexport const __createCadesPluginObject__ = (...args): any => ({});\r\n\r\nfunction getGeneratorConstructor(): GeneratorFunction {\r\n return new Function('', 'return Object.getPrototypeOf(function*(){}).constructor')();\r\n}\r\n\r\nexport const _generateCadesFn = (callback: Function): string => {\r\n const { cadesplugin } = window;\r\n const cadesGeneratorsAPI = Boolean(cadesplugin.CreateObjectAsync);\r\n const callbackName = callback.name || 'dynamicFn';\r\n const callbackLiteral = String(callback);\r\n const callbackArguments = callbackLiteral.match(/^function[\\s\\w]*?\\((.*?)\\)/)?.[1] || '';\r\n const callbackBody = callbackLiteral.replace(/^.*?{([\\s\\S]*?)}$/, '$1');\r\n let crossEnvCallbackLiteral = String(\r\n new (cadesGeneratorsAPI ? getGeneratorConstructor() : Function)(callbackArguments, callbackBody),\r\n );\r\n\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\r\n /\\w+?\\.__createCadesPluginObject__(\\([\\s\\S]*?\\))/gm,\r\n `cadesplugin.CreateObject${cadesGeneratorsAPI ? 'Async' : ''}$1`,\r\n );\r\n\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\r\n /\\w+?\\.__cadesAsyncToken__\\s*?\\+\\s*?\\b/gm,\r\n cadesGeneratorsAPI ? 'yield ' : '',\r\n );\r\n\r\n if (!cadesGeneratorsAPI) {\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(/propset_(.*?)\\((.*?)\\)/gm, '$1 = $2');\r\n }\r\n\r\n return [\r\n cadesGeneratorsAPI ? `cadesplugin.async_spawn(${crossEnvCallbackLiteral});` : `(${crossEnvCallbackLiteral})();`,\r\n `//# sourceURL=crypto-pro_${callbackName}.js`,\r\n ].join('');\r\n};\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _getCadesUserCert } from './_getCadesUserCert';\r\nimport { _getCadesContainerCert } from './_getCadesContainerCert';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesCert = _afterPluginsLoaded(\r\n async (thumbprint: string): Promise<CadesCertificate> => {\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificate = await _getCadesUserCert(thumbprint);\r\n } catch (error) {\r\n console.log(error);\r\n\r\n cadesCertificate = await _getCadesContainerCert(thumbprint);\r\n }\r\n\r\n return cadesCertificate;\r\n },\r\n);\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from './_generateCadesFn';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesContainerCert = _afterPluginsLoaded(\r\n (thumbprint: string): CadesCertificate => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function _getCadesCert() {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n if (!cadesStore) {\r\n throw new Error('Не удалось получить доступ к хранилищу сертификатов');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища закрытого ключа');\r\n }\r\n\r\n let cadesCertificateList;\r\n let certificatesCount;\r\n\r\n try {\r\n cadesCertificateList = __cadesAsyncToken__ + cadesStore.Certificates;\r\n certificatesCount = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) ||\r\n 'Ошибка получения списка сертификатов из хранилища закрытого ключа',\r\n );\r\n }\r\n\r\n if (!certificatesCount) {\r\n throw new Error('Нет доступных сертификатов в хранилище закрытого ключа');\r\n }\r\n\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificateList =\r\n __cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);\r\n\r\n const count = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n\r\n if (!count) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден в хранилище закрытого ключа`);\r\n }\r\n\r\n cadesCertificate = __cadesAsyncToken__ + cadesCertificateList.Item(1);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа',\r\n );\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n return cadesCertificate;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from './_generateCadesFn';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesUserCert = _afterPluginsLoaded(\r\n (thumbprint: string): CadesCertificate => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function _getCadesCert() {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n if (!cadesStore) {\r\n throw new Error('Не удалось получить доступ к хранилищу сертификатов');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища пользователя');\r\n }\r\n\r\n let cadesCertificateList;\r\n let certificatesCount;\r\n\r\n try {\r\n cadesCertificateList = __cadesAsyncToken__ + cadesStore.Certificates;\r\n certificatesCount = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя',\r\n );\r\n }\r\n\r\n if (!certificatesCount) {\r\n throw new Error('Нет доступных сертификатов в хранилище пользователя');\r\n }\r\n\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificateList =\r\n __cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);\r\n\r\n const count = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n\r\n if (!count) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден в хранилище пользователя`);\r\n }\r\n\r\n cadesCertificate = __cadesAsyncToken__ + cadesCertificateList.Item(1);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя',\r\n );\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n return cadesCertificate;\r\n }),\r\n );\r\n },\r\n);\r\n","/**\r\n * Возвращает объект даты, совместимый с Cades plugin'ом, зависящий от браузера.\r\n *\r\n * В IE необходимо использовать специфичный формат \"VT_DATE\"\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Microsoft_Extensions/Date.getVarDate\r\n */\r\nexport const _getDateObj = (dateObj): Date => (dateObj.getVarDate ? dateObj.getVarDate() : dateObj);\r\n","const oldestSupportedCSPVersion = 4.0;\r\n\r\nexport const _isSupportedCSPVersion = (version: string): boolean => {\r\n version = version.match(/\\d+?\\b(?:\\.\\d+)?/)?.[0];\r\n\r\n return Number(version) >= oldestSupportedCSPVersion;\r\n};\r\n","export const _isSupportedCadesVersion = (version: string): boolean => {\r\n const match = version.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n if (!match) {\r\n return false;\r\n }\r\n\r\n const [, major, minor, patch] = match;\r\n\r\n if (Number(major) < 2) {\r\n return false;\r\n }\r\n\r\n if (Number(major) === 2 && Number(patch) < 12438) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n","import { OIDS_DICTIONARY } from '../constants';\r\nimport { TagsTranslations } from '../constants/tags-translations';\r\n\r\nexport interface TagTranslation {\r\n description: string;\r\n title: string;\r\n isTranslated: boolean;\r\n}\r\n\r\n/**\r\n * Парсит информацию из строки с информацией о сертификате\r\n *\r\n * @param tagsTranslations - словарь с расшифровками тэгов\r\n * @param rawInfo - данные для парсинга\r\n * @returns расшифрованная информация по отдельным тэгам\r\n */\r\nexport const _parseCertInfo = (tagsTranslations: TagsTranslations[], rawInfo: string): TagTranslation[] => {\r\n const extractedEntities: string[] = rawInfo.match(/([а-яА-Яa-zA-Z0-9\\s.]+)=(?:(\"[^\"]+?\")|(.+?))(?:,|$)/g);\r\n\r\n if (extractedEntities) {\r\n return extractedEntities.map((group) => {\r\n const segmentsMatch = group.trim().match(/^([а-яА-Яa-zA-Z0-9\\s.]+)=(.+?),?$/);\r\n let title = segmentsMatch?.[1];\r\n // Вырезаем лишние кавычки\r\n const description = segmentsMatch?.[2]?.replace(/^\"(.*)\"/, '$1')?.replace(/\"{2}/g, '\"');\r\n const oidIdentifierMatch = title?.match(/^OID\\.(.*)/);\r\n const oidIdentifier = oidIdentifierMatch?.[1];\r\n let isTranslated = false;\r\n\r\n // Если нашли в тайтле ОИД, пытаемся его расшифровать\r\n if (oidIdentifier) {\r\n const oidTranslation = OIDS_DICTIONARY[oidIdentifier];\r\n\r\n if (oidTranslation) {\r\n title = oidTranslation;\r\n isTranslated = true;\r\n }\r\n }\r\n\r\n const tagTranslation = tagsTranslations.find((tag) => tag.possibleNames.find((name) => name === title))\r\n ?.translation;\r\n\r\n if (tagTranslation) {\r\n title = tagTranslation;\r\n isTranslated = true;\r\n }\r\n\r\n return { description, title, isTranslated };\r\n });\r\n }\r\n};\r\n",";(function () {\r\n //already loaded\r\n if(window.cadesplugin)\r\n return;\r\n\r\n var pluginObject;\r\n var plugin_resolved = 0;\r\n var plugin_reject;\r\n var plugin_resolve;\r\n var isOpera = 0;\r\n var isFireFox = 0;\r\n var isSafari = 0;\r\n var isYandex = 0;\r\n var canPromise = !!window.Promise;\r\n var cadesplugin_loaded_event_recieved = false;\r\n var isFireFoxExtensionLoaded = false;\r\n var cadesplugin;\r\n\r\n if(canPromise)\r\n {\r\n cadesplugin = new Promise(function(resolve, reject)\r\n {\r\n plugin_resolve = resolve;\r\n plugin_reject = reject;\r\n });\r\n } else\r\n {\r\n cadesplugin = {};\r\n }\r\n\r\n function check_browser() {\r\n var ua= navigator.userAgent, tem, M= ua.match(/(opera|yabrowser|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n if(/trident/i.test(M[1])){\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return { name:'IE', version:(tem[1] || '')};\r\n }\r\n if(M[1] === 'Chrome'){\r\n tem = ua.match(/\\b(OPR|Edg|YaBrowser)\\/(\\d+)/);\r\n if (tem != null)\r\n return { name: tem[1].replace('OPR', 'Opera'), version: tem[2] };\r\n }\r\n M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\r\n if ((tem = ua.match(/version\\/(\\d+)/i)) != null)\r\n M.splice(1, 1, tem[1]);\r\n return {name:M[0],version:M[1]};\r\n }\r\n var browserSpecs = check_browser();\r\n\r\n function cpcsp_console_log(level, msg){\r\n //IE9 не может писать в консоль если не открыта вкладка developer tools\r\n if(typeof(console) === 'undefined')\r\n return;\r\n if (level <= cadesplugin.current_log_level ){\r\n if (level === cadesplugin.LOG_LEVEL_DEBUG)\r\n console.log(\"DEBUG: %s\", msg);\r\n if (level === cadesplugin.LOG_LEVEL_INFO)\r\n console.info(\"INFO: %s\", msg);\r\n if (level === cadesplugin.LOG_LEVEL_ERROR)\r\n console.error(\"ERROR: %s\", msg);\r\n return;\r\n }\r\n }\r\n\r\n function set_log_level(level){\r\n if (!((level === cadesplugin.LOG_LEVEL_DEBUG) ||\r\n (level === cadesplugin.LOG_LEVEL_INFO) ||\r\n (level === cadesplugin.LOG_LEVEL_ERROR))){\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR, \"cadesplugin_api.js: Incorrect log_level: \" + level);\r\n return;\r\n }\r\n cadesplugin.current_log_level = level;\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = DEBUG\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = INFO\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = ERROR\");\r\n if(isNativeMessageSupported())\r\n {\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\r\n window.postMessage(\"set_log_level=debug\", \"*\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\r\n window.postMessage(\"set_log_level=info\", \"*\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\r\n window.postMessage(\"set_log_level=error\", \"*\");\r\n }\r\n }\r\n\r\n function set_constantValues()\r\n {\r\n cadesplugin.CAPICOM_MEMORY_STORE = 0;\r\n cadesplugin.CAPICOM_LOCAL_MACHINE_STORE = 1;\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE = 2;\r\n cadesplugin.CAPICOM_SMART_CARD_USER_STORE = 4;\r\n cadesplugin.CADESCOM_MEMORY_STORE = 0;\r\n cadesplugin.CADESCOM_LOCAL_MACHINE_STORE = 1;\r\n cadesplugin.CADESCOM_CURRENT_USER_STORE = 2;\r\n cadesplugin.CADESCOM_SMART_CARD_USER_STORE = 4;\r\n cadesplugin.CADESCOM_CONTAINER_STORE = 100;\r\n\r\n cadesplugin.CAPICOM_MY_STORE = \"My\";\r\n\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\n\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\r\n\r\n cadesplugin.CADESCOM_XADES_DEFAULT = 0x00000010;\r\n cadesplugin.CADESCOM_XADES_BES = 0x00000020;\r\n cadesplugin.CADESCOM_XADES_T = 0x00000050;\r\n cadesplugin.CADESCOM_XADES_X_LONG_TYPE_1 = 0x000005d0;\r\n cadesplugin.CADESCOM_XMLDSIG_TYPE = 0x00000000;\r\n\r\n cadesplugin.XmlDsigGost3410UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411\";\r\n cadesplugin.XmlDsigGost3411UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr3411\";\r\n cadesplugin.XmlDsigGost3410Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411\";\r\n cadesplugin.XmlDsigGost3411Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411\";\r\n\r\n cadesplugin.XmlDsigGost3411Url2012256 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256\";\r\n cadesplugin.XmlDsigGost3410Url2012256 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256\";\r\n cadesplugin.XmlDsigGost3411Url2012512 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512\";\r\n cadesplugin.XmlDsigGost3410Url2012512 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512\";\r\n\r\n cadesplugin.CADESCOM_CADES_DEFAULT = 0;\r\n cadesplugin.CADESCOM_CADES_BES = 1;\r\n cadesplugin.CADESCOM_CADES_T = 0x5;\r\n cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\r\n cadesplugin.CADESCOM_PKCS7_TYPE = 0xffff;\r\n\r\n cadesplugin.CADESCOM_ENCODE_BASE64 = 0;\r\n cadesplugin.CADESCOM_ENCODE_BINARY = 1;\r\n cadesplugin.CADESCOM_ENCODE_ANY = -1;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\r\n\r\n cadesplugin.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\r\n cadesplugin.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\r\n\r\n cadesplugin.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\r\n\r\n cadesplugin.CAPICOM_PROPID_ENHKEY_USAGE = 9;\r\n\r\n cadesplugin.CAPICOM_OID_OTHER = 0;\r\n cadesplugin.CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\r\n\r\n cadesplugin.CAPICOM_EKU_CLIENT_AUTH = 2;\r\n cadesplugin.CAPICOM_EKU_SMARTCARD_LOGON = 5;\r\n cadesplugin.CAPICOM_EKU_OTHER = 0;\r\n\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO = 0x100;\r\n cadesplugin.CADESCOM_ATTRIBUTE_OTHER = -1;\r\n\r\n cadesplugin.CADESCOM_STRING_TO_UCS2LE = 0;\r\n cadesplugin.CADESCOM_BASE64_TO_BINARY = 1;\r\n\r\n cadesplugin.CADESCOM_DISPLAY_DATA_NONE = 0;\r\n cadesplugin.CADESCOM_DISPLAY_DATA_CONTENT = 1;\r\n cadesplugin.CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\r\n\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\r\n\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA1 = 0;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD2 = 1;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD4 = 2;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD5 = 3;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\r\n\r\n cadesplugin.LOG_LEVEL_DEBUG = 4;\r\n cadesplugin.LOG_LEVEL_INFO = 2;\r\n cadesplugin.LOG_LEVEL_ERROR = 1;\r\n\r\n cadesplugin.CADESCOM_AllowNone = 0;\r\n cadesplugin.CADESCOM_AllowNoOutstandingRequest = 0x1;\r\n cadesplugin.CADESCOM_AllowUntrustedCertificate = 0x2;\r\n cadesplugin.CADESCOM_AllowUntrustedRoot = 0x4;\r\n cadesplugin.CADESCOM_SkipInstallToStore = 0x10000000;\r\n cadesplugin.CADESCOM_InstallCertChainToContainer = 0x20000000;\r\n cadesplugin.CADESCOM_UseContainerStore = 0x40000000;\r\n\r\n cadesplugin.ENABLE_CARRIER_TYPE_CSP = 0x01;\r\n cadesplugin.ENABLE_CARRIER_TYPE_FKC_NO_SM = 0x02;\r\n cadesplugin.ENABLE_CARRIER_TYPE_FKC_SM = 0x04;\r\n cadesplugin.ENABLE_ANY_CARRIER_TYPE = 0x07;\r\n\r\n cadesplugin.DISABLE_EVERY_CARRIER_OPERATION = 0x00;\r\n cadesplugin.ENABLE_CARRIER_OPEN_ENUM = 0x01;\r\n cadesplugin.ENABLE_CARRIER_CREATE = 0x02;\r\n cadesplugin.ENABLE_ANY_OPERATION = 0x03;\r\n\r\n cadesplugin.CADESCOM_PRODUCT_CSP = 0;\r\n cadesplugin.CADESCOM_PRODUCT_OCSP = 1;\r\n cadesplugin.CADESCOM_PRODUCT_TSP = 2;\r\n\r\n cadesplugin.MEDIA_TYPE_REGISTRY = 0x00000001;\r\n cadesplugin.MEDIA_TYPE_HDIMAGE = 0x00000002;\r\n cadesplugin.MEDIA_TYPE_CLOUD = 0x00000004;\r\n cadesplugin.MEDIA_TYPE_SCARD = 0x00000008;\r\n\r\n cadesplugin.XCN_CRYPT_STRING_BASE64HEADER = 0;\r\n cadesplugin.AT_KEYEXCHANGE = 1;\r\n cadesplugin.AT_SIGNATURE = 2;\r\n\r\n cadesplugin.CARRIER_FLAG_REMOVABLE = 1;\r\n cadesplugin.CARRIER_FLAG_UNIQUE = 2;\r\n cadesplugin.CARRIER_FLAG_PROTECTED = 4;\r\n cadesplugin.CARRIER_FLAG_FUNCTIONAL_CARRIER = 8;\r\n cadesplugin.CARRIER_FLAG_SECURE_MESSAGING = 16;\r\n cadesplugin.CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE = 64;\r\n cadesplugin.CARRIER_FLAG_VIRTUAL = 128;\r\n }\r\n\r\n function async_spawn(generatorFunc) {\r\n function continuer(verb, arg) {\r\n var result;\r\n try {\r\n result = generator[verb](arg);\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n if (result.done) {\r\n return result.value;\r\n } else {\r\n return Promise.resolve(result.value).then(onFulfilled, onRejected);\r\n }\r\n }\r\n var generator = generatorFunc(Array.prototype.slice.call(arguments, 1));\r\n var onFulfilled = continuer.bind(continuer, \"next\");\r\n var onRejected = continuer.bind(continuer, \"throw\");\r\n return onFulfilled();\r\n }\r\n\r\n function isIE() {\r\n // var retVal = ((\"Microsoft Internet Explorer\" == navigator.appName) || // IE < 11\r\n // navigator.userAgent.match(/Trident\\/./i)); // IE 11\r\n return (browserSpecs.name === 'IE' || browserSpecs.name === 'MSIE');\r\n }\r\n\r\n function isIOS() {\r\n return (navigator.userAgent.match(/ipod/i) ||\r\n navigator.userAgent.match(/ipad/i) ||\r\n navigator.userAgent.match(/iphone/i));\r\n }\r\n\r\n function isNativeMessageSupported()\r\n {\r\n // В IE работаем через NPAPI\r\n if(isIE())\r\n return false;\r\n // В Edge работаем через NativeMessage\r\n if (browserSpecs.name === 'Edg') {\r\n return true;\r\n }\r\n if (browserSpecs.name === 'YaBrowser') {\r\n isYandex = true;\r\n return true;\r\n }\r\n // В Chrome, Firefox, Safari и Opera работаем через асинхронную версию в зависимости от версии\r\n if(browserSpecs.name === 'Opera') {\r\n isOpera = true;\r\n if(browserSpecs.version >= 33){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n if(browserSpecs.name === 'Firefox') {\r\n isFireFox = true;\r\n if(browserSpecs.version >= 52){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n if(browserSpecs.name === 'Chrome') {\r\n if(browserSpecs.version >= 42){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n //В Сафари начиная с 12 версии нет NPAPI\r\n if(browserSpecs.name === 'Safari') {\r\n isSafari = true;\r\n if(browserSpecs.version >= 12) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // Функция активации объектов КриптоПро ЭЦП Browser plug-in\r\n function CreateObject(name) {\r\n if (isIOS()) {\r\n // На iOS для создания объектов используется функция\r\n // call_ru_cryptopro_npcades_10_native_bridge, определенная в IOS_npcades_supp.js\r\n return call_ru_cryptopro_npcades_10_native_bridge(\"CreateObject\", [name]);\r\n }\r\n if (isIE()) {\r\n // В Internet Explorer создаются COM-объекты\r\n if (name.match(/X509Enrollment/i)) {\r\n try {\r\n // Объекты CertEnroll пробуем создавать через нашу фабрику,\r\n // если не получилось то через CX509EnrollmentWebClassFactory\r\n var objCertEnrollClassFactory = document.getElementById(\"webClassFactory\");\r\n return objCertEnrollClassFactory.CreateObject(name);\r\n }\r\n catch (e) {\r\n try {\r\n var objWebClassFactory = document.getElementById(\"certEnrollClassFactory\");\r\n return objWebClassFactory.CreateObject(name);\r\n }\r\n catch (err) {\r\n throw (\"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS\");\r\n }\r\n }\r\n }\r\n // Объекты CAPICOM и CAdESCOM создаются через CAdESCOM.WebClassFactory\r\n try {\r\n var objWebClassFactory = document.getElementById(\"webClassFactory\");\r\n return objWebClassFactory.CreateObject(name);\r\n }\r\n catch (e) {\r\n // Для версий плагина ниже 2.0.12538\r\n return new ActiveXObject(name);\r\n }\r\n }\r\n // создаются объекты NPAPI\r\n return pluginObject.CreateObject(name);\r\n }\r\n\r\n function decimalToHexString(number) {\r\n if (number < 0) {\r\n number = 0xFFFFFFFF + number + 1;\r\n }\r\n\r\n return number.toString(16).toUpperCase();\r\n }\r\n\r\n function GetMessageFromException(e) {\r\n var err = e.message;\r\n if (!err) {\r\n err = e;\r\n } else if (e.number) {\r\n err += \" (0x\" + decimalToHexString(e.number) + \")\";\r\n }\r\n return err;\r\n }\r\n\r\n function getLastError(exception) {\r\n if(isNativeMessageSupported() || isIE() || isIOS() ) {\r\n return GetMessageFromException(exception);\r\n }\r\n\r\n try {\r\n return pluginObject.getLastError();\r\n } catch(e) {\r\n return GetMessageFromException(exception);\r\n }\r\n }\r\n\r\n // Функция для удаления созданных объектов\r\n function ReleasePluginObjects() {\r\n return cpcsp_chrome_nmcades.ReleasePluginObjects();\r\n }\r\n\r\n // Функция активации асинхронных объектов КриптоПро ЭЦП Browser plug-in\r\n function CreateObjectAsync(name) {\r\n return pluginObject.CreateObjectAsync(name);\r\n }\r\n\r\n //Функции для IOS\r\n var ru_cryptopro_npcades_10_native_bridge = {\r\n callbacksCount : 1,\r\n callbacks : {},\r\n\r\n // Automatically called by native layer when a result is available\r\n resultForCallback : function resultForCallback(callbackId, resultArray) {\r\n var callback = ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId];\r\n if (!callback) return;\r\n callback.apply(null,resultArray);\r\n },\r\n\r\n // Use this in javascript to request native objective-c code\r\n // functionName : string (I think the name is explicit :p)\r\n // args : array of arguments\r\n // callback : function with n-arguments that is going to be called when the native code returned\r\n call : function call(functionName, args, callback) {\r\n var hasCallback = callback && typeof callback === \"function\";\r\n var callbackId = hasCallback ? ru_cryptopro_npcades_10_native_bridge.callbacksCount++ : 0;\r\n\r\n if (hasCallback)\r\n ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId] = callback;\r\n\r\n var iframe = document.createElement(\"IFRAME\");\r\n var arrObjs = new Array(\"_CPNP_handle\");\r\n try{\r\n iframe.setAttribute(\"src\", \"cpnp-js-call:\" + functionName + \":\" + callbackId+ \":\" + encodeURIComponent(JSON.stringify(args, arrObjs)));\r\n } catch(e){\r\n alert(e);\r\n }\r\n document.documentElement.appendChild(iframe);\r\n iframe.parentNode.removeChild(iframe);\r\n iframe = null;\r\n }\r\n };\r\n\r\n function call_ru_cryptopro_npcades_10_native_bridge(functionName, array){\r\n var tmpobj;\r\n var ex;\r\n ru_cryptopro_npcades_10_native_bridge.call(functionName, array, function(e, response){\r\n ex = e;\r\n var str='tmpobj='+response;\r\n eval(str);\r\n if (typeof (tmpobj) === \"string\"){\r\n tmpobj = tmpobj.replace(/\\\\\\n/gm, \"\\n\");\r\n tmpobj = tmpobj.replace(/\\\\\\r/gm, \"\\r\");\r\n }\r\n });\r\n if(ex)\r\n throw ex;\r\n return tmpobj;\r\n }\r\n\r\n function show_firefox_missing_extension_dialog()\r\n {\r\n if (!window.cadesplugin_skip_extension_install)\r\n {\r\n var ovr = document.createElement('div');\r\n ovr.id = \"cadesplugin_ovr\";\r\n ovr.style = \"visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)\";\r\n ovr.innerHTML = \"<div id='cadesplugin_ovr_item' style='position:relative; width:400px; margin:100px auto; background-color:#fff; border:2px solid #000; padding:10px; text-align:center; opacity: 1; z-index: 1500'>\" +\r\n \"<button id='cadesplugin_close_install' style='float: right; font-size: 10px; background: transparent; border: 1; margin: -5px'>X</button>\" +\r\n \"<p>Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"<p><a href='https://www.cryptopro.ru/sites/default/files/products/cades/extensions/firefox_cryptopro_extension_latest.xpi'>Скачать расширение</a></p>\" +\r\n \"</div>\";\r\n document.getElementsByTagName(\"Body\")[0].appendChild(ovr);\r\n document.getElementById(\"cadesplugin_close_install\").addEventListener('click',function()\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\r\n });\r\n\r\n ovr.addEventListener('click',function()\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\r\n });\r\n ovr.style.visibility=\"visible\";\r\n }\r\n }\r\n function firefox_or_safari_nmcades_onload() {\r\n if (window.cadesplugin_extension_loaded_callback)\r\n window.cadesplugin_extension_loaded_callback();\r\n isFireFoxExtensionLoaded = true;\r\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\r\n }\r\n\r\n function nmcades_api_onload() {\r\n if (!isIE() && !isFireFox && !isSafari) {\r\n if (window.cadesplugin_extension_loaded_callback)\r\n window.cadesplugin_extension_loaded_callback();\r\n }\r\n window.postMessage(\"cadesplugin_echo_request\", \"*\");\r\n window.addEventListener(\"message\", function (event){\r\n if (typeof(event.data) !== \"string\" || !event.data.match(\"cadesplugin_loaded\"))\r\n return;\r\n if (cadesplugin_loaded_event_recieved)\r\n return;\r\n if(isFireFox || isSafari)\r\n {\r\n // Для Firefox, Сафари вместе с сообщением cadesplugin_loaded прилетает url для загрузки nmcades_plugin_api.js\r\n var url = event.data.substring(event.data.indexOf(\"url:\") + 4);\r\n if (!url.match(\"^moz-extension://[a-zA-Z0-9-]+/nmcades_plugin_api.js$\")\r\n && !url.match(\"^safari-extension://[a-zA-Z0-9-]+/[a-zA-Z0-9]+/nmcades_plugin_api.js$\"))\r\n {\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR, \"Bad url \\\"\" + url + \"\\\" for load CryptoPro Extension for CAdES Browser plug-in\");\r\n plugin_loaded_error();\r\n return;\r\n }\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", url);\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = firefox_or_safari_nmcades_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n }else {\r\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\r\n }\r\n cadesplugin_loaded_event_recieved = true;\r\n }, false);\r\n }\r\n\r\n //Загружаем расширения для Chrome, Opera, YaBrowser, FireFox, Edge, Safari\r\n function load_extension()\r\n {\r\n if(isFireFox || isSafari){\r\n // вызываем callback руками т.к. нам нужно узнать ID расширения. Он уникальный для браузера.\r\n nmcades_api_onload();\r\n } else {\r\n // в асинхронном варианте для Yandex и Opera подключаем расширение из Opera store.\r\n if (isOpera || isYandex) {\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", \"chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js\");\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = nmcades_api_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n } else {\r\n // для Chrome, Chromium, Chromium Edge расширение из Chrome store\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", \"chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js\");\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = nmcades_api_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n }\r\n }\r\n }\r\n\r\n //Загружаем плагин для NPAPI\r\n function load_npapi_plugin()\r\n {\r\n var elem = document.createElement('object');\r\n elem.setAttribute(\"id\", \"cadesplugin_object\");\r\n elem.setAttribute(\"type\", \"application/x-cades\");\r\n elem.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem);\r\n pluginObject = document.getElementById(\"cadesplugin_object\");\r\n if(isIE())\r\n {\r\n var elem1 = document.createElement('object');\r\n elem1.setAttribute(\"id\", \"certEnrollClassFactory\");\r\n elem1.setAttribute(\"classid\", \"clsid:884e2049-217d-11da-b2a4-000e7bbb2b09\");\r\n elem1.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem1);\r\n var elem2 = document.createElement('object');\r\n elem2.setAttribute(\"id\", \"webClassFactory\");\r\n elem2.setAttribute(\"classid\", \"clsid:B04C8637-10BD-484E-B0DA-B8A039F60024\");\r\n elem2.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem2);\r\n }\r\n }\r\n\r\n //Отправляем событие что все ок.\r\n function plugin_loaded()\r\n {\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_resolve();\r\n }else {\r\n window.postMessage(\"cadesplugin_loaded\", \"*\");\r\n }\r\n }\r\n\r\n //Отправляем событие что сломались.\r\n function plugin_loaded_error(msg)\r\n {\r\n if(typeof(msg) === 'undefined' || typeof(msg) === 'object')\r\n msg = \"Плагин недоступен\";\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_reject(msg);\r\n } else {\r\n window.postMessage(\"cadesplugin_load_error\", \"*\");\r\n }\r\n }\r\n\r\n //проверяем что у нас хоть какое то событие ушло, и если не уходило кидаем еще раз ошибку\r\n function check_load_timeout()\r\n {\r\n if(plugin_resolved === 1)\r\n return;\r\n if(isFireFox)\r\n {\r\n if (!isFireFoxExtensionLoaded)\r\n show_firefox_missing_extension_dialog();\r\n }\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_reject(\"Истекло время ожидания загрузки плагина\");\r\n } else {\r\n window.postMessage(\"cadesplugin_load_error\", \"*\");\r\n }\r\n\r\n }\r\n\r\n //Вспомогательная функция для NPAPI\r\n function createPromise(arg)\r\n {\r\n return new Promise(arg);\r\n }\r\n\r\n function check_npapi_plugin (){\r\n try {\r\n var oAbout = CreateObject(\"CAdESCOM.About\");\r\n plugin_loaded();\r\n }\r\n catch (err) {\r\n document.getElementById(\"cadesplugin_object\").style.display = 'none';\r\n // Объект создать не удалось, проверим, установлен ли\r\n // вообще плагин. Такая возможность есть не во всех браузерах\r\n var mimetype = navigator.mimeTypes[\"application/x-cades\"];\r\n if (mimetype) {\r\n var plugin = mimetype.enabledPlugin;\r\n if (plugin) {\r\n plugin_loaded_error(\"Плагин загружен, но не создаются обьекты\");\r\n }else\r\n {\r\n plugin_loaded_error(\"Ошибка при загрузке плагина\");\r\n }\r\n }else\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n }\r\n }\r\n }\r\n\r\n //Проверяем работает ли плагин\r\n function check_plugin_working()\r\n {\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = \"<!--[if lt IE 9]><i></i><![endif]-->\";\r\n var isIeLessThan9 = (div.getElementsByTagName(\"i\").length === 1);\r\n if (isIeLessThan9) {\r\n plugin_loaded_error(\"Internet Explorer версии 8 и ниже не поддерживается\");\r\n return;\r\n }\r\n\r\n if(isNativeMessageSupported())\r\n {\r\n load_extension();\r\n }else if(!canPromise) {\r\n window.addEventListener(\"message\", function (event){\r\n if (event.data !== \"cadesplugin_echo_request\")\r\n return;\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n },\r\n false);\r\n }else\r\n {\r\n if(document.readyState === \"complete\"){\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n } else {\r\n window.addEventListener(\"load\", function (event) {\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n }, false);\r\n }\r\n }\r\n }\r\n\r\n function set_pluginObject(obj)\r\n {\r\n pluginObject = obj;\r\n }\r\n\r\n function is_capilite_enabled()\r\n {\r\n if ((typeof (cadesplugin.EnableInternalCSP) !== 'undefined') && cadesplugin.EnableInternalCSP)\r\n return true;\r\n return false;\r\n };\r\n\r\n //Export\r\n cadesplugin.JSModuleVersion = \"2.3.2\";\r\n cadesplugin.async_spawn = async_spawn;\r\n cadesplugin.set = set_pluginObject;\r\n cadesplugin.set_log_level = set_log_level;\r\n cadesplugin.getLastError = getLastError;\r\n cadesplugin.is_capilite_enabled = is_capilite_enabled;\r\n\r\n if(isNativeMessageSupported())\r\n {\r\n cadesplugin.CreateObjectAsync = CreateObjectAsync;\r\n cadesplugin.ReleasePluginObjects = ReleasePluginObjects;\r\n }\r\n\r\n if(!isNativeMessageSupported())\r\n {\r\n cadesplugin.CreateObject = CreateObject;\r\n }\r\n\r\n if(window.cadesplugin_load_timeout)\r\n {\r\n setTimeout(check_load_timeout, window.cadesplugin_load_timeout);\r\n }\r\n else\r\n {\r\n setTimeout(check_load_timeout, 20000);\r\n }\r\n\r\n set_constantValues();\r\n\r\n cadesplugin.current_log_level = cadesplugin.LOG_LEVEL_ERROR;\r\n window.cadesplugin = cadesplugin;\r\n check_plugin_working();\r\n}());\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./crypto-pro-js.ts\");\n",""],"names":[],"sourceRoot":""} |