crypto-pro-js/dist/crypto-pro.min.js.map
2020-07-04 09:37:44 +03:00

1 line
122 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack://cryptoPro/webpack/universalModuleDefinition","webpack://cryptoPro/webpack/bootstrap","webpack://cryptoPro/./helpers/_afterPluginsLoaded.ts","webpack://cryptoPro/./helpers/_extractMeaningfulErrorMessage.ts","webpack://cryptoPro/./helpers/_generateCadesFn.ts","webpack://cryptoPro/./constants/index.ts","webpack://cryptoPro/./api/getUserCertificates.ts","webpack://cryptoPro/./api/certificate/index.ts","webpack://cryptoPro/./api/certificate/getCadesProp.ts","webpack://cryptoPro/./api/getSystemInfo.ts","webpack://cryptoPro/./crypto-pro.ts","webpack://cryptoPro/./api/index.ts","webpack://cryptoPro/./api/getCertificate.ts","webpack://cryptoPro/./vendor/cadesplugin_api.js","webpack://cryptoPro/./api/certificate/certificate.ts","webpack://cryptoPro/./constants/cades-constants.ts","webpack://cryptoPro/./constants/issuer-tags-translations.ts","webpack://cryptoPro/./constants/oids-dictionary.ts","webpack://cryptoPro/./constants/subject-tags-translations.ts","webpack://cryptoPro/./api/certificate/exportBase64.ts","webpack://cryptoPro/./api/certificate/getAlgorithm.ts","webpack://cryptoPro/./api/certificate/getDecodedExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getInfo.ts","webpack://cryptoPro/./helpers/_parseCertInfo.ts","webpack://cryptoPro/./api/certificate/hasExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/isValid.ts","webpack://cryptoPro/./helpers/_extractCommonName.ts","webpack://cryptoPro/./api/isValidSystemSetup.ts","webpack://cryptoPro/./helpers/_isSupportedCadesVersion.ts","webpack://cryptoPro/./helpers/_isSupportedCSPVersion.ts","webpack://cryptoPro/./api/createSignature.ts","webpack://cryptoPro/./helpers/_getCadesCert.ts","webpack://cryptoPro/./helpers/_getDateObj.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isSetLogLevel","isPluginLoaded","_afterPluginsLoaded","fn","canPromise","Boolean","Promise","error","console","Error","_extractMeaningfulErrorMessage","cadesplugin","set_log_level","LOG_LEVEL_ERROR","apply","this","args","errorContainer","getLastError","message","test","searchResult","match","__cadesAsyncToken__","__createCadesPluginObject__","_generateCadesFn","callback","cadesGeneratorsAPI","CreateObjectAsync","callbackName","callbackLiteral","String","callbackArguments","callbackBody","replace","crossEnvCallbackLiteral","Function","join","certificatesCache","getUserCertificates","resetCache","eval","cadesStore","cadesCertificates","cadesCertificatesCount","Open","CAPICOM_CURRENT_USER_STORE","CAPICOM_MY_STORE","CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED","Certificates","Find","CAPICOM_CERTIFICATE_FIND_TIME_VALID","CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY","CAPICOM_PROPID_KEY_PROV_INFO","Count","certificateList","cadesCertificate","Item","push","Certificate","_extractCommonName","SubjectName","IssuerName","Thumbprint","ValidFromDate","ValidToDate","Close","getCadesProp","propName","_cadesCertificate","propertyValue","getSystemInfo","sysInfo","cadesVersion","cspVersion","cadesAbout","PluginVersion","CSPVersion","Version","toString","getCertificate","thumbprint","availableCertificates","foundCertificate","find","cert","pluginObject","plugin_resolved","plugin_reject","plugin_resolve","isOpera","isFireFox","isEdge","isSafari","failed_extensions","resolve","reject","browserSpecs","check_browser","ru_cryptopro_npcades_10_native_bridge","callbacksCount","callbacks","resultForCallback","callbackId","resultArray","functionName","hasCallback","iframe","document","createElement","arrObjs","Array","setAttribute","encodeURIComponent","JSON","stringify","e","alert","documentElement","appendChild","parentNode","removeChild","JSModuleVersion","async_spawn","set","set_pluginObject","is_capilite_enabled","isNativeMessageSupported","ReleasePluginObjects","CreateObject","cadesplugin_load_timeout","setTimeout","check_load_timeout","set_constantValues","current_log_level","check_plugin_working","tem","ua","navigator","userAgent","M","version","exec","appName","appVersion","splice","cpcsp_console_log","level","msg","LOG_LEVEL_DEBUG","log","LOG_LEVEL_INFO","info","postMessage","CAPICOM_LOCAL_MACHINE_STORE","CADESCOM_LOCAL_MACHINE_STORE","CADESCOM_CURRENT_USER_STORE","CADESCOM_CONTAINER_STORE","CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING","CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE","XmlDsigGost3410UrlObsolete","XmlDsigGost3411UrlObsolete","XmlDsigGost3410Url","XmlDsigGost3411Url","CADESCOM_CADES_DEFAULT","CADESCOM_CADES_BES","CADESCOM_CADES_T","CADESCOM_CADES_X_LONG_TYPE_1","CADESCOM_PKCS7_TYPE","CADESCOM_ENCODE_BASE64","CADESCOM_ENCODE_BINARY","CADESCOM_ENCODE_ANY","CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT","CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN","CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY","CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME","CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME","CAPICOM_CERTIFICATE_FIND_SHA1_HASH","CAPICOM_CERTIFICATE_FIND_ISSUER_NAME","CAPICOM_CERTIFICATE_FIND_ROOT_NAME","CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME","CAPICOM_CERTIFICATE_FIND_EXTENSION","CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY","CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY","CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID","CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED","CAPICOM_CERTIFICATE_FIND_KEY_USAGE","CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE","CAPICOM_PROPID_ENHKEY_USAGE","CAPICOM_OID_OTHER","CAPICOM_OID_KEY_USAGE_EXTENSION","CAPICOM_EKU_CLIENT_AUTH","CAPICOM_EKU_SMARTCARD_LOGON","CAPICOM_EKU_OTHER","CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CADESCOM_ATTRIBUTE_OTHER","CADESCOM_STRING_TO_UCS2LE","CADESCOM_BASE64_TO_BINARY","CADESCOM_DISPLAY_DATA_NONE","CADESCOM_DISPLAY_DATA_CONTENT","CADESCOM_DISPLAY_DATA_ATTRIBUTE","CADESCOM_ENCRYPTION_ALGORITHM_RC2","CADESCOM_ENCRYPTION_ALGORITHM_RC4","CADESCOM_ENCRYPTION_ALGORITHM_DES","CADESCOM_ENCRYPTION_ALGORITHM_3DES","CADESCOM_ENCRYPTION_ALGORITHM_AES","CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89","CADESCOM_HASH_ALGORITHM_SHA1","CADESCOM_HASH_ALGORITHM_MD2","CADESCOM_HASH_ALGORITHM_MD4","CADESCOM_HASH_ALGORITHM_MD5","CADESCOM_HASH_ALGORITHM_SHA_256","CADESCOM_HASH_ALGORITHM_SHA_384","CADESCOM_HASH_ALGORITHM_SHA_512","CADESCOM_HASH_ALGORITHM_CP_GOST_3411","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC","CADESCOM_AllowNone","CADESCOM_AllowNoOutstandingRequest","CADESCOM_AllowUntrustedCertificate","CADESCOM_AllowUntrustedRoot","CADESCOM_SkipInstallToStore","generatorFunc","continuer","verb","arg","result","generator","err","done","then","onFulfilled","onRejected","slice","arguments","isIE","isIOS","call_ru_cryptopro_npcades_10_native_bridge","getElementById","ActiveXObject","decimalToHexString","number","toUpperCase","GetMessageFromException","exception","cpcsp_chrome_nmcades","array","tmpobj","ex","response","str","show_firefox_missing_extension_dialog","cadesplugin_skip_extension_install","ovr","id","style","innerHTML","getElementsByTagName","addEventListener","plugin_loaded_error","visibility","install_opera_extension","event","opr","addons","installExtension","location","reload","stopPropagation","firefox_or_edge_nmcades_onload","check_chrome_plugin","plugin_loaded","nmcades_api_onload","data","url","substring","indexOf","fileref","onerror","onload","load_extension","load_npapi_plugin","elem","elem1","elem2","createPromise","check_npapi_plugin","display","mimetype","mimeTypes","enabledPlugin","div","length","readyState","obj","EnableInternalCSP","issuerName","subjectName","validFrom","validTo","getOwnerInfo","getInfo","SUBJECT_TAGS_TRANSLATIONS","getIssuerInfo","ISSUER_TAGS_TRANSLATIONS","getExtendedKeyUsage","getDecodedExtendedKeyUsage","getAlgorithm","isValid","exportBase64","hasExtendedKeyUsage","oids","CAPICOM_ACTIVE_DIRECTORY_USER_STORE","CAPICOM_MEMORY_STORE","CAPICOM_PROPID_ACCESS_STATE","CAPICOM_PROPID_ARCHIVED","CAPICOM_PROPID_ARCHIVED_KEY_HASH","CAPICOM_PROPID_AUTO_ENROLL","CAPICOM_PROPID_CROSS_CERT_DIST_POINTS","CAPICOM_PROPID_CTL_USAGE","CAPICOM_PROPID_DATE_STAMP","CAPICOM_PROPID_DESCRIPTION","CAPICOM_PROPID_EFS","CAPICOM_PROPID_ENROLLMENT","CAPICOM_PROPID_EXTENDED_ERROR_INFO","CAPICOM_PROPID_FIRST_RESERVED","CAPICOM_PROPID_FIRST_USER","CAPICOM_PROPID_FORTEZZA_DATA","CAPICOM_PROPID_FRIENDLY_NAME","CAPICOM_PROPID_HASH_PROP","CAPICOM_PROPID_IE30_RESERVED","CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH","CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH","CAPICOM_PROPID_KEY_CONTEXT","CAPICOM_PROPID_KEY_IDENTIFIER","CAPICOM_PROPID_KEY_PROV_HANDLE","CAPICOM_PROPID_KEY_SPEC","CAPICOM_PROPID_LAST_RESERVED","CAPICOM_PROPID_LAST_USER","CAPICOM_PROPID_MD5_HASH","CAPICOM_PROPID_NEXT_UPDATE_LOCATION","CAPICOM_PROPID_PUBKEY_ALG_PARA","CAPICOM_PROPID_PUBKEY_HASH_RESERVED","CAPICOM_PROPID_PVK_FILE","CAPICOM_PROPID_RENEWAL","CAPICOM_PROPID_SHA1_HASH","CAPICOM_PROPID_SIGNATURE_HASH","CAPICOM_PROPID_SMART_CARD_DATA","CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH","CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH","CAPICOM_PROPID_UNKNOWN","CAPICOM_SMART_CARD_USER_STORE","CAPICOM_STORE_OPEN_EXISTING_ONLY","CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED","CAPICOM_STORE_OPEN_READ_ONLY","CAPICOM_STORE_OPEN_READ_WRITE","CHECK_NONE","CHECK_OFFLINE_REVOCATION_STATUS","CHECK_ONLINE_REVOCATION_STATUS","CHECK_SIGNATURE_VALIDITY","CHECK_TIME_VALIDITY","CHECK_TRUSTED_ROOT","TRUST_CTL_IS_NOT_SIGNATURE_VALID","TRUST_CTL_IS_NOT_TIME_VALID","TRUST_CTL_IS_NOT_VALID_FOR_USAGE","TRUST_IS_CYCLIC","TRUST_IS_NOT_SIGNATURE_VALID","TRUST_IS_NOT_TIME_NESTED","TRUST_IS_NOT_TIME_VALID","TRUST_IS_NOT_VALID_FOR_USAGE","TRUST_IS_PARTIAL_CHAIN","TRUST_IS_REVOKED","TRUST_IS_UNTRUSTED_ROOT","TRUST_REVOCATION_STATUS_UNKNOWN","possibleNames","translation","OIDS_DICTIONARY","base64","Export","cadesPublicKey","algorithmInfo","algorithm","oid","PublicKey","Algorithm","FriendlyName","Value","reduce","decodedOids","oidCode","count","OIDS","ExtendedKeyUsage","EKUs","cadesExtendedKeyUsage","OID","tags","entitiesPath","entities","_parseCertInfo","tagsTranslations","rawInfo","extractedEntities","map","group","segmentsMatch","trim","title","description","oidIdentifierMatch","oidIdentifier","isTranslated","oidTranslation","tagTranslation","tag","certOids","isArray","every","oidToCheck","some","certOid","IsValid","Result","isValidSystemSetup","systemInfo","_isSupportedCadesVersion","_isSupportedCSPVersion","major","patch","Number","createSignature","dataBase64","detachedSignature","_getCadesCert","cadesAttrs","cadesSignedData","cadesSigner","cadesAuthAttrs","signature","currentTime","_getDateObj","Date","propset_Name","propset_Value","propset_Certificate","AuthenticatedAttributes2","Add","propset_ContentEncoding","propset_Content","propset_Options","SignCades","cadesCertificateList","certificatesCount","dateObj","getVarDate"],"mappings":"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","file":"crypto-pro.min.js","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})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","import { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\n\ntype Unpromisify<T> = T extends Promise<infer R> ? R : T;\n\nlet isSetLogLevel = false;\nlet isPluginLoaded = false;\n\nexport const _afterPluginsLoaded = <T extends (...args: any[]) => any>(\n fn: T,\n): ((...args: Parameters<T>) => Promise<Unpromisify<ReturnType<T>>>) => {\n const canPromise = Boolean(window.Promise);\n\n return async function (...args: Parameters<T>): Promise<Unpromisify<ReturnType<T>>> {\n if (!isPluginLoaded) {\n try {\n require('../vendor/cadesplugin_api');\n } catch (error) {\n console.error(error);\n\n throw new Error(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при подключении модуля для работы с Cades plugin',\n );\n }\n\n isPluginLoaded = true;\n }\n\n const { cadesplugin } = window;\n\n if (!canPromise) {\n throw new Error('Необходим полифилл для Promise');\n }\n\n if (!cadesplugin) {\n throw new Error('Не подключен модуль для работы с Cades plugin');\n }\n\n if (!isSetLogLevel) {\n cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_ERROR);\n\n isSetLogLevel = true;\n }\n\n try {\n await cadesplugin;\n } catch (error) {\n console.error(error);\n\n throw new Error(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации модуля для работы с Cades plugin',\n );\n }\n\n return await fn.apply(this, args);\n };\n};\n","export const _extractMeaningfulErrorMessage = (error: Error): string | null => {\n let errorContainer = window.cadesplugin?.getLastError && window.cadesplugin.getLastError(error);\n\n if (!errorContainer?.message) {\n if (!error.message) {\n return null;\n }\n\n errorContainer = error;\n }\n\n const containsRussianLetters = /[а-яА-Я]/.test(errorContainer.message);\n\n if (!containsRussianLetters) {\n return null;\n }\n\n const searchResult = errorContainer.message.match(/^(.*?)(?:(?:\\.?\\s?\\(?0x)|(?:\\.?$))/);\n\n return searchResult ? searchResult[1] : null;\n};\n","// синтетические переменные, которые подменяются в рантайме\nexport const __cadesAsyncToken__ = {};\nexport const __createCadesPluginObject__ = (...args): any => ({});\n\nfunction getGeneratorConstructor(): GeneratorFunction {\n return new Function('', 'return Object.getPrototypeOf(function*(){}).constructor')();\n}\n\nexport const _generateCadesFn = (callback: Function): string => {\n const { cadesplugin } = window;\n const cadesGeneratorsAPI = Boolean(cadesplugin.CreateObjectAsync);\n const callbackName = callback.name || 'dynamicFn';\n const callbackLiteral = String(callback);\n const callbackArguments = callbackLiteral.match(/^function[\\s\\w]*?\\((.*?)\\)/)?.[1] || '';\n const callbackBody = callbackLiteral.replace(/^.*?{([\\s\\S]*?)}$/, '$1');\n let crossEnvCallbackLiteral = String(\n new (cadesGeneratorsAPI ? getGeneratorConstructor() : Function)(callbackArguments, callbackBody),\n );\n\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\n /\\w+?\\.__createCadesPluginObject__(\\([\\s\\S]*?\\))/gm,\n `cadesplugin.CreateObject${cadesGeneratorsAPI ? 'Async' : ''}$1`,\n );\n\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\n /\\w+?\\.__cadesAsyncToken__\\s*?\\+\\s*?\\b/gm,\n cadesGeneratorsAPI ? 'yield ' : '',\n );\n\n if (!cadesGeneratorsAPI) {\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(/propset_(.*?)\\((.*?)\\)/gm, '$1 = $2');\n }\n\n return [\n cadesGeneratorsAPI ? `cadesplugin.async_spawn(${crossEnvCallbackLiteral});` : `(${crossEnvCallbackLiteral})();`,\n `//# sourceURL=crypto-pro_${callbackName}.js`,\n ].join('');\n};\n","export * from './cades-constants';\nexport * from './issuer-tags-translations';\nexport * from './oids-dictionary';\nexport * from './subject-tags-translations';\n","import { CadesCertificate, Certificate } from './certificate';\nimport { CAPICOM_PROPID_KEY_PROV_INFO } from '../constants';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractCommonName } from '../helpers/_extractCommonName';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\nlet certificatesCache: Certificate[];\n\n/**\n * Возвращает список сертификатов, доступных пользователю в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getUserCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\n const { cadesplugin } = window;\n\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n return eval(\n _generateCadesFn(function getUserCertificates(): Certificate[] {\n let cadesStore;\n\n try {\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesStore.Open(\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\n cadesplugin.CAPICOM_MY_STORE,\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\n )\n );\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\n }\n\n let cadesCertificates;\n let cadesCertificatesCount;\n\n try {\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\n\n if (cadesCertificates) {\n cadesCertificates =\n __cadesAsyncToken__ + cadesCertificates.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID);\n\n /**\n * Не рассматриваются сертификаты, в которых отсутствует закрытый ключ\n * или не действительны на данный момент\n */\n cadesCertificates =\n __cadesAsyncToken__ +\n cadesCertificates.Find(\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,\n CAPICOM_PROPID_KEY_PROV_INFO,\n );\n\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\n }\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\n }\n\n if (!cadesCertificatesCount) {\n throw new Error('Нет доступных сертификатов');\n }\n\n const certificateList: Certificate[] = [];\n\n try {\n while (cadesCertificatesCount) {\n const cadesCertificate: CadesCertificate =\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\n\n certificateList.push(\n new Certificate(\n cadesCertificate,\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\n ),\n );\n\n cadesCertificatesCount--;\n }\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\n }\n\n cadesStore.Close();\n\n certificatesCache = certificateList;\n\n return certificatesCache;\n }),\n );\n});\n","export * from './certificate';\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\nimport { Certificate } from './certificate';\n\n/**\n * Возвращает указанное внутренее свойство у сертификата в формате Cades\n *\n * @param propName = наименование свойства\n * @returns значение запрошенного свойства\n */\nexport const getCadesProp = _afterPluginsLoaded(function (propName: string): any {\n const cadesCertificate = (this as Certificate)._cadesCertificate;\n\n return eval(\n _generateCadesFn(function getCadesProp() {\n let propertyValue;\n\n try {\n propertyValue = __cadesAsyncToken__ + cadesCertificate[propName];\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при обращении к свойству сертификата');\n }\n\n return propertyValue;\n }),\n );\n});\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\nexport interface SystemInfo {\n cadesVersion: string;\n cspVersion: string;\n}\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о CSP и плагине\n */\nexport const getSystemInfo = _afterPluginsLoaded(\n (): SystemInfo => {\n const sysInfo = {\n cadesVersion: null,\n cspVersion: null,\n };\n\n return eval(\n _generateCadesFn(function getSystemInfo(): SystemInfo {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\n sysInfo.cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\n\n if (!sysInfo.cadesVersion) {\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\n }\n\n sysInfo.cadesVersion = __cadesAsyncToken__ + sysInfo.cadesVersion.toString();\n sysInfo.cspVersion = __cadesAsyncToken__ + sysInfo.cspVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о системе');\n }\n\n return sysInfo;\n }),\n );\n },\n);\n","export * from './api';\n","export * from './getCertificate';\nexport * from './getUserCertificates';\nexport * from './getSystemInfo';\nexport * from './isValidSystemSetup';\nexport * from './createSignature';\nexport * from './certificate';\n","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getUserCertificates } from './getUserCertificates';\n\n/**\n * Возвращает сертификат по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @returns сертификат\n */\nexport const getCertificate = _afterPluginsLoaded(\n async (thumbprint: string): Promise<Certificate> => {\n if (!thumbprint) {\n throw new Error('Отпечаток не указан');\n }\n\n const availableCertificates: Certificate[] = await getUserCertificates();\n const foundCertificate: Certificate = availableCertificates.find((cert) => cert.thumbprint === thumbprint);\n\n if (!foundCertificate) {\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден`);\n }\n\n return foundCertificate;\n },\n);\n",";(function () {\n //already loaded\n if(window.cadesplugin)\n return;\n\n var pluginObject;\n var plugin_resolved = 0;\n var plugin_reject;\n var plugin_resolve;\n var isOpera = 0;\n var isFireFox = 0;\n var isEdge = 0;\n var isSafari = 0;\n var failed_extensions = 0;\n\n var canPromise = !!window.Promise;\n var cadesplugin;\n\n if(canPromise)\n {\n cadesplugin = new Promise(function(resolve, reject)\n {\n plugin_resolve = resolve;\n plugin_reject = reject;\n });\n } else\n {\n cadesplugin = {};\n }\n\n function check_browser() {\n var ua= navigator.userAgent, tem, M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n if(/trident/i.test(M[1])){\n tem= /\\brv[ :]+(\\d+)/g.exec(ua) || [];\n return {name:'IE',version:(tem[1] || '')};\n }\n if(M[1]=== 'Chrome'){\n tem= ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if(tem!= null) return {name:tem[1].replace('OPR', 'Opera'),version:tem[2]};\n }\n M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\n if((tem= ua.match(/version\\/(\\d+)/i))!= null) M.splice(1, 1, tem[1]);\n return {name:M[0],version:M[1]};\n }\n var browserSpecs = check_browser();\n\n function cpcsp_console_log(level, msg){\n //IE9 не может писать в консоль если не открыта вкладка developer tools\n if(typeof(console) === 'undefined')\n return;\n if (level <= cadesplugin.current_log_level ){\n if (level === cadesplugin.LOG_LEVEL_DEBUG)\n console.log(\"DEBUG: %s\", msg);\n if (level === cadesplugin.LOG_LEVEL_INFO)\n console.info(\"INFO: %s\", msg);\n if (level === cadesplugin.LOG_LEVEL_ERROR)\n console.error(\"ERROR: %s\", msg);\n return;\n }\n }\n\n function set_log_level(level){\n if (!((level === cadesplugin.LOG_LEVEL_DEBUG) ||\n (level === cadesplugin.LOG_LEVEL_INFO) ||\n (level === cadesplugin.LOG_LEVEL_ERROR))){\n cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR, \"cadesplugin_api.js: Incorrect log_level: \" + level);\n return;\n }\n cadesplugin.current_log_level = level;\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = DEBUG\");\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = INFO\");\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = ERROR\");\n if(isNativeMessageSupported())\n {\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\n window.postMessage(\"set_log_level=debug\", \"*\");\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\n window.postMessage(\"set_log_level=info\", \"*\");\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\n window.postMessage(\"set_log_level=error\", \"*\");\n }\n }\n\n function set_constantValues()\n {\n cadesplugin.CAPICOM_LOCAL_MACHINE_STORE = 1;\n cadesplugin.CAPICOM_CURRENT_USER_STORE = 2;\n cadesplugin.CADESCOM_LOCAL_MACHINE_STORE = 1;\n cadesplugin.CADESCOM_CURRENT_USER_STORE = 2;\n cadesplugin.CADESCOM_CONTAINER_STORE = 100;\n\n cadesplugin.CAPICOM_MY_STORE = \"My\";\n\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\n\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\n\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\n\n cadesplugin.XmlDsigGost3410UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411\";\n cadesplugin.XmlDsigGost3411UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr3411\";\n cadesplugin.XmlDsigGost3410Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411\";\n cadesplugin.XmlDsigGost3411Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411\";\n\n cadesplugin.CADESCOM_CADES_DEFAULT = 0;\n cadesplugin.CADESCOM_CADES_BES = 1;\n cadesplugin.CADESCOM_CADES_T = 0x5;\n cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\n cadesplugin.CADESCOM_PKCS7_TYPE = 0xffff;\n\n cadesplugin.CADESCOM_ENCODE_BASE64 = 0;\n cadesplugin.CADESCOM_ENCODE_BINARY = 1;\n cadesplugin.CADESCOM_ENCODE_ANY = -1;\n\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\n\n cadesplugin.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\n cadesplugin.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\n\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\n cadesplugin.CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\n\n cadesplugin.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\n\n cadesplugin.CAPICOM_PROPID_ENHKEY_USAGE = 9;\n\n cadesplugin.CAPICOM_OID_OTHER = 0;\n cadesplugin.CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\n\n cadesplugin.CAPICOM_EKU_CLIENT_AUTH = 2;\n cadesplugin.CAPICOM_EKU_SMARTCARD_LOGON = 5;\n cadesplugin.CAPICOM_EKU_OTHER = 0;\n\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\n cadesplugin.CADESCOM_ATTRIBUTE_OTHER = -1;\n\n cadesplugin.CADESCOM_STRING_TO_UCS2LE = 0;\n cadesplugin.CADESCOM_BASE64_TO_BINARY = 1;\n\n cadesplugin.CADESCOM_DISPLAY_DATA_NONE = 0;\n cadesplugin.CADESCOM_DISPLAY_DATA_CONTENT = 1;\n cadesplugin.CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\n\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\n\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA1 = 0;\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD2 = 1;\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD4 = 2;\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD5 = 3;\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\n\n cadesplugin.LOG_LEVEL_DEBUG = 4;\n cadesplugin.LOG_LEVEL_INFO = 2;\n cadesplugin.LOG_LEVEL_ERROR = 1;\n\n cadesplugin.CADESCOM_AllowNone = 0;\n cadesplugin.CADESCOM_AllowNoOutstandingRequest = 0x1;\n cadesplugin.CADESCOM_AllowUntrustedCertificate = 0x2;\n cadesplugin.CADESCOM_AllowUntrustedRoot = 0x4;\n cadesplugin.CADESCOM_SkipInstallToStore = 0x10000000;\n }\n\n function async_spawn(generatorFunc) {\n function continuer(verb, arg) {\n var result;\n try {\n result = generator[verb](arg);\n } catch (err) {\n return Promise.reject(err);\n }\n if (result.done) {\n return result.value;\n } else {\n return Promise.resolve(result.value).then(onFulfilled, onRejected);\n }\n }\n var generator = generatorFunc(Array.prototype.slice.call(arguments, 1));\n var onFulfilled = continuer.bind(continuer, \"next\");\n var onRejected = continuer.bind(continuer, \"throw\");\n return onFulfilled();\n }\n\n function isIE() {\n // var retVal = ((\"Microsoft Internet Explorer\" == navigator.appName) || // IE < 11\n // navigator.userAgent.match(/Trident\\/./i)); // IE 11\n return (browserSpecs.name === 'IE' || browserSpecs.name === 'MSIE');\n }\n\n function isIOS() {\n return (navigator.userAgent.match(/ipod/i) ||\n navigator.userAgent.match(/ipad/i) ||\n navigator.userAgent.match(/iphone/i));\n }\n\n function isNativeMessageSupported()\n {\n // В IE работаем через NPAPI\n if(isIE())\n return false;\n // В Edge работаем через NativeMessage\n if(browserSpecs.name === 'Edge') {\n isEdge = true;\n return true;\n }\n // В Chrome, Firefox, Safari и Opera работаем через асинхронную версию в зависимости от версии\n if(browserSpecs.name === 'Opera') {\n isOpera = true;\n if(browserSpecs.version >= 33){\n return true;\n }\n else{\n return false;\n }\n }\n if(browserSpecs.name === 'Firefox') {\n isFireFox = true;\n if(browserSpecs.version >= 52){\n return true;\n }\n else{\n return false;\n }\n }\n if(browserSpecs.name === 'Chrome') {\n if(browserSpecs.version >= 42){\n return true;\n }\n else{\n return false;\n }\n }\n //В Сафари начиная с 12 версии нет NPAPI\n if(browserSpecs.name === 'Safari') {\n isSafari = true;\n if(browserSpecs.version >= 12) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n // Функция активации объектов КриптоПро ЭЦП Browser plug-in\n function CreateObject(name) {\n if (isIOS()) {\n // На iOS для создания объектов используется функция\n // call_ru_cryptopro_npcades_10_native_bridge, определенная в IOS_npcades_supp.js\n return call_ru_cryptopro_npcades_10_native_bridge(\"CreateObject\", [name]);\n }\n if (isIE()) {\n // В Internet Explorer создаются COM-объекты\n if (name.match(/X509Enrollment/i)) {\n try {\n // Объекты CertEnroll пробуем создавать через нашу фабрику,\n // если не получилось то через CX509EnrollmentWebClassFactory\n var objCertEnrollClassFactory = document.getElementById(\"webClassFactory\");\n return objCertEnrollClassFactory.CreateObject(name);\n }\n catch (e) {\n try {\n var objWebClassFactory = document.getElementById(\"certEnrollClassFactory\");\n return objWebClassFactory.CreateObject(name);\n }\n catch (err) {\n throw (\"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS\");\n }\n }\n }\n // Объекты CAPICOM и CAdESCOM создаются через CAdESCOM.WebClassFactory\n try {\n var objWebClassFactory = document.getElementById(\"webClassFactory\");\n return objWebClassFactory.CreateObject(name);\n }\n catch (e) {\n // Для версий плагина ниже 2.0.12538\n return new ActiveXObject(name);\n }\n }\n // создаются объекты NPAPI\n return pluginObject.CreateObject(name);\n }\n\n function decimalToHexString(number) {\n if (number < 0) {\n number = 0xFFFFFFFF + number + 1;\n }\n\n return number.toString(16).toUpperCase();\n }\n\n function GetMessageFromException(e) {\n var err = e.message;\n if (!err) {\n err = e;\n } else if (e.number) {\n err += \" (0x\" + decimalToHexString(e.number) + \")\";\n }\n return err;\n }\n\n function getLastError(exception) {\n if(isNativeMessageSupported() || isIE() || isIOS() ) {\n return GetMessageFromException(exception);\n }\n\n try {\n return pluginObject.getLastError();\n } catch(e) {\n return GetMessageFromException(exception);\n }\n }\n\n // Функция для удаления созданных объектов\n function ReleasePluginObjects() {\n return cpcsp_chrome_nmcades.ReleasePluginObjects();\n }\n\n // Функция активации асинхронных объектов КриптоПро ЭЦП Browser plug-in\n function CreateObjectAsync(name) {\n return pluginObject.CreateObjectAsync(name);\n }\n\n //Функции для IOS\n var ru_cryptopro_npcades_10_native_bridge = {\n callbacksCount : 1,\n callbacks : {},\n\n // Automatically called by native layer when a result is available\n resultForCallback : function resultForCallback(callbackId, resultArray) {\n var callback = ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId];\n if (!callback) return;\n callback.apply(null,resultArray);\n },\n\n // Use this in javascript to request native objective-c code\n // functionName : string (I think the name is explicit :p)\n // args : array of arguments\n // callback : function with n-arguments that is going to be called when the native code returned\n call : function call(functionName, args, callback) {\n var hasCallback = callback && typeof callback === \"function\";\n var callbackId = hasCallback ? ru_cryptopro_npcades_10_native_bridge.callbacksCount++ : 0;\n\n if (hasCallback)\n ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId] = callback;\n\n var iframe = document.createElement(\"IFRAME\");\n var arrObjs = new Array(\"_CPNP_handle\");\n try{\n iframe.setAttribute(\"src\", \"cpnp-js-call:\" + functionName + \":\" + callbackId+ \":\" + encodeURIComponent(JSON.stringify(args, arrObjs)));\n } catch(e){\n alert(e);\n }\n document.documentElement.appendChild(iframe);\n iframe.parentNode.removeChild(iframe);\n iframe = null;\n }\n };\n\n function call_ru_cryptopro_npcades_10_native_bridge(functionName, array){\n var tmpobj;\n var ex;\n ru_cryptopro_npcades_10_native_bridge.call(functionName, array, function(e, response){\n ex = e;\n var str='tmpobj='+response;\n eval(str);\n if (typeof (tmpobj) === \"string\"){\n tmpobj = tmpobj.replace(/\\\\\\n/gm, \"\\n\");\n tmpobj = tmpobj.replace(/\\\\\\r/gm, \"\\r\");\n }\n });\n if(ex)\n throw ex;\n return tmpobj;\n }\n\n function show_firefox_missing_extension_dialog()\n {\n if (!window.cadesplugin_skip_extension_install)\n {\n var ovr = document.createElement('div');\n ovr.id = \"cadesplugin_ovr\";\n ovr.style = \"visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)\";\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'>\" +\n \"<button id='cadesplugin_close_install' style='float: right; font-size: 10px; background: transparent; border: 1; margin: -5px'>X</button>\" +\n \"<p>Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\n \"<p><a href='https://www.cryptopro.ru/sites/default/files/products/cades/extensions/firefox_cryptopro_extension_latest.xpi'>Скачать расширение</a></p>\" +\n \"</div>\";\n document.getElementsByTagName(\"Body\")[0].appendChild(ovr);\n document.getElementById(\"cadesplugin_close_install\").addEventListener('click',function()\n {\n plugin_loaded_error(\"Плагин недоступен\");\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\n });\n\n ovr.addEventListener('click',function()\n {\n plugin_loaded_error(\"Плагин недоступен\");\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\n });\n ovr.style.visibility=\"visible\";\n }\n }\n\n\n //Выводим окно поверх других с предложением установить расширение для Opera.\n //Если установленна переменная cadesplugin_skip_extension_install - не предлагаем установить расширение\n function install_opera_extension()\n {\n if (!window.cadesplugin_skip_extension_install)\n {\n document.addEventListener('DOMContentLoaded', function() {\n var ovr = document.createElement('div');\n ovr.id = \"cadesplugin_ovr\";\n ovr.style = \"visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)\";\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'>\" +\n \"<button id='cadesplugin_close_install' style='float: right; font-size: 10px; background: transparent; border: 1; margin: -5px'>X</button>\" +\n \"<p>Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо установить расширение из каталога дополнений Opera.\" +\n \"<p><button id='cadesplugin_install' style='font:12px Arial'>Установить расширение</button></p>\" +\n \"</div>\";\n document.getElementsByTagName(\"Body\")[0].appendChild(ovr);\n var btn_install = document.getElementById(\"cadesplugin_install\");\n btn_install.addEventListener('click', function(event) {\n opr.addons.installExtension(\"epebfcehmdedogndhlcacafjaacknbcm\",\n function()\n {\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\n location.reload();\n },\n function(){})\n });\n document.getElementById(\"cadesplugin_close_install\").addEventListener('click',function()\n {\n plugin_loaded_error(\"Плагин недоступен\");\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\n });\n\n ovr.addEventListener('click',function()\n {\n plugin_loaded_error(\"Плагин недоступен\");\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\n });\n ovr.style.visibility=\"visible\";\n document.getElementById(\"cadesplugin_ovr_item\").addEventListener('click',function(e){\n e.stopPropagation();\n });\n });\n }else\n {\n plugin_loaded_error(\"Плагин недоступен\");\n }\n }\n\n function firefox_or_edge_nmcades_onload() {\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\n }\n\n function nmcades_api_onload () {\n window.postMessage(\"cadesplugin_echo_request\", \"*\");\n window.addEventListener(\"message\", function (event){\n if (typeof(event.data) !== \"string\" || !event.data.match(\"cadesplugin_loaded\"))\n return;\n if(isFireFox || isEdge || isSafari)\n {\n // Для Firefox, Сафари, Edge вместе с сообщением cadesplugin_loaded прилетает url для загрузки nmcades_plugin_api.js\n var url = event.data.substring(event.data.indexOf(\"url:\") + 4);\n var fileref = document.createElement('script');\n fileref.setAttribute(\"type\", \"text/javascript\");\n fileref.setAttribute(\"src\", url);\n fileref.onerror = plugin_loaded_error;\n fileref.onload = firefox_or_edge_nmcades_onload;\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\n // Для Firefox, Safari и Edge у нас только по одному расширению.\n failed_extensions++;\n }else {\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\n }\n }, false);\n }\n\n //Загружаем расширения для Chrome, Opera, YaBrowser, FireFox, Edge, Safari\n function load_extension()\n {\n\n if(isFireFox || isEdge || isSafari){\n // вызываем callback руками т.к. нам нужно узнать ID расширения. Он уникальный для браузера.\n nmcades_api_onload();\n } else {\n // в асинхронном варианте для chrome и opera подключаем оба расширения\n var fileref = document.createElement('script');\n fileref.setAttribute(\"type\", \"text/javascript\");\n fileref.setAttribute(\"src\", \"chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js\");\n fileref.onerror = plugin_loaded_error;\n fileref.onload = nmcades_api_onload;\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\n fileref = document.createElement('script');\n fileref.setAttribute(\"type\", \"text/javascript\");\n fileref.setAttribute(\"src\", \"chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js\");\n fileref.onerror = plugin_loaded_error;\n fileref.onload = nmcades_api_onload;\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\n }\n }\n\n //Загружаем плагин для NPAPI\n function load_npapi_plugin()\n {\n var elem = document.createElement('object');\n elem.setAttribute(\"id\", \"cadesplugin_object\");\n elem.setAttribute(\"type\", \"application/x-cades\");\n elem.setAttribute(\"style\", \"visibility: hidden\");\n document.getElementsByTagName(\"body\")[0].appendChild(elem);\n pluginObject = document.getElementById(\"cadesplugin_object\");\n if(isIE())\n {\n var elem1 = document.createElement('object');\n elem1.setAttribute(\"id\", \"certEnrollClassFactory\");\n elem1.setAttribute(\"classid\", \"clsid:884e2049-217d-11da-b2a4-000e7bbb2b09\");\n elem1.setAttribute(\"style\", \"visibility: hidden\");\n document.getElementsByTagName(\"body\")[0].appendChild(elem1);\n var elem2 = document.createElement('object');\n elem2.setAttribute(\"id\", \"webClassFactory\");\n elem2.setAttribute(\"classid\", \"clsid:B04C8637-10BD-484E-B0DA-B8A039F60024\");\n elem2.setAttribute(\"style\", \"visibility: hidden\");\n document.getElementsByTagName(\"body\")[0].appendChild(elem2);\n }\n }\n\n //Отправляем событие что все ок.\n function plugin_loaded()\n {\n plugin_resolved = 1;\n if(canPromise)\n {\n plugin_resolve();\n }else {\n window.postMessage(\"cadesplugin_loaded\", \"*\");\n }\n }\n\n //Отправляем событие что сломались.\n function plugin_loaded_error(msg)\n {\n if(isNativeMessageSupported())\n {\n //в асинхронном варианте подключаем оба расширения, если сломались оба пробуем установить для Opera\n failed_extensions++;\n if(failed_extensions<2)\n return;\n if(isOpera && (typeof(msg) === 'undefined'|| typeof(msg) === 'object'))\n {\n install_opera_extension();\n return;\n }\n }\n if(typeof(msg) === 'undefined' || typeof(msg) === 'object')\n msg = \"Плагин недоступен\";\n plugin_resolved = 1;\n if(canPromise)\n {\n plugin_reject(msg);\n } else {\n window.postMessage(\"cadesplugin_load_error\", \"*\");\n }\n }\n\n //проверяем что у нас хоть какое то событие ушло, и если не уходило кидаем еще раз ошибку\n function check_load_timeout()\n {\n if(plugin_resolved === 1)\n return;\n if(isFireFox)\n {\n show_firefox_missing_extension_dialog();\n }\n plugin_resolved = 1;\n if(canPromise)\n {\n plugin_reject(\"Истекло время ожидания загрузки плагина\");\n } else {\n window.postMessage(\"cadesplugin_load_error\", \"*\");\n }\n\n }\n\n //Вспомогательная функция для NPAPI\n function createPromise(arg)\n {\n return new Promise(arg);\n }\n\n function check_npapi_plugin (){\n try {\n var oAbout = CreateObject(\"CAdESCOM.About\");\n plugin_loaded();\n }\n catch (err) {\n document.getElementById(\"cadesplugin_object\").style.display = 'none';\n // Объект создать не удалось, проверим, установлен ли\n // вообще плагин. Такая возможность есть не во всех браузерах\n var mimetype = navigator.mimeTypes[\"application/x-cades\"];\n if (mimetype) {\n var plugin = mimetype.enabledPlugin;\n if (plugin) {\n plugin_loaded_error(\"Плагин загружен, но не создаются обьекты\");\n }else\n {\n plugin_loaded_error(\"Ошибка при загрузке плагина\");\n }\n }else\n {\n plugin_loaded_error(\"Плагин недоступен\");\n }\n }\n }\n\n //Проверяем работает ли плагин\n function check_plugin_working()\n {\n var div = document.createElement(\"div\");\n div.innerHTML = \"<!--[if lt IE 9]><i></i><![endif]-->\";\n var isIeLessThan9 = (div.getElementsByTagName(\"i\").length === 1);\n if (isIeLessThan9) {\n plugin_loaded_error(\"Internet Explorer версии 8 и ниже не поддерживается\");\n return;\n }\n\n if(isNativeMessageSupported())\n {\n load_extension();\n }else if(!canPromise) {\n window.addEventListener(\"message\", function (event){\n if (event.data !== \"cadesplugin_echo_request\")\n return;\n load_npapi_plugin();\n check_npapi_plugin();\n },\n false);\n }else\n {\n if(document.readyState === \"complete\"){\n load_npapi_plugin();\n check_npapi_plugin();\n } else {\n window.addEventListener(\"load\", function (event) {\n load_npapi_plugin();\n check_npapi_plugin();\n }, false);\n }\n }\n }\n\n function set_pluginObject(obj)\n {\n pluginObject = obj;\n }\n\n function is_capilite_enabled()\n {\n if ((typeof (cadesplugin.EnableInternalCSP) !== 'undefined') && cadesplugin.EnableInternalCSP)\n return true;\n return false;\n };\n\n //Export\n cadesplugin.JSModuleVersion = \"2.1.2\";\n cadesplugin.async_spawn = async_spawn;\n cadesplugin.set = set_pluginObject;\n cadesplugin.set_log_level = set_log_level;\n cadesplugin.getLastError = getLastError;\n cadesplugin.is_capilite_enabled = is_capilite_enabled;\n\n if(isNativeMessageSupported())\n {\n cadesplugin.CreateObjectAsync = CreateObjectAsync;\n cadesplugin.ReleasePluginObjects = ReleasePluginObjects;\n }\n\n if(!isNativeMessageSupported())\n {\n cadesplugin.CreateObject = CreateObject;\n }\n\n if(window.cadesplugin_load_timeout)\n {\n setTimeout(check_load_timeout, window.cadesplugin_load_timeout);\n }\n else\n {\n setTimeout(check_load_timeout, 20000);\n }\n\n set_constantValues();\n\n cadesplugin.current_log_level = cadesplugin.LOG_LEVEL_ERROR;\n window.cadesplugin = cadesplugin;\n check_plugin_working();\n}());\n","import { ISSUER_TAGS_TRANSLATIONS, SUBJECT_TAGS_TRANSLATIONS } from '../../constants';\nimport { TagTranslation } from '../../helpers/_parseCertInfo';\nimport { exportBase64 } from './exportBase64';\nimport { getAlgorithm } from './getAlgorithm';\nimport { getCadesProp } from './getCadesProp';\nimport { getDecodedExtendedKeyUsage, ExtendedKeysTranslations } from './getDecodedExtendedKeyUsage';\nimport { getExtendedKeyUsage } from './getExtendedKeyUsage';\nimport { getInfo } from './getInfo';\nimport { hasExtendedKeyUsage } from './hasExtendedKeyUsage';\nimport { isValid } from './isValid';\n\nexport type CadesCertificate = any;\n\nexport class Certificate {\n constructor(\n public _cadesCertificate: CadesCertificate,\n public name: string,\n public issuerName: string,\n public subjectName: string,\n public thumbprint: string,\n public validFrom: string,\n public validTo: string,\n ) {}\n\n public getOwnerInfo(): Promise<TagTranslation[]> {\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\n }\n\n public getIssuerInfo(): Promise<TagTranslation[]> {\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\n }\n\n public getExtendedKeyUsage(): Promise<string[]> {\n return getExtendedKeyUsage.call(this);\n }\n\n public getDecodedExtendedKeyUsage(): Promise<ExtendedKeysTranslations> {\n return getDecodedExtendedKeyUsage.call(this);\n }\n\n public getAlgorithm(): Promise<string> {\n return getAlgorithm.call(this);\n }\n\n public getCadesProp(propName): Promise<any> {\n return getCadesProp.call(this, propName);\n }\n\n public isValid(): Promise<boolean> {\n return isValid.call(this);\n }\n\n public exportBase64(): Promise<string> {\n return exportBase64.call(this);\n }\n\n public hasExtendedKeyUsage(oids): Promise<boolean> {\n return hasExtendedKeyUsage.call(this, oids);\n }\n}\n","export const CADESCOM_ATTRIBUTE_OTHER = -1;\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\nexport const CADESCOM_AllowNoOutstandingRequest = 1;\nexport const CADESCOM_AllowNone = 0;\nexport const CADESCOM_AllowUntrustedCertificate = 2;\nexport const CADESCOM_AllowUntrustedRoot = 4;\nexport const CADESCOM_BASE64_TO_BINARY = 0x01;\nexport const CADESCOM_CADES_BES = 1;\nexport const CADESCOM_CADES_DEFAULT = 0;\nexport const CADESCOM_CADES_T = 5;\nexport const CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\nexport const CADESCOM_CONTAINER_STORE = 100;\nexport const CADESCOM_CURRENT_USER_STORE = 2;\nexport const CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\nexport const CADESCOM_DISPLAY_DATA_CONTENT = 1;\nexport const CADESCOM_DISPLAY_DATA_NONE = 0;\nexport const CADESCOM_ENCODE_ANY = -1;\nexport const CADESCOM_ENCODE_BASE64 = 0;\nexport const CADESCOM_ENCODE_BINARY = 1;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\nexport const CADESCOM_HASH_ALGORITHM_MD2 = 1;\nexport const CADESCOM_HASH_ALGORITHM_MD4 = 2;\nexport const CADESCOM_HASH_ALGORITHM_MD5 = 3;\nexport const CADESCOM_HASH_ALGORITHM_SHA1 = 0;\nexport const CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\nexport const CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\nexport const CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\nexport const CADESCOM_LOCAL_MACHINE_STORE = 1;\nexport const CADESCOM_PKCS7_TYPE = 65535;\nexport const CADESCOM_STRING_TO_UCS2LE = 0x00;\nexport const CADESCOM_SkipInstallToStore = 268435456;\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\nexport const CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\nexport const CAPICOM_ACTIVE_DIRECTORY_USER_STORE = 3;\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\nexport const CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\nexport const CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\nexport const CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\nexport const CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\nexport const CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\nexport const CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\nexport const CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\nexport const CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\nexport const CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\nexport const CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\nexport const CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\nexport const CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\nexport const CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\nexport const CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\nexport const CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\nexport const CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\nexport const CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\nexport const CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\nexport const CAPICOM_CURRENT_USER_STORE = 2;\nexport const CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\nexport const CAPICOM_EKU_CLIENT_AUTH = 2;\nexport const CAPICOM_EKU_OTHER = 0;\nexport const CAPICOM_EKU_SMARTCARD_LOGON = 5;\nexport const CAPICOM_LOCAL_MACHINE_STORE = 1;\nexport const CAPICOM_MEMORY_STORE = 0;\nexport const CAPICOM_MY_STORE = 'My';\nexport const CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\nexport const CAPICOM_OID_OTHER = 0;\nexport const CAPICOM_PROPID_ACCESS_STATE = 14;\nexport const CAPICOM_PROPID_ARCHIVED = 19;\nexport const CAPICOM_PROPID_ARCHIVED_KEY_HASH = 65;\nexport const CAPICOM_PROPID_AUTO_ENROLL = 21;\nexport const CAPICOM_PROPID_CROSS_CERT_DIST_POINTS = 23;\nexport const CAPICOM_PROPID_CTL_USAGE = 9;\nexport const CAPICOM_PROPID_DATE_STAMP = 27;\nexport const CAPICOM_PROPID_DESCRIPTION = 13;\nexport const CAPICOM_PROPID_EFS = 17;\nexport const CAPICOM_PROPID_ENHKEY_USAGE = 9;\nexport const CAPICOM_PROPID_ENROLLMENT = 26;\nexport const CAPICOM_PROPID_EXTENDED_ERROR_INFO = 30;\nexport const CAPICOM_PROPID_FIRST_RESERVED = 66;\nexport const CAPICOM_PROPID_FIRST_USER = 0x00008000;\nexport const CAPICOM_PROPID_FORTEZZA_DATA = 18;\nexport const CAPICOM_PROPID_FRIENDLY_NAME = 11;\nexport const CAPICOM_PROPID_HASH_PROP = 3;\nexport const CAPICOM_PROPID_IE30_RESERVED = 7;\nexport const CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH = 24;\nexport const CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH = 28;\nexport const CAPICOM_PROPID_KEY_CONTEXT = 5;\nexport const CAPICOM_PROPID_KEY_IDENTIFIER = 20;\nexport const CAPICOM_PROPID_KEY_PROV_HANDLE = 1;\nexport const CAPICOM_PROPID_KEY_PROV_INFO = 2;\nexport const CAPICOM_PROPID_KEY_SPEC = 6;\nexport const CAPICOM_PROPID_LAST_RESERVED = 0x00007fff;\nexport const CAPICOM_PROPID_LAST_USER = 0x0000ffff;\nexport const CAPICOM_PROPID_MD5_HASH = 4;\nexport const CAPICOM_PROPID_NEXT_UPDATE_LOCATION = 10;\nexport const CAPICOM_PROPID_PUBKEY_ALG_PARA = 22;\nexport const CAPICOM_PROPID_PUBKEY_HASH_RESERVED = 8;\nexport const CAPICOM_PROPID_PVK_FILE = 12;\nexport const CAPICOM_PROPID_RENEWAL = 64;\nexport const CAPICOM_PROPID_SHA1_HASH = 3;\nexport const CAPICOM_PROPID_SIGNATURE_HASH = 15;\nexport const CAPICOM_PROPID_SMART_CARD_DATA = 16;\nexport const CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH = 29;\nexport const CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH = 25;\nexport const CAPICOM_PROPID_UNKNOWN = 0;\nexport const CAPICOM_SMART_CARD_USER_STORE = 4;\nexport const CAPICOM_STORE_OPEN_EXISTING_ONLY = 128;\nexport const CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = 256;\nexport const CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\nexport const CAPICOM_STORE_OPEN_READ_ONLY = 0;\nexport const CAPICOM_STORE_OPEN_READ_WRITE = 1;\nexport const CHECK_NONE = 0;\nexport const CHECK_OFFLINE_REVOCATION_STATUS = 16;\nexport const CHECK_ONLINE_REVOCATION_STATUS = 8;\nexport const CHECK_SIGNATURE_VALIDITY = 4;\nexport const CHECK_TIME_VALIDITY = 2;\nexport const CHECK_TRUSTED_ROOT = 1;\nexport const LOG_LEVEL_DEBUG = 4;\nexport const LOG_LEVEL_ERROR = 1;\nexport const LOG_LEVEL_INFO = 2;\nexport const TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144;\nexport const TRUST_CTL_IS_NOT_TIME_VALID = 131072;\nexport const TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288;\nexport const TRUST_IS_CYCLIC = 128;\nexport const TRUST_IS_NOT_SIGNATURE_VALID = 8;\nexport const TRUST_IS_NOT_TIME_NESTED = 2;\nexport const TRUST_IS_NOT_TIME_VALID = 1;\nexport const TRUST_IS_NOT_VALID_FOR_USAGE = 16;\nexport const TRUST_IS_PARTIAL_CHAIN = 65536;\nexport const TRUST_IS_REVOKED = 4;\nexport const TRUST_IS_UNTRUSTED_ROOT = 32;\nexport const TRUST_REVOCATION_STATUS_UNKNOWN = 64;\nexport const XmlDsigGost3410Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411';\nexport const XmlDsigGost3410UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411';\nexport const XmlDsigGost3411Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411';\nexport const XmlDsigGost3411UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr3411';\n","import { TagsTranslations } from './tags-translations';\n\nexport const ISSUER_TAGS_TRANSLATIONS: TagsTranslations[] = [\n { possibleNames: ['UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN'], translation: 'Удостоверяющий центр' },\n { possibleNames: ['C'], translation: 'Страна' },\n { possibleNames: ['S'], translation: 'Регион' },\n { possibleNames: ['STREET'], translation: 'Адрес' },\n { possibleNames: ['O'], translation: 'Компания' },\n { possibleNames: ['OU'], translation: 'Тип' },\n { possibleNames: ['T'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'INN', 'ИНН организации'], translation: 'ИНН' },\n { possibleNames: ['E'], translation: 'Email' },\n { possibleNames: ['L'], translation: 'Город' },\n];\n","export const OIDS_DICTIONARY = {\n '1.2.643.2.2.34.6': 'Пользователь Центра Регистрации',\n '1.2.643.2.39.1.1': 'Использование в программных продуктах системы \"1С:Предприятие 8\"',\n '1.2.643.3.131.1.1': 'ИНН',\n '1.2.643.3.141.1.1': 'РНС ФСС',\n '1.2.643.3.141.1.2': 'КП ФСС',\n '1.2.643.3.2.100.65.13.11': 'Использование в системе АИС \"Госзакупки\" Сахалинской области.',\n '1.2.643.3.8.100.1': 'Сертификат типа \"ekey-ГОСТ\"',\n '1.2.643.3.8.100.1.1': 'Общее использование в системах ИОК без права заверения финансовых документов',\n '1.2.643.3.8.100.1.10':\n 'Для участия в электронных торгах и подписания государственного контракта в информационных системах Тендерного комитета города Москвы уполномоченными лицами участников размещения государственного заказа города Москвы',\n '1.2.643.3.8.100.1.11':\n 'Подписание электронных документов в автоматизированной информационной системе размещения государственного и муниципального заказа Саратовской области',\n '1.2.643.3.8.100.1.12': 'Использование в системе государственного заказа Иркутской области',\n '1.2.643.3.8.100.1.13':\n 'Использование в электронной торговой площадке агентства государственного заказа Красноярского края',\n '1.2.643.3.8.100.1.14': 'Использование в электронной торговой площадке \"Тендер\"',\n '1.2.643.3.8.100.1.2': 'Передача отчетности по ТКС',\n '1.2.643.3.8.100.1.3': 'Оформление взаимных обязательств, соглашений, договоров, актов и т.п.',\n '1.2.643.3.8.100.1.4': 'Внутрикорпоративный документооборот',\n '1.2.643.3.8.100.1.5': 'Использование в системах электронной торговли',\n '1.2.643.3.8.100.1.6': 'Использование в торгово-закупочной системе \"ЭЛЕКТРА\"',\n '1.2.643.3.8.100.1.7': 'Использование в системе Портал государственных закупок Ставропольского края.',\n '1.2.643.3.8.100.1.8': 'Использование в Единой системе электронной торговли B2B-Center и B2G.',\n '1.2.643.3.8.100.1.9':\n 'Для участия в электронных торгах и подписания государственного контракта в электронной площадке ОАО «ЕЭТП» уполномоченными лицами участников размещения государственного или муниципального заказа',\n '1.2.643.5.1.24.2.1.3':\n 'Формирование документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\n '1.2.643.5.1.24.2.1.3.1':\n 'Формирование кадастровым инженером документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\n '1.2.643.5.1.24.2.2.2': 'Формирование документов как результата оказания услуги со стороны органов регистрации прав',\n '1.2.643.5.1.24.2.2.3':\n 'Формирование документов для получения государственных услуг в сфере государственной регистрации прав на недвижимое имущество и сделок с ним со стороны заявителя',\n '1.2.643.6.2.1.7.1':\n 'Использование единоличным исполнительным органом юридического лица или уполномоченными представителями юридического лица в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских и иных прав и обязанностей в сфере негосударственного пенсионного обеспечения, негосударственного пенсионного страхования, в сфере деятельности паевых инвестиционных фондов, акционерных инвестиционных фондов, профессиональных участников рынка ценных бумаг, а также связанной с обслуживанием указанной деятельности услуг кредитных и иных организаций',\n '1.2.643.6.2.1.7.2':\n 'Использование физическим лицом в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских прав и обязанностей в отношении инвестиционных паев паевых инвестиционных фондов, в том числе отношения, связанные с учетом и/или фиксацией прав на инвестиционные паи паевых инвестиционных фондов',\n '1.2.643.6.3':\n 'Использование в электронных торговых системах и в программном обеспечении, связанным с обменом электронных сообщений',\n '1.2.643.6.3.1.1': 'Использование на электронных площадок отобранных для проведения аукционах в электронной форме',\n '1.2.643.6.3.1.2.1': 'Тип участника - Юридическое лицо',\n '1.2.643.6.3.1.2.2': 'Тип участника - Физическое лицо',\n '1.2.643.6.3.1.2.3': 'Тип участника - Индивидуальный предприниматель',\n '1.2.643.6.3.1.3.1': 'Участник размещения заказа',\n '1.2.643.6.3.1.4.1': 'Администратор организации',\n '1.2.643.6.3.1.4.2': 'Уполномоченный специалист',\n '1.2.643.6.3.1.4.3': 'Специалист с правом подписи контракта',\n '1.2.840.113549.1.9.2': 'Неструктурированное имя',\n '1.3.6.1.4.1.24138.1.1.8.1': 'Обеспечение юридической значимости в Системе \"Электронная Торговая Площадка\"',\n '1.3.6.1.4.1.29919.21': 'Использование в системе Портал государственных закупок Ростовской области \"Рефери\".',\n '1.3.6.1.5.5.7.3.2': 'Проверка подлинности клиента',\n '1.3.6.1.5.5.7.3.4': 'Защищенная электронная почта',\n '1.3.643.3.8.100.15': 'Использование в ЭТП \"uTender\"',\n};\n","import { TagsTranslations } from './tags-translations';\n\nexport const SUBJECT_TAGS_TRANSLATIONS: TagsTranslations[] = [\n { possibleNames: ['UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN'], translation: 'Владелец' },\n { possibleNames: ['SN'], translation: 'Фамилия' },\n { possibleNames: ['G'], translation: 'Имя Отчество' },\n { possibleNames: ['C'], translation: 'Страна' },\n { possibleNames: ['S'], translation: 'Регион' },\n { possibleNames: ['STREET'], translation: 'Адрес' },\n { possibleNames: ['O'], translation: 'Компания' },\n { possibleNames: ['OU'], translation: 'Отдел/подразделение' },\n { possibleNames: ['T'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'INN', 'ИНН организации'], translation: 'ИНН' },\n { possibleNames: ['E'], translation: 'Email' },\n { possibleNames: ['L'], translation: 'Город' },\n];\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\nimport { Certificate } from './certificate';\n\n/**\n * Экспортирует сертификат в формате base64\n *\n * @returns сертификат в формате base64\n */\nexport const exportBase64 = _afterPluginsLoaded(function (): string {\n const cadesCertificate = (this as Certificate)._cadesCertificate;\n\n return eval(\n _generateCadesFn(function exportBase64(): string {\n let base64: string;\n\n try {\n base64 = __cadesAsyncToken__ + cadesCertificate.Export(0);\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при экспорте сертификата');\n }\n\n return base64;\n }),\n );\n});\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\nimport { Certificate } from './certificate';\n\ninterface AlgorithmInfo {\n algorithm: string;\n oid: string;\n}\n\n/**\n * Возвращает информацию об алгоритме сертификата\n *\n * @returns информацию об алгоритме и его OID'е\n */\nexport const getAlgorithm = _afterPluginsLoaded(function (): AlgorithmInfo {\n const cadesCertificate = (this as Certificate)._cadesCertificate;\n\n return eval(\n _generateCadesFn(function getAlgorithm(): AlgorithmInfo {\n const algorithmInfo: AlgorithmInfo = {\n algorithm: null,\n oid: null,\n };\n let cadesPublicKey;\n\n try {\n cadesPublicKey = __cadesAsyncToken__ + cadesCertificate.PublicKey();\n cadesPublicKey = __cadesAsyncToken__ + cadesPublicKey.Algorithm;\n algorithmInfo.algorithm = __cadesAsyncToken__ + cadesPublicKey.FriendlyName;\n algorithmInfo.oid = __cadesAsyncToken__ + cadesPublicKey.Value;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении алгоритма');\n }\n\n return algorithmInfo;\n }),\n );\n});\n","import { OIDS_DICTIONARY } from '../../constants';\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { Certificate } from './certificate';\n\nexport interface ExtendedKeysTranslations {\n [key: string]: string | null;\n}\n\n/**\n * Возвращает расшифрованные ОИД'ы сертификата\n *\n * @returns словарь расшифрованных ОИД'ов\n */\nexport const getDecodedExtendedKeyUsage = _afterPluginsLoaded(async function (): Promise<ExtendedKeysTranslations> {\n const certificateOids = await (this as Certificate).getExtendedKeyUsage();\n\n return certificateOids.reduce(\n (decodedOids, oidCode) => ({\n ...decodedOids,\n [oidCode]: OIDS_DICTIONARY[oidCode] || null,\n }),\n {},\n );\n});\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\nimport { Certificate } from './certificate';\n\n/**\n * Возвращает ОИД'ы сертификата\n *\n * @returns список ОИД'ов\n */\nexport const getExtendedKeyUsage = _afterPluginsLoaded(function (): string[] {\n const cadesCertificate = (this as Certificate)._cadesCertificate;\n\n return eval(\n _generateCadesFn(function getExtendedKeyUsage(): string[] {\n const OIDS: string[] = [];\n let count: any;\n\n try {\n count = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\n count = __cadesAsyncToken__ + count.EKUs;\n count = __cadesAsyncToken__ + count.Count;\n\n if (count > 0) {\n while (count > 0) {\n let cadesExtendedKeyUsage;\n\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.EKUs;\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.Item(count);\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.OID;\n\n OIDS.push(cadesExtendedKeyUsage);\n\n count--;\n }\n }\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || \"Ошибка при получении ОИД'ов\");\n }\n\n return OIDS;\n }),\n );\n});\n","import { TagsTranslations } from '../../constants/tags-translations';\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { _parseCertInfo, TagTranslation } from '../../helpers/_parseCertInfo';\nimport { getCadesProp } from './getCadesProp';\n\n/**\n * Возвращает расшифрованную информацию о сертификате из указанного свойства по тэгам\n *\n * @param tags = словарь\n * @param entitiesPath = путь к разбираемой сущности\n * @returns расшифрованная информация по отдельным тэгам\n */\nexport const getInfo = _afterPluginsLoaded(async function (\n tags: TagsTranslations[],\n entitiesPath: string,\n): Promise<TagTranslation[]> {\n let entities: string;\n\n try {\n entities = await getCadesProp.call(this, entitiesPath);\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при извлечении информации из сертификата');\n }\n\n return _parseCertInfo(tags, entities);\n});\n","import { OIDS_DICTIONARY } from '../constants';\nimport { TagsTranslations } from '../constants/tags-translations';\n\nexport interface TagTranslation {\n description: string;\n title: string;\n isTranslated: boolean;\n}\n\n/**\n * Парсит информацию из строки с информацией о сертификате\n *\n * @param tagsTranslations - словарь с расшифровками тэгов\n * @param rawInfo - данные для парсинга\n * @returns расшифрованная информация по отдельным тэгам\n */\nexport const _parseCertInfo = (tagsTranslations: TagsTranslations[], rawInfo: string): TagTranslation[] => {\n const extractedEntities: string[] = rawInfo.match(/([а-яА-Яa-zA-Z0-9\\s.]+)=(?:(\"[^\"]+?\")|(.+?))(?:,|$)/g);\n\n if (extractedEntities) {\n return extractedEntities.map((group) => {\n const segmentsMatch = group.trim().match(/^([а-яА-Яa-zA-Z0-9\\s.]+)=(.+?),?$/);\n let title = segmentsMatch?.[1];\n // Вырезаем лишние кавычки\n const description = segmentsMatch?.[2]?.replace(/^\"(.*)\"/, '$1')?.replace(/\"{2}/g, '\"');\n const oidIdentifierMatch = title?.match(/^OID\\.(.*)/);\n const oidIdentifier = oidIdentifierMatch?.[1];\n let isTranslated = false;\n\n // Если нашли в тайтле ОИД, пытаемся его расшифровать\n if (oidIdentifier) {\n const oidTranslation = OIDS_DICTIONARY[oidIdentifier];\n\n if (oidTranslation) {\n title = oidTranslation;\n isTranslated = true;\n }\n }\n\n const tagTranslation = tagsTranslations.find((tag) => tag.possibleNames.find((name) => name === title))\n ?.translation;\n\n if (tagTranslation) {\n title = tagTranslation;\n isTranslated = true;\n }\n\n return { description, title, isTranslated };\n });\n }\n};\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { Certificate } from './certificate';\n\n/**\n * Проверяет наличие ОИД'а (ОИД'ов) у сертификата\n *\n * @param oids - ОИД'ы для проверки\n * @returns флаг наличия ОИД'ов у сертификата\n */\nexport const hasExtendedKeyUsage = _afterPluginsLoaded(async function (oids: string | string[]): Promise<boolean> {\n const certOids = await (this as Certificate).getExtendedKeyUsage();\n\n let result: boolean;\n\n if (Array.isArray(oids)) {\n result = oids.every((oidToCheck) => certOids.some((certOid) => certOid === oidToCheck));\n } else {\n result = certOids.some((certOid) => certOid === oids);\n }\n\n return result;\n});\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\nimport { Certificate } from './certificate';\n\n/**\n * Проверяет действительность сертификата\n *\n * @returns флаг валидности\n */\nexport const isValid = _afterPluginsLoaded(function (): boolean {\n const cadesCertificate = (this as Certificate)._cadesCertificate;\n\n return eval(\n _generateCadesFn(function isValid() {\n let isValid;\n\n try {\n isValid = __cadesAsyncToken__ + cadesCertificate.IsValid();\n isValid = __cadesAsyncToken__ + isValid.Result;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при проверке сертификата');\n }\n\n return Boolean(isValid);\n }),\n );\n});\n","export const _extractCommonName = (subjectName: string): string | undefined =>\n subjectName.match(/CN=(.+?)(?:,|$)/)?.[1];\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { _isSupportedCadesVersion } from '../helpers/_isSupportedCadesVersion';\nimport { _isSupportedCSPVersion } from '../helpers/_isSupportedCSPVersion';\nimport { getSystemInfo, SystemInfo } from './getSystemInfo';\n\n/**\n * Проверяет корректность настроек ЭП на машине\n *\n * @returns флаг корректности настроек\n */\nexport const isValidSystemSetup = _afterPluginsLoaded(\n async (): Promise<boolean> => {\n let systemInfo: SystemInfo;\n\n try {\n systemInfo = await getSystemInfo();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Настройки ЭП на данной машине не верны');\n }\n\n if (!_isSupportedCadesVersion(systemInfo.cadesVersion)) {\n throw new Error('Не поддерживаемая версия плагина');\n }\n\n if (!_isSupportedCSPVersion(systemInfo.cspVersion)) {\n throw new Error('Не поддерживаемая версия CSP');\n }\n\n return true;\n },\n);\n","export const _isSupportedCadesVersion = (version: string): boolean => {\n const match = version.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\n\n if (!match) {\n return false;\n }\n\n const [, major, minor, patch] = match;\n\n if (Number(major) < 2) {\n return false;\n }\n\n if (Number(major) === 2 && Number(patch) < 12438) {\n return false;\n }\n\n return true;\n};\n","const oldestSupportedCSPVersion = 4.0;\n\nexport const _isSupportedCSPVersion = (version: string): boolean => {\n version = version.match(/\\d+?\\b(?:\\.\\d+)?/)?.[0];\n\n return Number(version) >= oldestSupportedCSPVersion;\n};\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _getCadesCert } from '../helpers/_getCadesCert';\nimport { _getDateObj } from '../helpers/_getDateObj';\n\n/**\n * Создает подпись base64 строки по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param dataBase64 - строковые данные в формате base64\n * @param detachedSignature = true - тип подписи открепленная (true) / присоединенная (false)\n * @returns подпись\n */\nexport const createSignature = _afterPluginsLoaded(\n async (thumbprint: string, dataBase64: string, detachedSignature: boolean = true): Promise<string> => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createSignature(): string {\n let cadesAttrs;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\n }\n\n const currentTime = _getDateObj(new Date());\n\n try {\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\n }\n\n let cadesAuthAttrs;\n\n try {\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\n void (__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\n void (__cadesAsyncToken__ + cadesSignedData.propset_Content(dataBase64));\n void (\n __cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY)\n );\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\n }\n\n let signature: string;\n\n try {\n signature =\n __cadesAsyncToken__ +\n cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_CADES_BES, detachedSignature);\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\n }\n\n return signature;\n }),\n );\n },\n);\n","import { CadesCertificate } from '../api/certificate';\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from './_generateCadesFn';\n\n/**\n * Возвращает сертификат в формате Cades по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @returns сертификат в формате Cades\n */\nexport const _getCadesCert = _afterPluginsLoaded(\n (thumbprint: string): CadesCertificate => {\n const { cadesplugin } = window;\n\n return eval(\n _generateCadesFn(function _getCadesCert() {\n let cadesStore;\n\n try {\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\n }\n\n if (!cadesStore) {\n throw new Error('Не удалось получить доступ к хранилищу сертификатов');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesStore.Open(\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\n cadesplugin.CAPICOM_MY_STORE,\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\n )\n );\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\n }\n\n let cadesCertificateList;\n let certificatesCount;\n\n try {\n cadesCertificateList = __cadesAsyncToken__ + cadesStore.Certificates;\n certificatesCount = __cadesAsyncToken__ + cadesCertificateList.Count;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\n }\n\n if (!certificatesCount) {\n throw new Error('Нет доступных сертификатов');\n }\n\n let cadesCertificate: CadesCertificate;\n\n try {\n cadesCertificateList =\n __cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);\n\n const count = __cadesAsyncToken__ + cadesCertificateList.Count;\n\n if (!count) {\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден`);\n }\n\n cadesCertificate = __cadesAsyncToken__ + cadesCertificateList.Item(1);\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата');\n }\n\n cadesStore.Close();\n\n return cadesCertificate;\n }),\n );\n },\n);\n","/**\n * Возвращает объект даты, совместимый с Cades plugin'ом, зависящий от браузера.\n *\n * В IE необходимо использовать специфичный формат \"VT_DATE\"\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Microsoft_Extensions/Date.getVarDate\n */\nexport const _getDateObj = (dateObj): Date => (dateObj.getVarDate ? dateObj.getVarDate() : dateObj);\n"],"sourceRoot":""}