diff --git a/dist/crypto-pro-js.js b/dist/crypto-pro-js.js index b2b382a..8142d0a 100644 --- a/dist/crypto-pro-js.js +++ b/dist/crypto-pro-js.js @@ -7,2211 +7,18 @@ exports["cryptoPro"] = factory(); else root["cryptoPro"] = factory(); -})(window, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./crypto-pro-js.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "../node_modules/base64-js/index.js": -/*!******************************************!*\ - !*** ../node_modules/base64-js/index.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -// Support decoding URL-safe base64 strings, as Node.js does. -// See: https://en.wikipedia.org/wiki/Base64#URL_applications -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function getLens (b64) { - var len = b64.length - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] -} - -// base64 is 4/3 + up to two characters of the original data -function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') -} - - -/***/ }), - -/***/ "../node_modules/buffer/index.js": -/*!***************************************!*\ - !*** ../node_modules/buffer/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - - - -var base64 = __webpack_require__(/*! base64-js */ "../node_modules/base64-js/index.js") -var ieee754 = __webpack_require__(/*! ieee754 */ "../node_modules/ieee754/index.js") -var isArray = __webpack_require__(/*! isarray */ "../node_modules/buffer/node_modules/isarray/index.js") - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - -/* - * Export kMaxLength after typed array support is determined. - */ -exports.kMaxLength = kMaxLength() - -function typedArraySupport () { - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 && // typed array instances can be augmented - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -} - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length) - } - that.length = length - } - - return that -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) -} - -Buffer.poolSize = 8192 // not used by this implementation - -// TODO: Legacy, not needed anymore. Remove in next major version. -Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype - return arr -} - -function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) -} - -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true - }) - } -} - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } -} - -function alloc (that, size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) -} - -function allocUnsafe (that, size) { - assertSize(size) - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0 - } - } - return that -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - that = createBuffer(that, length) - - var actual = that.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual) - } - - return that -} - -function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - that = createBuffer(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array) - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset) - } else { - array = new Uint8Array(array, byteOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array) - } - return that -} - -function fromObject (that, obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - that = createBuffer(that, len) - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len) - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') -} - -function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect -// Buffer instances. -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start] - } - } - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// HELPER FUNCTIONS -// ================ - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -function isnan (val) { - return val !== val // eslint-disable-line no-self-compare -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "../node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "../node_modules/buffer/node_modules/isarray/index.js": -/*!************************************************************!*\ - !*** ../node_modules/buffer/node_modules/isarray/index.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - - -/***/ }), - -/***/ "../node_modules/ieee754/index.js": -/*!****************************************!*\ - !*** ../node_modules/ieee754/index.js ***! - \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - - -/***/ }), - -/***/ "../node_modules/webpack/buildin/global.js": -/*!*************************************************!*\ - !*** ../node_modules/webpack/buildin/global.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), +})(self, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ /***/ "./api/addAttachedSignature.ts": /*!*************************************!*\ !*** ./api/addAttachedSignature.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -2248,7 +55,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addAttachedSignature = void 0; var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2330,7 +137,6 @@ exports.addAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(functio }); }); }); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -2338,8 +144,7 @@ exports.addAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(functio /*!*************************************!*\ !*** ./api/addDetachedSignature.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2379,7 +184,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addDetachedSignature = void 0; var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2473,12 +278,11 @@ exports.addDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(functio /*!****************************************!*\ !*** ./api/certificate/certificate.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Certificate = void 0; var constants_1 = __webpack_require__(/*! ../../constants */ "./constants/index.ts"); var exportBase64_1 = __webpack_require__(/*! ./exportBase64 */ "./api/certificate/exportBase64.ts"); @@ -2537,12 +341,11 @@ exports.Certificate = Certificate; /*!*****************************************!*\ !*** ./api/certificate/exportBase64.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.exportBase64 = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2574,12 +377,11 @@ exports.exportBase64 = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!*****************************************!*\ !*** ./api/certificate/getAlgorithm.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAlgorithm = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2618,12 +420,11 @@ exports.getAlgorithm = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!*****************************************!*\ !*** ./api/certificate/getCadesProp.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCadesProp = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2656,8 +457,7 @@ exports.getCadesProp = _afterPluginsLoaded_1._afterPluginsLoaded(function (propN /*!*******************************************************!*\ !*** ./api/certificate/getDecodedExtendedKeyUsage.ts ***! \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2708,7 +508,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getDecodedExtendedKeyUsage = void 0; var constants_1 = __webpack_require__(/*! ../../constants */ "./constants/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2741,12 +541,11 @@ exports.getDecodedExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(f /*!************************************************!*\ !*** ./api/certificate/getExtendedKeyUsage.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getExtendedKeyUsage = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2792,8 +591,7 @@ exports.getExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!************************************!*\ !*** ./api/certificate/getInfo.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2833,7 +631,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getInfo = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2874,8 +672,7 @@ exports.getInfo = _afterPluginsLoaded_1._afterPluginsLoaded(function (tags, enti /*!************************************************!*\ !*** ./api/certificate/hasExtendedKeyUsage.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2915,7 +712,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.hasExtendedKeyUsage = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); /** @@ -2951,8 +748,7 @@ exports.hasExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!**********************************!*\ !*** ./api/certificate/index.ts ***! \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2966,7 +762,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./certificate */ "./api/certificate/certificate.ts"), exports); @@ -2976,12 +772,11 @@ __exportStar(__webpack_require__(/*! ./certificate */ "./api/certificate/certifi /*!************************************!*\ !*** ./api/certificate/isValid.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isValid = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3014,11 +809,10 @@ exports.isValid = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!****************************************!*\ !*** ./api/createAttachedSignature.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -3055,7 +849,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createAttachedSignature = void 0; var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3136,7 +930,6 @@ exports.createAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(func }); }); }); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -3144,8 +937,7 @@ exports.createAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(func /*!****************************************!*\ !*** ./api/createDetachedSignature.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3185,7 +977,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createDetachedSignature = void 0; var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3276,11 +1068,10 @@ exports.createDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(func /*!***************************!*\ !*** ./api/createHash.ts ***! \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -3317,7 +1108,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createHash = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3367,7 +1158,6 @@ exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded(function (unencry }); }); }); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -3375,8 +1165,7 @@ exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded(function (unencry /*!***********************************!*\ !*** ./api/createXMLSignature.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3416,7 +1205,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createXMLSignature = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3485,8 +1274,7 @@ exports.createXMLSignature = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!***********************************!*\ !*** ./api/getAllCertificates.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3526,7 +1314,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllCertificates = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var getAllUserCertificates_1 = __webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"); @@ -3602,12 +1390,11 @@ exports.getAllCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!********************************************!*\ !*** ./api/getAllContainerCertificates.ts ***! \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllContainerCertificates = void 0; var certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3683,12 +1470,11 @@ exports.getAllContainerCertificates = _afterPluginsLoaded_1._afterPluginsLoaded( /*!***************************************!*\ !*** ./api/getAllUserCertificates.ts ***! \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllUserCertificates = void 0; var certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3763,8 +1549,7 @@ exports.getAllUserCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(funct /*!*******************************!*\ !*** ./api/getCertificate.ts ***! \*******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3804,7 +1589,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCertificate = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var getCertificates_1 = __webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts"); @@ -3853,8 +1638,7 @@ exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded(function (thu /*!********************************!*\ !*** ./api/getCertificates.ts ***! \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3894,7 +1678,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCertificates = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts"); @@ -3970,12 +1754,11 @@ exports.getCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(function (re /*!*****************************************!*\ !*** ./api/getContainerCertificates.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getContainerCertificates = void 0; var certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); @@ -4063,12 +1846,11 @@ exports.getContainerCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(fun /*!******************************!*\ !*** ./api/getCspVersion.ts ***! \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCspVersion = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -4102,12 +1884,11 @@ exports.getCspVersion = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!*********************************!*\ !*** ./api/getPluginVersion.ts ***! \*********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getPluginVersion = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts"); @@ -4144,12 +1925,11 @@ exports.getPluginVersion = _afterPluginsLoaded_1._afterPluginsLoaded(function () /*!******************************!*\ !*** ./api/getSystemInfo.ts ***! \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getSystemInfo = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -4191,12 +1971,11 @@ exports.getSystemInfo = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!************************************!*\ !*** ./api/getUserCertificates.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getUserCertificates = void 0; var certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); @@ -4283,8 +2062,7 @@ exports.getUserCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!**********************!*\ !*** ./api/index.ts ***! \**********************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4298,7 +2076,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./getCertificate */ "./api/getCertificate.ts"), exports); __exportStar(__webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts"), exports); __exportStar(__webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"), exports); @@ -4325,8 +2103,7 @@ __exportStar(__webpack_require__(/*! ./getPluginVersion */ "./api/getPluginVersi /*!***********************************!*\ !*** ./api/isValidSystemSetup.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4366,7 +2143,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isValidSystemSetup = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -4411,12 +2188,11 @@ exports.isValidSystemSetup = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!**************************************!*\ !*** ./constants/cades-constants.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.XmlDsigGost3411UrlObsolete = exports.XmlDsigGost3411Url = exports.XmlDsigGost3410UrlObsolete = exports.XmlDsigGost3410Url = exports.TRUST_REVOCATION_STATUS_UNKNOWN = exports.TRUST_IS_UNTRUSTED_ROOT = exports.TRUST_IS_REVOKED = exports.TRUST_IS_PARTIAL_CHAIN = exports.TRUST_IS_NOT_VALID_FOR_USAGE = exports.TRUST_IS_NOT_TIME_VALID = exports.TRUST_IS_NOT_TIME_NESTED = exports.TRUST_IS_NOT_SIGNATURE_VALID = exports.TRUST_IS_CYCLIC = exports.TRUST_CTL_IS_NOT_VALID_FOR_USAGE = exports.TRUST_CTL_IS_NOT_TIME_VALID = exports.TRUST_CTL_IS_NOT_SIGNATURE_VALID = exports.LOG_LEVEL_INFO = exports.LOG_LEVEL_ERROR = exports.LOG_LEVEL_DEBUG = exports.CHECK_TRUSTED_ROOT = exports.CHECK_TIME_VALIDITY = exports.CHECK_SIGNATURE_VALIDITY = exports.CHECK_ONLINE_REVOCATION_STATUS = exports.CHECK_OFFLINE_REVOCATION_STATUS = exports.CHECK_NONE = exports.CAPICOM_STORE_OPEN_READ_WRITE = exports.CAPICOM_STORE_OPEN_READ_ONLY = exports.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = exports.CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = exports.CAPICOM_STORE_OPEN_EXISTING_ONLY = exports.CAPICOM_SMART_CARD_USER_STORE = exports.CAPICOM_PROPID_UNKNOWN = exports.CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH = exports.CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH = exports.CAPICOM_PROPID_SMART_CARD_DATA = exports.CAPICOM_PROPID_SIGNATURE_HASH = exports.CAPICOM_PROPID_SHA1_HASH = exports.CAPICOM_PROPID_RENEWAL = exports.CAPICOM_PROPID_PVK_FILE = exports.CAPICOM_PROPID_PUBKEY_HASH_RESERVED = exports.CAPICOM_PROPID_PUBKEY_ALG_PARA = exports.CAPICOM_PROPID_NEXT_UPDATE_LOCATION = exports.CAPICOM_PROPID_MD5_HASH = exports.CAPICOM_PROPID_LAST_USER = exports.CAPICOM_PROPID_LAST_RESERVED = exports.CAPICOM_PROPID_KEY_SPEC = exports.CAPICOM_PROPID_KEY_PROV_INFO = exports.CAPICOM_PROPID_KEY_PROV_HANDLE = exports.CAPICOM_PROPID_KEY_IDENTIFIER = exports.CAPICOM_PROPID_KEY_CONTEXT = exports.CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH = exports.CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH = exports.CAPICOM_PROPID_IE30_RESERVED = exports.CAPICOM_PROPID_HASH_PROP = exports.CAPICOM_PROPID_FRIENDLY_NAME = exports.CAPICOM_PROPID_FORTEZZA_DATA = exports.CAPICOM_PROPID_FIRST_USER = exports.CAPICOM_PROPID_FIRST_RESERVED = exports.CAPICOM_PROPID_EXTENDED_ERROR_INFO = exports.CAPICOM_PROPID_ENROLLMENT = exports.CAPICOM_PROPID_ENHKEY_USAGE = exports.CAPICOM_PROPID_EFS = exports.CAPICOM_PROPID_DESCRIPTION = exports.CAPICOM_PROPID_DATE_STAMP = exports.CAPICOM_PROPID_CTL_USAGE = exports.CAPICOM_PROPID_CROSS_CERT_DIST_POINTS = exports.CAPICOM_PROPID_AUTO_ENROLL = exports.CAPICOM_PROPID_ARCHIVED_KEY_HASH = exports.CAPICOM_PROPID_ARCHIVED = exports.CAPICOM_PROPID_ACCESS_STATE = exports.CAPICOM_OID_OTHER = exports.CAPICOM_OID_KEY_USAGE_EXTENSION = exports.CAPICOM_MY_STORE = exports.CAPICOM_MEMORY_STORE = exports.CAPICOM_LOCAL_MACHINE_STORE = exports.CAPICOM_EKU_SMARTCARD_LOGON = exports.CAPICOM_EKU_OTHER = exports.CAPICOM_EKU_CLIENT_AUTH = exports.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = exports.CAPICOM_CURRENT_USER_STORE = exports.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = exports.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = exports.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = exports.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = exports.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = exports.CAPICOM_CERTIFICATE_FIND_TIME_VALID = exports.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = exports.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = exports.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = exports.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = exports.CAPICOM_CERTIFICATE_FIND_SHA1_HASH = exports.CAPICOM_CERTIFICATE_FIND_ROOT_NAME = exports.CAPICOM_CERTIFICATE_FIND_KEY_USAGE = exports.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = exports.CAPICOM_CERTIFICATE_FIND_EXTENSION = exports.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = exports.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = exports.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = exports.CAPICOM_ACTIVE_DIRECTORY_USER_STORE = exports.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = exports.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = exports.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = exports.CADESCOM_SkipInstallToStore = exports.CADESCOM_STRING_TO_UCS2LE = exports.CADESCOM_PKCS7_TYPE = exports.CADESCOM_LOCAL_MACHINE_STORE = exports.CADESCOM_HASH_ALGORITHM_SHA_512 = exports.CADESCOM_HASH_ALGORITHM_SHA_384 = exports.CADESCOM_HASH_ALGORITHM_SHA_256 = exports.CADESCOM_HASH_ALGORITHM_SHA1 = exports.CADESCOM_HASH_ALGORITHM_MD5 = exports.CADESCOM_HASH_ALGORITHM_MD4 = exports.CADESCOM_HASH_ALGORITHM_MD2 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = exports.CADESCOM_ENCRYPTION_ALGORITHM_RC4 = exports.CADESCOM_ENCRYPTION_ALGORITHM_RC2 = exports.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = exports.CADESCOM_ENCRYPTION_ALGORITHM_DES = exports.CADESCOM_ENCRYPTION_ALGORITHM_AES = exports.CADESCOM_ENCRYPTION_ALGORITHM_3DES = exports.CADESCOM_ENCODE_BINARY = exports.CADESCOM_ENCODE_BASE64 = exports.CADESCOM_ENCODE_ANY = exports.CADESCOM_DISPLAY_DATA_NONE = exports.CADESCOM_DISPLAY_DATA_CONTENT = exports.CADESCOM_DISPLAY_DATA_ATTRIBUTE = exports.CADESCOM_CURRENT_USER_STORE = exports.CADESCOM_CONTAINER_STORE = exports.CADESCOM_CADES_X_LONG_TYPE_1 = exports.CADESCOM_CADES_T = exports.CADESCOM_CADES_DEFAULT = exports.CADESCOM_CADES_BES = exports.CADESCOM_BASE64_TO_BINARY = exports.CADESCOM_AllowUntrustedRoot = exports.CADESCOM_AllowUntrustedCertificate = exports.CADESCOM_AllowNone = exports.CADESCOM_AllowNoOutstandingRequest = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = exports.CADESCOM_ATTRIBUTE_OTHER = void 0; exports.CADESCOM_ATTRIBUTE_OTHER = -1; exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2; @@ -4575,8 +2351,7 @@ exports.XmlDsigGost3411UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gos /*!****************************!*\ !*** ./constants/index.ts ***! \****************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4590,7 +2365,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./cades-constants */ "./constants/cades-constants.ts"), exports); __exportStar(__webpack_require__(/*! ./issuer-tags-translations */ "./constants/issuer-tags-translations.ts"), exports); __exportStar(__webpack_require__(/*! ./oids-dictionary */ "./constants/oids-dictionary.ts"), exports); @@ -4603,12 +2378,11 @@ __exportStar(__webpack_require__(/*! ./subject-tags-translations */ "./constants /*!***********************************************!*\ !*** ./constants/issuer-tags-translations.ts ***! \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ISSUER_TAGS_TRANSLATIONS = void 0; exports.ISSUER_TAGS_TRANSLATIONS = [ { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' }, @@ -4635,12 +2409,11 @@ exports.ISSUER_TAGS_TRANSLATIONS = [ /*!**************************************!*\ !*** ./constants/oids-dictionary.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OIDS_DICTIONARY = void 0; exports.OIDS_DICTIONARY = { '1.2.643.2.2.34.6': 'Пользователь Центра Регистрации', @@ -4698,12 +2471,11 @@ exports.OIDS_DICTIONARY = { /*!************************************************!*\ !*** ./constants/subject-tags-translations.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SUBJECT_TAGS_TRANSLATIONS = void 0; exports.SUBJECT_TAGS_TRANSLATIONS = [ { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' }, @@ -4732,8 +2504,7 @@ exports.SUBJECT_TAGS_TRANSLATIONS = [ /*!**************************!*\ !*** ./crypto-pro-js.ts ***! \**************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4747,7 +2518,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./api */ "./api/index.ts"), exports); @@ -4757,8 +2528,7 @@ __exportStar(__webpack_require__(/*! ./api */ "./api/index.ts"), exports); /*!****************************************!*\ !*** ./helpers/_afterPluginsLoaded.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4798,7 +2568,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._afterPluginsLoaded = void 0; var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); var isSetLogLevel = false; @@ -4862,12 +2632,11 @@ exports._afterPluginsLoaded = function (fn) { /*!***************************************!*\ !*** ./helpers/_extractCommonName.ts ***! \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._extractCommonName = void 0; exports._extractCommonName = function (subjectName) { var _a, _b; return (_b = (_a = subjectName.match(/CN="?(.+?)"?(?:,|$)/)) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.replace(/"{2}/g, '"'); }; @@ -4878,12 +2647,11 @@ exports._extractCommonName = function (subjectName) { var _a, _b; return (_b = ( /*!***************************************************!*\ !*** ./helpers/_extractMeaningfulErrorMessage.ts ***! \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._extractMeaningfulErrorMessage = void 0; exports._extractMeaningfulErrorMessage = function (error) { var _a; @@ -4909,12 +2677,11 @@ exports._extractMeaningfulErrorMessage = function (error) { /*!*************************************!*\ !*** ./helpers/_generateCadesFn.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._generateCadesFn = exports.__createCadesPluginObject__ = exports.__cadesAsyncToken__ = void 0; // синтетические переменные, которые подменяются в рантайме exports.__cadesAsyncToken__ = {}; @@ -4955,8 +2722,7 @@ exports._generateCadesFn = function (callback) { /*!**********************************!*\ !*** ./helpers/_getCadesCert.ts ***! \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4996,7 +2762,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesCert = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _getCadesUserCert_1 = __webpack_require__(/*! ./_getCadesUserCert */ "./helpers/_getCadesUserCert.ts"); @@ -5036,12 +2802,11 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thum /*!*******************************************!*\ !*** ./helpers/_getCadesContainerCert.ts ***! \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesContainerCert = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -5114,12 +2879,11 @@ exports._getCadesContainerCert = _afterPluginsLoaded_1._afterPluginsLoaded(funct /*!**************************************!*\ !*** ./helpers/_getCadesUserCert.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesUserCert = void 0; var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -5191,12 +2955,11 @@ exports._getCadesUserCert = _afterPluginsLoaded_1._afterPluginsLoaded(function ( /*!********************************!*\ !*** ./helpers/_getDateObj.ts ***! \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getDateObj = void 0; /** * Возвращает объект даты, совместимый с Cades plugin'ом, зависящий от браузера. @@ -5213,12 +2976,11 @@ exports._getDateObj = function (dateObj) { return (dateObj.getVarDate ? dateObj. /*!*******************************************!*\ !*** ./helpers/_isSupportedCSPVersion.ts ***! \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._isSupportedCSPVersion = void 0; var oldestSupportedCSPVersion = 4.0; exports._isSupportedCSPVersion = function (version) { @@ -5234,12 +2996,11 @@ exports._isSupportedCSPVersion = function (version) { /*!*********************************************!*\ !*** ./helpers/_isSupportedCadesVersion.ts ***! \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._isSupportedCadesVersion = void 0; exports._isSupportedCadesVersion = function (version) { var match = version.match(/(\d+)\.(\d+)\.(\d+)/); @@ -5263,12 +3024,11 @@ exports._isSupportedCadesVersion = function (version) { /*!***********************************!*\ !*** ./helpers/_parseCertInfo.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._parseCertInfo = void 0; var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); /** @@ -5315,8 +3075,7 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) { /*!***********************************!*\ !*** ./vendor/cadesplugin_api.js ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { +/***/ (() => { ;(function () { //already loaded @@ -6066,6 +3825,41 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) { /***/ }) -/******/ }); +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__("./crypto-pro-js.ts"); +/******/ +/******/ return __webpack_exports__; +/******/ })() +; }); //# sourceMappingURL=crypto-pro-js.js.map \ No newline at end of file diff --git a/dist/crypto-pro-js.js.map b/dist/crypto-pro-js.js.map index dd6dd10..340fe92 100644 --- a/dist/crypto-pro-js.js.map +++ b/dist/crypto-pro-js.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cryptoPro/webpack/universalModuleDefinition","webpack://cryptoPro/webpack/bootstrap","webpack://cryptoPro/../node_modules/base64-js/index.js","webpack://cryptoPro/../node_modules/buffer/index.js","webpack://cryptoPro/../node_modules/buffer/node_modules/isarray/index.js","webpack://cryptoPro/../node_modules/ieee754/index.js","webpack://cryptoPro/../node_modules/webpack/buildin/global.js","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"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,qDAAW;AAChC,cAAc,mBAAO,CAAC,iDAAS;AAC/B,cAAc,mBAAO,CAAC,qEAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACpFA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA,kFAA6E;AAC7E,0HAAqE;AACrE,2JAA2F;AAC3F,iHAAiH;AACjH,wGAAyD;AACzD,kGAAqD;AAErD;;;;;;GAMG;AACU,4BAAoB,GAAG,yCAAmB,CACrD,UAAO,UAAkB,EAAE,aAAmC;;;;;gBACpD,WAAW,GAAK,MAAM,YAAX,CAAY;gBACN,qBAAM,6BAAa,CAAC,UAAU,CA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AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,WAAW,UAAU,YAAY,aAAa;AACrG,+EAA+E,aAAa,mBAAmB,uBAAuB,uBAAuB,cAAc,mBAAmB,YAAY;AAC1M,oEAAoE,iBAAiB,yBAAyB,WAAW;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC","file":"crypto-pro-js.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 = \"./crypto-pro-js.ts\");\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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 * Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const addAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(signedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\n }\n\n let signature: string;\n\n try {\n void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));\n signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const addDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\n }\n\n let signature: string;\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)\n );\n signature =\n __cadesAsyncToken__ +\n cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 {\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\n }\n\n public getIssuerInfo(): Promise {\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\n }\n\n public getExtendedKeyUsage(): Promise {\n return getExtendedKeyUsage.call(this);\n }\n\n public getDecodedExtendedKeyUsage(): Promise {\n return getDecodedExtendedKeyUsage.call(this);\n }\n\n public getAlgorithm(): Promise {\n return getAlgorithm.call(this);\n }\n\n public getCadesProp(propName): Promise {\n return getCadesProp.call(this, propName);\n }\n\n public isValid(): Promise {\n return isValid.call(this);\n }\n\n public exportBase64(): Promise {\n return exportBase64.call(this);\n }\n\n public hasExtendedKeyUsage(oids): Promise {\n return hasExtendedKeyUsage.call(this, oids);\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 * Экспортирует сертификат в формате 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 { _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 { 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 {\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 {\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 { _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 {\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","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 * Проверяет действительность сертификата\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","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 * Создает присоединенную подпись сообщения по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param message - подписываемое сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const createAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\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 = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Создает отсоединенную подпись хеша по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const createDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\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.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит\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)\n *\n * @param unencryptedMessage - сообщение для хеширования\n *\n * @returns хеш\n */\nexport const createHash = _afterPluginsLoaded(\n async (unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n\n return eval(\n _generateCadesFn(function createHash(): string {\n const cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\n let messageBase64;\n let hash;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\n void (__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации хэширования');\n }\n\n try {\n hash = __cadesAsyncToken__ + cadesHashedData.Value;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при создании хэша');\n }\n\n return hash;\n }),\n );\n },\n);\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _getCadesCert } from '../helpers/_getCadesCert';\n\n/**\n * Создает XML подпись для документа в формате XML\n *\n * @param thumbprint - отпечаток сертификата\n * @param unencryptedMessage - подписываемое сообщение в формате XML\n * @returns подпись\n */\nexport const createXMLSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createXMLSignature(): string {\n let cadesSigner;\n let cadesSignedXML;\n\n try {\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\n cadesSignedXML = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.SignedXML');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\n }\n\n try {\n const signatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';\n const digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';\n\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\n void (__cadesAsyncToken__ + cadesSigner.propset_CheckCertificate(true));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_Content(unencryptedMessage));\n void (\n __cadesAsyncToken__ +\n cadesSignedXML.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)\n );\n void (__cadesAsyncToken__ + cadesSignedXML.propset_SignatureMethod(signatureMethod));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_DigestMethod(digestMethod));\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 = __cadesAsyncToken__ + cadesSignedXML.Sign(cadesSigner);\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 { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getAllUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerAllCertificates: Certificate[] = await getAllContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerAllCertificates;\n } else {\n let containerAllCertificatesCount = containerAllCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerAllCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);\n }\n\n containerAllCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\n","import { CadesCertificate, Certificate } from './certificate';\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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllContainerCertificates = _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 getAllContainerCertificates(): 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.CADESCOM_CONTAINER_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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","import { CadesCertificate, Certificate } from './certificate';\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 getAllUserCertificates = _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 getAllUserCertificates(): 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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getCertificates } from './getCertificates';\nimport { getAllCertificates } from './getAllCertificates';\n\n/**\n * Возвращает сертификат по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @param validOnly - проверять сертификаты по дате и наличию приватного ключа\n * @returns сертификат\n */\nexport const getCertificate = _afterPluginsLoaded(\n async (thumbprint: string, validOnly: boolean = true): Promise => {\n if (!thumbprint) {\n throw new Error('Отпечаток не указан');\n }\n\n let availableCertificates: Certificate[];\n\n if (validOnly) {\n availableCertificates = await getCertificates();\n } else {\n availableCertificates = await getAllCertificates();\n }\n\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","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getUserCertificates } from './getUserCertificates';\nimport { getContainerCertificates } from './getContainerCertificates';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerCertificates: Certificate[] = await getContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerCertificates;\n } else {\n let containerCertificatesCount = containerCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerCertificates[containerCertificatesCount]);\n }\n\n containerCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает список сертификатов, доступных пользователю в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getContainerCertificates = _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 getContainerCertificates(): 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.CADESCOM_CONTAINER_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","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о CSP\n */\nexport const getCspVersion = _afterPluginsLoaded((): string => {\n let cspVersion = null;\n\n return eval(\n _generateCadesFn(function getCspVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\n\n cspVersion = __cadesAsyncToken__ + cspVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении версии системы');\n }\n\n return cspVersion;\n }),\n );\n});\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о плагине\n */\nexport const getPluginVersion = _afterPluginsLoaded((): string => {\n let cadesVersion = null;\n\n return eval(\n _generateCadesFn(function getPluginVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\n\n if (!cadesVersion) {\n cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\n }\n\n cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о плагине');\n }\n\n return cadesVersion;\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","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 './getCertificate';\nexport * from './getUserCertificates';\nexport * from './getAllUserCertificates';\nexport * from './getContainerCertificates';\nexport * from './getAllContainerCertificates';\nexport * from './getCertificates';\nexport * from './getAllCertificates';\nexport * from './getSystemInfo';\nexport * from './isValidSystemSetup';\nexport * from './createXMLSignature';\nexport * from './createDetachedSignature';\nexport * from './addDetachedSignature';\nexport * from './createAttachedSignature';\nexport * from './addAttachedSignature';\nexport * from './createHash';\nexport * from './certificate';\nexport * from './getCspVersion';\nexport * from './getPluginVersion';\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 => {\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 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","export * from './cades-constants';\nexport * from './issuer-tags-translations';\nexport * from './oids-dictionary';\nexport * from './subject-tags-translations';\n","import { TagsTranslations } from './tags-translations';\n\nexport const ISSUER_TAGS_TRANSLATIONS: TagsTranslations[] = [\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Удостоверяющий центр' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Тип' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], 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.100.4': 'ИНН организации',\n '1.2.643.100.1': 'ОГРН',\n '1.2.643.100.5': 'ОГРНИП',\n '1.2.643.100.3': 'СНИЛС',\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: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Владелец' },\n { possibleNames: ['SN', 'surname'], translation: 'Фамилия' },\n { possibleNames: ['G', 'givenName', 'gn'], translation: 'Имя Отчество' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Отдел/подразделение' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\n];\n","export * from './api';\n","import { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\n\ntype Unpromisify = T extends Promise ? R : T;\n\nlet isSetLogLevel = false;\nlet isPluginLoaded = false;\n\nexport const _afterPluginsLoaded = any>(\n fn: T,\n): ((...args: Parameters) => Promise>>) => {\n const canPromise = Boolean(window.Promise);\n\n return async function (...args: Parameters): Promise>> {\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 _extractCommonName = (subjectName: string): string | undefined =>\n subjectName.match(/CN=\"?(.+?)\"?(?:,|$)/)?.[1]?.replace(/\"{2}/g, '\"');\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[0-9a-zA-Z]{1,8})\\)?)|(?:\\.?$))/);\n\n return searchResult ? searchResult[1] + (searchResult[2] ? ' (Код ошибки: ' + searchResult[2] + ')' : '') : 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","import { CadesCertificate } from '../api/certificate';\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\nimport { _getCadesUserCert } from './_getCadesUserCert';\nimport { _getCadesContainerCert } from './_getCadesContainerCert';\n\n/**\n * Возвращает сертификат в формате Cades по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @returns сертификат в формате Cades\n */\nexport const _getCadesCert = _afterPluginsLoaded(\n async (thumbprint: string): Promise => {\n let cadesCertificate: CadesCertificate;\n\n try {\n cadesCertificate = await _getCadesUserCert(thumbprint);\n } catch (error) {\n console.log(error);\n\n cadesCertificate = await _getCadesContainerCert(thumbprint);\n }\n\n return cadesCertificate;\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 _getCadesContainerCert = _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.CADESCOM_CONTAINER_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(\n _extractMeaningfulErrorMessage(error) ||\n 'Ошибка получения списка сертификатов из хранилища закрытого ключа',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа',\n );\n }\n\n cadesStore.Close();\n\n return cadesCertificate;\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 _getCadesUserCert = _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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя',\n );\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","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","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","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",";(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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"crypto-pro-js.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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 => {\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 => {\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 {\r\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\r\n }\r\n\r\n public getIssuerInfo(): Promise {\r\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\r\n }\r\n\r\n public getExtendedKeyUsage(): Promise {\r\n return getExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getDecodedExtendedKeyUsage(): Promise {\r\n return getDecodedExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getAlgorithm(): Promise {\r\n return getAlgorithm.call(this);\r\n }\r\n\r\n public getCadesProp(propName): Promise {\r\n return getCadesProp.call(this, propName);\r\n }\r\n\r\n public isValid(): Promise {\r\n return isValid.call(this);\r\n }\r\n\r\n public exportBase64(): Promise {\r\n return exportBase64.call(this);\r\n }\r\n\r\n public hasExtendedKeyUsage(oids): Promise {\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 {\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 {\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 {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 extends Promise ? R : T;\r\n\r\nlet isSetLogLevel = false;\r\nlet isPluginLoaded = false;\r\n\r\nexport const _afterPluginsLoaded = any>(\r\n fn: T,\r\n): ((...args: Parameters) => Promise>>) => {\r\n const canPromise = Boolean(window.Promise);\r\n\r\n return async function (...args: Parameters): Promise>> {\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 => {\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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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":""} \ No newline at end of file diff --git a/dist/crypto-pro-js.min.js b/dist/crypto-pro-js.min.js index ac438af..a8b0df8 100644 --- a/dist/crypto-pro-js.min.js +++ b/dist/crypto-pro-js.min.js @@ -1,11 +1,2 @@ -!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("cryptoPro",[],r):"object"==typeof exports?exports.cryptoPro=r():e.cryptoPro=r()}(window,(function(){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var _=r[n]={i:n,l:!1,exports:{}};return e[n].call(_.exports,_,_.exports,t),_.l=!0,_.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var _ in e)t.d(n,_,function(r){return e[r]}.bind(null,_));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=17)}([function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r._afterPluginsLoaded=void 0;var a=t(1),s=!1,o=!1;r._afterPluginsLoaded=function(e){var r=Boolean(window.Promise);return function(){for(var i=[],c=0;c0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r._getCadesCert=void 0;var a=t(0),s=t(38),o=t(39);r._getCadesCert=a._afterPluginsLoaded((function(e){return n(void 0,void 0,void 0,(function(){var r,t;return _(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,4]),[4,s._getCadesUserCert(e)];case 1:return r=n.sent(),[3,4];case 2:return t=n.sent(),console.log(t),[4,o._getCadesContainerCert(e)];case 3:return r=n.sent(),[3,4];case 4:return[2,r]}}))}))}))},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r._extractCommonName=void 0,r._extractCommonName=function(e){var r,t;return null===(t=null===(r=e.match(/CN="?(.+?)"?(?:,|$)/))||void 0===r?void 0:r[1])||void 0===t?void 0:t.replace(/"{2}/g,'"')}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r._getDateObj=void 0,r._getDateObj=function(e){return e.getVarDate?e.getVarDate():e}},function(e,r,t){"use strict";(function(e){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var n=t(44),_=t(45),a=t(46);function s(){return i.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,r){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function E(e,r){if(i.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var t=e.length;if(0===t)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t;case"hex":return t>>>1;case"base64":return Y(e).length;default:if(n)return G(e).length;r=(""+r).toLowerCase(),n=!0}}function f(e,r,t){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return"";if((void 0===t||t>this.length)&&(t=this.length),t<=0)return"";if((t>>>=0)<=(r>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return b(this,r,t);case"utf8":case"utf-8":return y(this,r,t);case"ascii":return R(this,r,t);case"latin1":case"binary":return w(this,r,t);case"base64":return P(this,r,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,r,t);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,r,t){var n=e[r];e[r]=e[t],e[t]=n}function p(e,r,t,n,_){if(0===e.length)return-1;if("string"==typeof t?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=_?0:e.length-1),t<0&&(t=e.length+t),t>=e.length){if(_)return-1;t=e.length-1}else if(t<0){if(!_)return-1;t=0}if("string"==typeof r&&(r=i.from(r,n)),i.isBuffer(r))return 0===r.length?-1:A(e,r,t,n,_);if("number"==typeof r)return r&=255,i.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?_?Uint8Array.prototype.indexOf.call(e,r,t):Uint8Array.prototype.lastIndexOf.call(e,r,t):A(e,[r],t,n,_);throw new TypeError("val must be string, number or Buffer")}function A(e,r,t,n,_){var a,s=1,o=e.length,i=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||r.length<2)return-1;s=2,o/=2,i/=2,t/=2}function c(e,r){return 1===s?e[r]:e.readUInt16BE(r*s)}if(_){var u=-1;for(a=t;ao&&(t=o-i),a=t;a>=0;a--){for(var l=!0,d=0;d_&&(n=_):n=_;var a=r.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var s=0;s>8,_=t%256,a.push(_),a.push(n);return a}(r,e.length-t),e,t,n)}function P(e,r,t){return 0===r&&t===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(r,t))}function y(e,r,t){t=Math.min(e.length,t);for(var n=[],_=r;_239?4:c>223?3:c>191?2:1;if(_+l<=t)switch(l){case 1:c<128&&(u=c);break;case 2:128==(192&(a=e[_+1]))&&(i=(31&c)<<6|63&a)>127&&(u=i);break;case 3:a=e[_+1],s=e[_+2],128==(192&a)&&128==(192&s)&&(i=(15&c)<<12|(63&a)<<6|63&s)>2047&&(i<55296||i>57343)&&(u=i);break;case 4:a=e[_+1],s=e[_+2],o=e[_+3],128==(192&a)&&128==(192&s)&&128==(192&o)&&(i=(15&c)<<18|(63&a)<<12|(63&s)<<6|63&o)>65535&&i<1114112&&(u=i)}null===u?(u=65533,l=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),_+=l}return function(e){var r=e.length;if(r<=4096)return String.fromCharCode.apply(String,e);var t="",n=0;for(;n0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,r,t,n,_){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===t&&(t=e?e.length:0),void 0===n&&(n=0),void 0===_&&(_=this.length),r<0||t>e.length||n<0||_>this.length)throw new RangeError("out of range index");if(n>=_&&r>=t)return 0;if(n>=_)return-1;if(r>=t)return 1;if(this===e)return 0;for(var a=(_>>>=0)-(n>>>=0),s=(t>>>=0)-(r>>>=0),o=Math.min(a,s),c=this.slice(n,_),u=e.slice(r,t),l=0;l_)&&(t=_),e.length>0&&(t<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return O(this,e,r,t);case"utf8":case"utf-8":return h(this,e,r,t);case"ascii":return T(this,e,r,t);case"latin1":case"binary":return I(this,e,r,t);case"base64":return M(this,e,r,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r,t);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function R(e,r,t){var n="";t=Math.min(e.length,t);for(var _=r;_n)&&(t=n);for(var _="",a=r;at)throw new RangeError("Trying to access beyond buffer length")}function N(e,r,t,n,_,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>_||re.length)throw new RangeError("Index out of range")}function m(e,r,t,n){r<0&&(r=65535+r+1);for(var _=0,a=Math.min(e.length-t,2);_>>8*(n?_:1-_)}function L(e,r,t,n){r<0&&(r=4294967295+r+1);for(var _=0,a=Math.min(e.length-t,4);_>>8*(n?_:3-_)&255}function F(e,r,t,n,_,a){if(t+n>e.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function x(e,r,t,n,a){return a||F(e,0,t,4),_.write(e,r,t,n,23,4),t+4}function U(e,r,t,n,a){return a||F(e,0,t,8),_.write(e,r,t,n,52,8),t+8}i.prototype.slice=function(e,r){var t,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r0&&(_*=256);)n+=this[e+--r]*_;return n},i.prototype.readUInt8=function(e,r){return r||D(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,r){return r||D(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,r){return r||D(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,r){return r||D(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,r){return r||D(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,r,t){e|=0,r|=0,t||D(e,r,this.length);for(var n=this[e],_=1,a=0;++a=(_*=128)&&(n-=Math.pow(2,8*r)),n},i.prototype.readIntBE=function(e,r,t){e|=0,r|=0,t||D(e,r,this.length);for(var n=r,_=1,a=this[e+--n];n>0&&(_*=256);)a+=this[e+--n]*_;return a>=(_*=128)&&(a-=Math.pow(2,8*r)),a},i.prototype.readInt8=function(e,r){return r||D(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,r){r||D(e,2,this.length);var t=this[e]|this[e+1]<<8;return 32768&t?4294901760|t:t},i.prototype.readInt16BE=function(e,r){r||D(e,2,this.length);var t=this[e+1]|this[e]<<8;return 32768&t?4294901760|t:t},i.prototype.readInt32LE=function(e,r){return r||D(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,r){return r||D(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,r){return r||D(e,4,this.length),_.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,r){return r||D(e,4,this.length),_.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,r){return r||D(e,8,this.length),_.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,r){return r||D(e,8,this.length),_.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,r,t,n){(e=+e,r|=0,t|=0,n)||N(this,e,r,t,Math.pow(2,8*t)-1,0);var _=1,a=0;for(this[r]=255&e;++a=0&&(a*=256);)this[r+_]=e/a&255;return r+t},i.prototype.writeUInt8=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,1,255,0),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},i.prototype.writeUInt16LE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):m(this,e,r,!0),r+2},i.prototype.writeUInt16BE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):m(this,e,r,!1),r+2},i.prototype.writeUInt32LE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):L(this,e,r,!0),r+4},i.prototype.writeUInt32BE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):L(this,e,r,!1),r+4},i.prototype.writeIntLE=function(e,r,t,n){if(e=+e,r|=0,!n){var _=Math.pow(2,8*t-1);N(this,e,r,t,_-1,-_)}var a=0,s=1,o=0;for(this[r]=255&e;++a>0)-o&255;return r+t},i.prototype.writeIntBE=function(e,r,t,n){if(e=+e,r|=0,!n){var _=Math.pow(2,8*t-1);N(this,e,r,t,_-1,-_)}var a=t-1,s=1,o=0;for(this[r+a]=255&e;--a>=0&&(s*=256);)e<0&&0===o&&0!==this[r+a+1]&&(o=1),this[r+a]=(e/s>>0)-o&255;return r+t},i.prototype.writeInt8=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,1,127,-128),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},i.prototype.writeInt16LE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):m(this,e,r,!0),r+2},i.prototype.writeInt16BE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):m(this,e,r,!1),r+2},i.prototype.writeInt32LE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):L(this,e,r,!0),r+4},i.prototype.writeInt32BE=function(e,r,t){return e=+e,r|=0,t||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),i.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):L(this,e,r,!1),r+4},i.prototype.writeFloatLE=function(e,r,t){return x(this,e,r,!0,t)},i.prototype.writeFloatBE=function(e,r,t){return x(this,e,r,!1,t)},i.prototype.writeDoubleLE=function(e,r,t){return U(this,e,r,!0,t)},i.prototype.writeDoubleBE=function(e,r,t){return U(this,e,r,!1,t)},i.prototype.copy=function(e,r,t,n){if(t||(t=0),n||0===n||(n=this.length),r>=e.length&&(r=e.length),r||(r=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r=0;--_)e[_+r]=this[_+t];else if(a<1e3||!i.TYPED_ARRAY_SUPPORT)for(_=0;_>>=0,t=void 0===t?this.length:t>>>0,e||(e=0),"number"==typeof e)for(a=r;a55295&&t<57344){if(!_){if(t>56319){(r-=3)>-1&&a.push(239,191,189);continue}if(s+1===n){(r-=3)>-1&&a.push(239,191,189);continue}_=t;continue}if(t<56320){(r-=3)>-1&&a.push(239,191,189),_=t;continue}t=65536+(_-55296<<10|t-56320)}else _&&(r-=3)>-1&&a.push(239,191,189);if(_=null,t<128){if((r-=1)<0)break;a.push(t)}else if(t<2048){if((r-=2)<0)break;a.push(t>>6|192,63&t|128)}else if(t<65536){if((r-=3)<0)break;a.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;a.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return a}function Y(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function B(e,r,t,n){for(var _=0;_=r.length||_>=e.length);++_)r[_+t]=e[_];return _}}).call(this,t(43))},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.getCertificates=void 0;var a,s=t(0),o=t(10),i=t(12);r.getCertificates=s._afterPluginsLoaded((function(e){return void 0===e&&(e=!1),n(void 0,void 0,void 0,(function(){var r,t,n,s,c;return _(this,(function(_){switch(_.label){case 0:if(!e&&a)return[2,a];_.label=1;case 1:return _.trys.push([1,3,,4]),[4,o.getUserCertificates(e)];case 2:return r=_.sent(),[3,4];case 3:return t=_.sent(),console.error(t),r=[],[3,4];case 4:return _.trys.push([4,6,,7]),[4,i.getContainerCertificates(e)];case 5:if(n=_.sent(),r)for(s=n.length-1,void 0;s;)r.find((function(e){return e.thumbprint===n[s].thumbprint}))||r.push(n[s]),s--;else r=n;return[3,7];case 6:return c=_.sent(),console.error(c),[3,7];case 7:if(!r)throw new Error("Нет доступных сертификатов");return[2,a=r]}}))}))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUserCertificates=void 0;var certificate_1=__webpack_require__(4),constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractCommonName_1=__webpack_require__(6),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),certificatesCache;exports.getUserCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{(r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates)&&(r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID),r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,constants_1.CAPICOM_PROPID_KEY_PROV_INFO),t=_generateCadesFn_1.__cadesAsyncToken__+r.Count)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!t)throw new Error("Нет доступных сертификатов");var n=[];try{for(;t;){var _=_generateCadesFn_1.__cadesAsyncToken__+r.Item(t);n.push(new certificate_1.Certificate(_,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+_.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+_.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+_.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+_.ValidToDate)),t--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCadesProp=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.getCadesProp=_afterPluginsLoaded_1._afterPluginsLoaded((function(propName){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate[propName]}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при обращении к свойству сертификата")}return e})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContainerCertificates=void 0;var certificate_1=__webpack_require__(4),constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractCommonName_1=__webpack_require__(6),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),certificatesCache;exports.getContainerCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{(r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates)&&(r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID),r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,constants_1.CAPICOM_PROPID_KEY_PROV_INFO),t=_generateCadesFn_1.__cadesAsyncToken__+r.Count)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!t)throw new Error("Нет доступных сертификатов");var n=[];try{for(;t;){var _=_generateCadesFn_1.__cadesAsyncToken__+r.Item(t);n.push(new certificate_1.Certificate(_,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+_.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+_.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+_.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+_.ValidToDate)),t--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.getAllCertificates=void 0;var a,s=t(0),o=t(14),i=t(15);r.getAllCertificates=s._afterPluginsLoaded((function(e){return void 0===e&&(e=!1),n(void 0,void 0,void 0,(function(){var r,t,n,s,c;return _(this,(function(_){switch(_.label){case 0:if(!e&&a)return[2,a];_.label=1;case 1:return _.trys.push([1,3,,4]),[4,o.getAllUserCertificates(e)];case 2:return r=_.sent(),[3,4];case 3:return t=_.sent(),console.error(t),r=[],[3,4];case 4:return _.trys.push([4,6,,7]),[4,i.getAllContainerCertificates(e)];case 5:if(n=_.sent(),r)for(s=n.length-1,void 0;s;)r.find((function(e){return e.thumbprint===n[s].thumbprint}))||r.push(n[s]),s--;else r=n;return[3,7];case 6:return c=_.sent(),console.error(c),[3,7];case 7:if(!r)throw new Error("Нет доступных сертификатов");return[2,a=r]}}))}))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllUserCertificates=void 0;var certificate_1=__webpack_require__(4),_afterPluginsLoaded_1=__webpack_require__(0),_extractCommonName_1=__webpack_require__(6),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),certificatesCache;exports.getAllUserCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,t=_generateCadesFn_1.__cadesAsyncToken__+r.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!t)throw new Error("Нет доступных сертификатов");var n=[];try{for(;t;){var _=_generateCadesFn_1.__cadesAsyncToken__+r.Item(t);n.push(new certificate_1.Certificate(_,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+_.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+_.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+_.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+_.ValidToDate)),t--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllContainerCertificates=void 0;var certificate_1=__webpack_require__(4),_afterPluginsLoaded_1=__webpack_require__(0),_extractCommonName_1=__webpack_require__(6),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),certificatesCache;exports.getAllContainerCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,t=_generateCadesFn_1.__cadesAsyncToken__+r.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!t)throw new Error("Нет доступных сертификатов");var n=[];try{for(;t;){var _=_generateCadesFn_1.__cadesAsyncToken__+r.Item(t);n.push(new certificate_1.Certificate(_,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+_.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+_.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+_.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+_.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+_.ValidToDate)),t--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSystemInfo=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.getSystemInfo=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var sysInfo={cadesVersion:null,cspVersion:null};return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.PluginVersion,sysInfo.cspVersion=_generateCadesFn_1.__cadesAsyncToken__+e.CSPVersion(),sysInfo.cadesVersion||(sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.Version),sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+sysInfo.cadesVersion.toString(),sysInfo.cspVersion=_generateCadesFn_1.__cadesAsyncToken__+sysInfo.cspVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении информации о системе")}return sysInfo})))}))},function(e,r,t){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t),Object.defineProperty(e,n,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]}),_=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||r.hasOwnProperty(t)||n(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),_(t(18),r)},function(e,r,t){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t),Object.defineProperty(e,n,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]}),_=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||r.hasOwnProperty(t)||n(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),_(t(19),r),_(t(10),r),_(t(14),r),_(t(12),r),_(t(15),r),_(t(9),r),_(t(13),r),_(t(16),r),_(t(34),r),_(t(37),r),_(t(40),r),_(t(41),r),_(t(42),r),_(t(47),r),_(t(48),r),_(t(4),r),_(t(49),r),_(t(50),r)},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.getCertificate=void 0;var a=t(0),s=t(9),o=t(13);r.getCertificate=a._afterPluginsLoaded((function(e,r){return void 0===r&&(r=!0),n(void 0,void 0,void 0,(function(){var t,n;return _(this,(function(_){switch(_.label){case 0:if(!e)throw new Error("Отпечаток не указан");return r?[4,s.getCertificates()]:[3,2];case 1:return t=_.sent(),[3,4];case 2:return[4,o.getAllCertificates()];case 3:t=_.sent(),_.label=4;case 4:if(!(n=t.find((function(r){return r.thumbprint===e}))))throw new Error('Сертификат с отпечатком: "'+e+'" не найден');return[2,n]}}))}))}))},function(module,exports){!function(){if(!window.cadesplugin){var pluginObject,plugin_resolved=0,plugin_reject,plugin_resolve,isOpera=0,isFireFox=0,isSafari=0,isYandex=0,canPromise=!!window.Promise,cadesplugin_loaded_event_recieved=!1,isFireFoxExtensionLoaded=!1,cadesplugin;cadesplugin=canPromise?new Promise((function(e,r){plugin_resolve=e,plugin_reject=r})):{};var browserSpecs=check_browser(),ru_cryptopro_npcades_10_native_bridge={callbacksCount:1,callbacks:{},resultForCallback:function(e,r){var t=ru_cryptopro_npcades_10_native_bridge.callbacks[e];t&&t.apply(null,r)},call:function(e,r,t){var n=t&&"function"==typeof t,_=n?ru_cryptopro_npcades_10_native_bridge.callbacksCount++:0;n&&(ru_cryptopro_npcades_10_native_bridge.callbacks[_]=t);var a=document.createElement("IFRAME"),s=new Array("_CPNP_handle");try{a.setAttribute("src","cpnp-js-call:"+e+":"+_+":"+encodeURIComponent(JSON.stringify(r,s)))}catch(e){alert(e)}document.documentElement.appendChild(a),a.parentNode.removeChild(a),a=null}};cadesplugin.JSModuleVersion="2.3.2",cadesplugin.async_spawn=async_spawn,cadesplugin.set=set_pluginObject,cadesplugin.set_log_level=set_log_level,cadesplugin.getLastError=getLastError,cadesplugin.is_capilite_enabled=is_capilite_enabled,isNativeMessageSupported()&&(cadesplugin.CreateObjectAsync=CreateObjectAsync,cadesplugin.ReleasePluginObjects=ReleasePluginObjects),isNativeMessageSupported()||(cadesplugin.CreateObject=CreateObject),window.cadesplugin_load_timeout?setTimeout(check_load_timeout,window.cadesplugin_load_timeout):setTimeout(check_load_timeout,2e4),set_constantValues(),cadesplugin.current_log_level=cadesplugin.LOG_LEVEL_ERROR,window.cadesplugin=cadesplugin,check_plugin_working()}function check_browser(){var e,r=navigator.userAgent,t=r.match(/(opera|yabrowser|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(t[1])?{name:"IE",version:(e=/\brv[ :]+(\d+)/g.exec(r)||[])[1]||""}:"Chrome"===t[1]&&null!=(e=r.match(/\b(OPR|Edg|YaBrowser)\/(\d+)/))?{name:e[1].replace("OPR","Opera"),version:e[2]}:(t=t[2]?[t[1],t[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=r.match(/version\/(\d+)/i))&&t.splice(1,1,e[1]),{name:t[0],version:t[1]})}function cpcsp_console_log(e,r){if("undefined"!=typeof console)return e<=cadesplugin.current_log_level?(e===cadesplugin.LOG_LEVEL_DEBUG&&console.log("DEBUG: %s",r),e===cadesplugin.LOG_LEVEL_INFO&&console.info("INFO: %s",r),void(e===cadesplugin.LOG_LEVEL_ERROR&&console.error("ERROR: %s",r))):void 0}function set_log_level(e){e===cadesplugin.LOG_LEVEL_DEBUG||e===cadesplugin.LOG_LEVEL_INFO||e===cadesplugin.LOG_LEVEL_ERROR?(cadesplugin.current_log_level=e,cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_DEBUG&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = DEBUG"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_INFO&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = INFO"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_ERROR&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = ERROR"),isNativeMessageSupported()&&(cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_DEBUG&&window.postMessage("set_log_level=debug","*"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_INFO&&window.postMessage("set_log_level=info","*"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_ERROR&&window.postMessage("set_log_level=error","*"))):cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR,"cadesplugin_api.js: Incorrect log_level: "+e)}function set_constantValues(){cadesplugin.CAPICOM_MEMORY_STORE=0,cadesplugin.CAPICOM_LOCAL_MACHINE_STORE=1,cadesplugin.CAPICOM_CURRENT_USER_STORE=2,cadesplugin.CAPICOM_SMART_CARD_USER_STORE=4,cadesplugin.CADESCOM_MEMORY_STORE=0,cadesplugin.CADESCOM_LOCAL_MACHINE_STORE=1,cadesplugin.CADESCOM_CURRENT_USER_STORE=2,cadesplugin.CADESCOM_SMART_CARD_USER_STORE=4,cadesplugin.CADESCOM_CONTAINER_STORE=100,cadesplugin.CAPICOM_MY_STORE="My",cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED=2,cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED=0,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING=1,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE=2,cadesplugin.CADESCOM_XADES_DEFAULT=16,cadesplugin.CADESCOM_XADES_BES=32,cadesplugin.CADESCOM_XADES_T=80,cadesplugin.CADESCOM_XADES_X_LONG_TYPE_1=1488,cadesplugin.CADESCOM_XMLDSIG_TYPE=0,cadesplugin.XmlDsigGost3410UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411",cadesplugin.XmlDsigGost3411UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr3411",cadesplugin.XmlDsigGost3410Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411",cadesplugin.XmlDsigGost3411Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411",cadesplugin.XmlDsigGost3411Url2012256="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256",cadesplugin.XmlDsigGost3410Url2012256="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256",cadesplugin.XmlDsigGost3411Url2012512="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512",cadesplugin.XmlDsigGost3410Url2012512="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512",cadesplugin.CADESCOM_CADES_DEFAULT=0,cadesplugin.CADESCOM_CADES_BES=1,cadesplugin.CADESCOM_CADES_T=5,cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1=93,cadesplugin.CADESCOM_PKCS7_TYPE=65535,cadesplugin.CADESCOM_ENCODE_BASE64=0,cadesplugin.CADESCOM_ENCODE_BINARY=1,cadesplugin.CADESCOM_ENCODE_ANY=-1,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT=0,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=1,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY=2,cadesplugin.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME=0,cadesplugin.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME=1,cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH=0,cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1,cadesplugin.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME=2,cadesplugin.CAPICOM_CERTIFICATE_FIND_ROOT_NAME=3,cadesplugin.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME=4,cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENSION=5,cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY=6,cadesplugin.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY=7,cadesplugin.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY=8,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID=9,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID=10,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED=11,cadesplugin.CAPICOM_CERTIFICATE_FIND_KEY_USAGE=12,cadesplugin.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE=128,cadesplugin.CAPICOM_PROPID_ENHKEY_USAGE=9,cadesplugin.CAPICOM_OID_OTHER=0,cadesplugin.CAPICOM_OID_KEY_USAGE_EXTENSION=10,cadesplugin.CAPICOM_EKU_CLIENT_AUTH=2,cadesplugin.CAPICOM_EKU_SMARTCARD_LOGON=5,cadesplugin.CAPICOM_EKU_OTHER=0,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO=256,cadesplugin.CADESCOM_ATTRIBUTE_OTHER=-1,cadesplugin.CADESCOM_STRING_TO_UCS2LE=0,cadesplugin.CADESCOM_BASE64_TO_BINARY=1,cadesplugin.CADESCOM_DISPLAY_DATA_NONE=0,cadesplugin.CADESCOM_DISPLAY_DATA_CONTENT=1,cadesplugin.CADESCOM_DISPLAY_DATA_ATTRIBUTE=2,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC2=0,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC4=1,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_DES=2,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_3DES=3,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_AES=4,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89=25,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA1=0,cadesplugin.CADESCOM_HASH_ALGORITHM_MD2=1,cadesplugin.CADESCOM_HASH_ALGORITHM_MD4=2,cadesplugin.CADESCOM_HASH_ALGORITHM_MD5=3,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_256=4,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_384=5,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_512=6,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411=100,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256=101,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512=102,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC=110,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC=111,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC=112,cadesplugin.LOG_LEVEL_DEBUG=4,cadesplugin.LOG_LEVEL_INFO=2,cadesplugin.LOG_LEVEL_ERROR=1,cadesplugin.CADESCOM_AllowNone=0,cadesplugin.CADESCOM_AllowNoOutstandingRequest=1,cadesplugin.CADESCOM_AllowUntrustedCertificate=2,cadesplugin.CADESCOM_AllowUntrustedRoot=4,cadesplugin.CADESCOM_SkipInstallToStore=268435456,cadesplugin.CADESCOM_InstallCertChainToContainer=536870912,cadesplugin.CADESCOM_UseContainerStore=1073741824,cadesplugin.ENABLE_CARRIER_TYPE_CSP=1,cadesplugin.ENABLE_CARRIER_TYPE_FKC_NO_SM=2,cadesplugin.ENABLE_CARRIER_TYPE_FKC_SM=4,cadesplugin.ENABLE_ANY_CARRIER_TYPE=7,cadesplugin.DISABLE_EVERY_CARRIER_OPERATION=0,cadesplugin.ENABLE_CARRIER_OPEN_ENUM=1,cadesplugin.ENABLE_CARRIER_CREATE=2,cadesplugin.ENABLE_ANY_OPERATION=3,cadesplugin.CADESCOM_PRODUCT_CSP=0,cadesplugin.CADESCOM_PRODUCT_OCSP=1,cadesplugin.CADESCOM_PRODUCT_TSP=2,cadesplugin.MEDIA_TYPE_REGISTRY=1,cadesplugin.MEDIA_TYPE_HDIMAGE=2,cadesplugin.MEDIA_TYPE_CLOUD=4,cadesplugin.MEDIA_TYPE_SCARD=8,cadesplugin.XCN_CRYPT_STRING_BASE64HEADER=0,cadesplugin.AT_KEYEXCHANGE=1,cadesplugin.AT_SIGNATURE=2,cadesplugin.CARRIER_FLAG_REMOVABLE=1,cadesplugin.CARRIER_FLAG_UNIQUE=2,cadesplugin.CARRIER_FLAG_PROTECTED=4,cadesplugin.CARRIER_FLAG_FUNCTIONAL_CARRIER=8,cadesplugin.CARRIER_FLAG_SECURE_MESSAGING=16,cadesplugin.CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE=64,cadesplugin.CARRIER_FLAG_VIRTUAL=128}function async_spawn(e){function r(e,r){var a;try{a=t[e](r)}catch(e){return Promise.reject(e)}return a.done?a.value:Promise.resolve(a.value).then(n,_)}var t=e(Array.prototype.slice.call(arguments,1)),n=r.bind(r,"next"),_=r.bind(r,"throw");return n()}function isIE(){return"IE"===browserSpecs.name||"MSIE"===browserSpecs.name}function isIOS(){return navigator.userAgent.match(/ipod/i)||navigator.userAgent.match(/ipad/i)||navigator.userAgent.match(/iphone/i)}function isNativeMessageSupported(){return!isIE()&&("Edg"===browserSpecs.name||("YaBrowser"===browserSpecs.name?(isYandex=!0,!0):"Opera"===browserSpecs.name?(isOpera=!0,browserSpecs.version>=33):"Firefox"===browserSpecs.name?(isFireFox=!0,browserSpecs.version>=52):"Chrome"===browserSpecs.name?browserSpecs.version>=42:"Safari"===browserSpecs.name?(isSafari=!0,browserSpecs.version>=12):void 0))}function CreateObject(e){if(isIOS())return call_ru_cryptopro_npcades_10_native_bridge("CreateObject",[e]);if(isIE()){if(e.match(/X509Enrollment/i))try{return document.getElementById("webClassFactory").CreateObject(e)}catch(r){try{return document.getElementById("certEnrollClassFactory").CreateObject(e)}catch(e){throw"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS"}}try{return document.getElementById("webClassFactory").CreateObject(e)}catch(r){return new ActiveXObject(e)}}return pluginObject.CreateObject(e)}function decimalToHexString(e){return e<0&&(e=4294967295+e+1),e.toString(16).toUpperCase()}function GetMessageFromException(e){var r=e.message;return r?e.number&&(r+=" (0x"+decimalToHexString(e.number)+")"):r=e,r}function getLastError(e){if(isNativeMessageSupported()||isIE()||isIOS())return GetMessageFromException(e);try{return pluginObject.getLastError()}catch(r){return GetMessageFromException(e)}}function ReleasePluginObjects(){return cpcsp_chrome_nmcades.ReleasePluginObjects()}function CreateObjectAsync(e){return pluginObject.CreateObjectAsync(e)}function call_ru_cryptopro_npcades_10_native_bridge(functionName,array){var tmpobj,ex;if(ru_cryptopro_npcades_10_native_bridge.call(functionName,array,(function(e,response){ex=e;var str="tmpobj="+response;eval(str),"string"==typeof tmpobj&&(tmpobj=tmpobj.replace(/\\\n/gm,"\n"),tmpobj=tmpobj.replace(/\\\r/gm,"\r"))})),ex)throw ex;return tmpobj}function show_firefox_missing_extension_dialog(){if(!window.cadesplugin_skip_extension_install){var e=document.createElement("div");e.id="cadesplugin_ovr",e.style="visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)",e.innerHTML="

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.

Скачать расширение

",document.getElementsByTagName("Body")[0].appendChild(e),document.getElementById("cadesplugin_close_install").addEventListener("click",(function(){plugin_loaded_error("Плагин недоступен"),document.getElementById("cadesplugin_ovr").style.visibility="hidden"})),e.addEventListener("click",(function(){plugin_loaded_error("Плагин недоступен"),document.getElementById("cadesplugin_ovr").style.visibility="hidden"})),e.style.visibility="visible"}}function firefox_or_safari_nmcades_onload(){window.cadesplugin_extension_loaded_callback&&window.cadesplugin_extension_loaded_callback(),isFireFoxExtensionLoaded=!0,cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded,plugin_loaded_error)}function nmcades_api_onload(){isIE()||isFireFox||isSafari||window.cadesplugin_extension_loaded_callback&&window.cadesplugin_extension_loaded_callback(),window.postMessage("cadesplugin_echo_request","*"),window.addEventListener("message",(function(e){if("string"==typeof e.data&&e.data.match("cadesplugin_loaded")&&!cadesplugin_loaded_event_recieved){if(isFireFox||isSafari){var r=e.data.substring(e.data.indexOf("url:")+4);if(!r.match("^moz-extension://[a-zA-Z0-9-]+/nmcades_plugin_api.js$")&&!r.match("^safari-extension://[a-zA-Z0-9-]+/[a-zA-Z0-9]+/nmcades_plugin_api.js$"))return cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR,'Bad url "'+r+'" for load CryptoPro Extension for CAdES Browser plug-in'),void plugin_loaded_error();var t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("src",r),t.onerror=plugin_loaded_error,t.onload=firefox_or_safari_nmcades_onload,document.getElementsByTagName("head")[0].appendChild(t)}else cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded,plugin_loaded_error);cadesplugin_loaded_event_recieved=!0}}),!1)}function load_extension(){var e;isFireFox||isSafari?nmcades_api_onload():isOpera||isYandex?((e=document.createElement("script")).setAttribute("type","text/javascript"),e.setAttribute("src","chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js"),e.onerror=plugin_loaded_error,e.onload=nmcades_api_onload,document.getElementsByTagName("head")[0].appendChild(e)):((e=document.createElement("script")).setAttribute("type","text/javascript"),e.setAttribute("src","chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js"),e.onerror=plugin_loaded_error,e.onload=nmcades_api_onload,document.getElementsByTagName("head")[0].appendChild(e))}function load_npapi_plugin(){var e=document.createElement("object");if(e.setAttribute("id","cadesplugin_object"),e.setAttribute("type","application/x-cades"),e.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(e),pluginObject=document.getElementById("cadesplugin_object"),isIE()){var r=document.createElement("object");r.setAttribute("id","certEnrollClassFactory"),r.setAttribute("classid","clsid:884e2049-217d-11da-b2a4-000e7bbb2b09"),r.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(r);var t=document.createElement("object");t.setAttribute("id","webClassFactory"),t.setAttribute("classid","clsid:B04C8637-10BD-484E-B0DA-B8A039F60024"),t.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(t)}}function plugin_loaded(){plugin_resolved=1,canPromise?plugin_resolve():window.postMessage("cadesplugin_loaded","*")}function plugin_loaded_error(e){void 0!==e&&"object"!=typeof e||(e="Плагин недоступен"),plugin_resolved=1,canPromise?plugin_reject(e):window.postMessage("cadesplugin_load_error","*")}function check_load_timeout(){1!==plugin_resolved&&(isFireFox&&(isFireFoxExtensionLoaded||show_firefox_missing_extension_dialog()),plugin_resolved=1,canPromise?plugin_reject("Истекло время ожидания загрузки плагина"):window.postMessage("cadesplugin_load_error","*"))}function createPromise(e){return new Promise(e)}function check_npapi_plugin(){try{CreateObject("CAdESCOM.About");plugin_loaded()}catch(r){document.getElementById("cadesplugin_object").style.display="none";var e=navigator.mimeTypes["application/x-cades"];if(e)plugin_loaded_error(e.enabledPlugin?"Плагин загружен, но не создаются обьекты":"Ошибка при загрузке плагина");else plugin_loaded_error("Плагин недоступен")}}function check_plugin_working(){var e=document.createElement("div");e.innerHTML="\x3c!--[if lt IE 9]>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.getDecodedExtendedKeyUsage=void 0;var s=t(3),o=t(0);r.getDecodedExtendedKeyUsage=o._afterPluginsLoaded((function(){return _(this,void 0,void 0,(function(){return a(this,(function(e){switch(e.label){case 0:return[4,this.getExtendedKeyUsage()];case 1:return[2,e.sent().reduce((function(e,r){var t;return n(n({},e),((t={})[r]=s.OIDS_DICTIONARY[r]||null,t))}),{})]}}))}))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getExtendedKeyUsage=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.getExtendedKeyUsage=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,r=[];try{if(e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.ExtendedKeyUsage(),e=_generateCadesFn_1.__cadesAsyncToken__+e.EKUs,(e=_generateCadesFn_1.__cadesAsyncToken__+e.Count)>0)for(;e>0;){var t=void 0;t=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.ExtendedKeyUsage(),t=_generateCadesFn_1.__cadesAsyncToken__+t.EKUs,t=_generateCadesFn_1.__cadesAsyncToken__+t.Item(e),t=_generateCadesFn_1.__cadesAsyncToken__+t.OID,r.push(t),e--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении ОИД'ов")}return r})))}))},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.getInfo=void 0;var a=t(0),s=t(1),o=t(31),i=t(11);r.getInfo=a._afterPluginsLoaded((function(e,r){return n(this,void 0,void 0,(function(){var t,n;return _(this,(function(_){switch(_.label){case 0:return _.trys.push([0,2,,3]),[4,i.getCadesProp.call(this,r)];case 1:return t=_.sent(),[3,3];case 2:throw n=_.sent(),console.error(n),new Error(s._extractMeaningfulErrorMessage(n)||"Ошибка при извлечении информации из сертификата");case 3:return[2,o._parseCertInfo(e,t)]}}))}))}))},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r._parseCertInfo=void 0;var n=t(3);r._parseCertInfo=function(e,r){var t=r.match(/([а-яА-Яa-zA-Z0-9\s.]+)=(?:("[^"]+?")|(.+?))(?:,|$)/g);if(t)return t.map((function(r){var t,_,a,s=r.trim().match(/^([а-яА-Яa-zA-Z0-9\s.]+)=(.+?),?$/),o=null==s?void 0:s[1],i=null===(_=null===(t=null==s?void 0:s[2])||void 0===t?void 0:t.replace(/^"(.*)"/,"$1"))||void 0===_?void 0:_.replace(/"{2}/g,'"'),c=null==o?void 0:o.match(/^OID\.(.*)/),u=null==c?void 0:c[1],l=!1;if(u){var d=n.OIDS_DICTIONARY[u];d&&(o=d,l=!0)}var C=null===(a=e.find((function(e){return e.possibleNames.find((function(e){return e===o}))})))||void 0===a?void 0:a.translation;return C&&(o=C,l=!0),{description:i,title:o,isTranslated:l}}))}},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.hasExtendedKeyUsage=void 0;var a=t(0);r.hasExtendedKeyUsage=a._afterPluginsLoaded((function(e){return n(this,void 0,void 0,(function(){var r;return _(this,(function(t){switch(t.label){case 0:return[4,this.getExtendedKeyUsage()];case 1:return r=t.sent(),[2,Array.isArray(e)?e.every((function(e){return r.some((function(r){return r===e}))})):r.some((function(r){return r===e}))]}}))}))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValid=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.isValid=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.IsValid(),e=_generateCadesFn_1.__cadesAsyncToken__+e.Result}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при проверке сертификата")}return Boolean(e)})))}))},function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},_=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(r,"__esModule",{value:!0}),r.isValidSystemSetup=void 0;var a=t(0),s=t(1),o=t(35),i=t(36),c=t(16);r.isValidSystemSetup=a._afterPluginsLoaded((function(){return n(void 0,void 0,void 0,(function(){var e,r;return _(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,c.getSystemInfo()];case 1:return e=t.sent(),[3,3];case 2:throw r=t.sent(),console.error(r),new Error(s._extractMeaningfulErrorMessage(r)||"Настройки ЭП на данной машине не верны");case 3:if(!o._isSupportedCadesVersion(e.cadesVersion))throw new Error("Не поддерживаемая версия плагина");if(!i._isSupportedCSPVersion(e.cspVersion))throw new Error("Не поддерживаемая версия CSP");return[2,!0]}}))}))}))},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r._isSupportedCadesVersion=void 0,r._isSupportedCadesVersion=function(e){var r=e.match(/(\d+)\.(\d+)\.(\d+)/);if(!r)return!1;var t=r[1],n=(r[2],r[3]);return!(Number(t)<2)&&!(2===Number(t)&&Number(n)<12438)}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r._isSupportedCSPVersion=void 0;r._isSupportedCSPVersion=function(e){var r;return e=null===(r=e.match(/\d+?\b(?:\.\d+)?/))||void 0===r?void 0:r[0],Number(e)>=4}},function(module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createXMLSignature=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),_getCadesCert_1=__webpack_require__(5);exports.createXMLSignature=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint,unencryptedMessage){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin,cadesCertificate;return __generator(this,(function(_a){switch(_a.label){case 0:return cadesplugin=window.cadesplugin,[4,_getCadesCert_1._getCadesCert(thumbprint)];case 1:return cadesCertificate=_a.sent(),[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CPSigner"),r=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.SignedXML")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации подписи")}try{_generateCadesFn_1.__cadesAsyncToken__,e.propset_Certificate(cadesCertificate),_generateCadesFn_1.__cadesAsyncToken__,e.propset_CheckCertificate(!0),_generateCadesFn_1.__cadesAsyncToken__,r.propset_Content(unencryptedMessage),_generateCadesFn_1.__cadesAsyncToken__,r.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED),_generateCadesFn_1.__cadesAsyncToken__,r.propset_SignatureMethod("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"),_generateCadesFn_1.__cadesAsyncToken__,r.propset_DigestMethod("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при указании данных для подписи")}try{t=_generateCadesFn_1.__cadesAsyncToken__+r.Sign(e)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при подписании данных")}return t})))]}}))}))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports._getCadesUserCert=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports._getCadesUserCert=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint){var cadesplugin=window.cadesplugin;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}if(!e)throw new Error("Не удалось получить доступ к хранилищу сертификатов");try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища пользователя")}try{r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,t=_generateCadesFn_1.__cadesAsyncToken__+r.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов из хранилища пользователя")}if(!t)throw new Error("Нет доступных сертификатов в хранилище пользователя");try{if(r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,thumbprint),!(_generateCadesFn_1.__cadesAsyncToken__+r.Count))throw new Error('Сертификат с отпечатком: "'+thumbprint+'" не найден в хранилище пользователя');n=_generateCadesFn_1.__cadesAsyncToken__+r.Item(1)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении сертификата из хранилища пользователя")}return e.Close(),n})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports._getCadesContainerCert=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports._getCadesContainerCert=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint){var cadesplugin=window.cadesplugin;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}if(!e)throw new Error("Не удалось получить доступ к хранилищу сертификатов");try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища закрытого ключа")}try{r=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,t=_generateCadesFn_1.__cadesAsyncToken__+r.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов из хранилища закрытого ключа")}if(!t)throw new Error("Нет доступных сертификатов в хранилище закрытого ключа");try{if(r=_generateCadesFn_1.__cadesAsyncToken__+r.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,thumbprint),!(_generateCadesFn_1.__cadesAsyncToken__+r.Count))throw new Error('Сертификат с отпечатком: "'+thumbprint+'" не найден в хранилище закрытого ключа');n=_generateCadesFn_1.__cadesAsyncToken__+r.Item(1)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении сертификата из хранилища закрытого ключа")}return e.Close(),n})))}))},function(module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createDetachedSignature=void 0;var constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),_getCadesCert_1=__webpack_require__(5),_getDateObj_1=__webpack_require__(7);exports.createDetachedSignature=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint,messageHash){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin,cadesCertificate;return __generator(this,(function(_a){switch(_a.label){case 0:return cadesplugin=window.cadesplugin,[4,_getCadesCert_1._getCadesCert(thumbprint)];case 1:return cadesCertificate=_a.sent(),[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CADESCOM.CPAttribute"),r=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.HashedData"),t=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CadesSignedData"),n=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CPSigner")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации подписи")}var _,a,s=_getDateObj_1._getDateObj(new Date);try{_generateCadesFn_1.__cadesAsyncToken__,e.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME),_generateCadesFn_1.__cadesAsyncToken__,e.propset_Value(s)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке времени подписи")}try{_generateCadesFn_1.__cadesAsyncToken__,n.propset_Certificate(cadesCertificate),_=_generateCadesFn_1.__cadesAsyncToken__+n.AuthenticatedAttributes2,_generateCadesFn_1.__cadesAsyncToken__,_.Add(e),_generateCadesFn_1.__cadesAsyncToken__,n.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке сертификата")}try{_generateCadesFn_1.__cadesAsyncToken__,r.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256),_generateCadesFn_1.__cadesAsyncToken__,r.SetHashValue(messageHash)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке хеша")}try{a=_generateCadesFn_1.__cadesAsyncToken__+t.SignHash(r,n,cadesplugin.CADESCOM_PKCS7_TYPE)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при подписании данных")}return a})))]}}))}))}))},function(module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addDetachedSignature=void 0;var constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),_getCadesCert_1=__webpack_require__(5),_getDateObj_1=__webpack_require__(7);exports.addDetachedSignature=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint,signedMessage,messageHash){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin,cadesCertificate;return __generator(this,(function(_a){switch(_a.label){case 0:return cadesplugin=window.cadesplugin,[4,_getCadesCert_1._getCadesCert(thumbprint)];case 1:return cadesCertificate=_a.sent(),[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CADESCOM.CPAttribute"),r=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.HashedData"),t=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CadesSignedData"),n=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CPSigner")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации подписи")}var _,a,s=_getDateObj_1._getDateObj(new Date);try{_generateCadesFn_1.__cadesAsyncToken__,e.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME),_generateCadesFn_1.__cadesAsyncToken__,e.propset_Value(s)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке времени подписи")}try{_generateCadesFn_1.__cadesAsyncToken__,n.propset_Certificate(cadesCertificate),_=_generateCadesFn_1.__cadesAsyncToken__+n.AuthenticatedAttributes2,_generateCadesFn_1.__cadesAsyncToken__,_.Add(e),_generateCadesFn_1.__cadesAsyncToken__,n.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке сертификата")}try{_generateCadesFn_1.__cadesAsyncToken__,r.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256),_generateCadesFn_1.__cadesAsyncToken__,r.SetHashValue(messageHash)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке хеша")}try{_generateCadesFn_1.__cadesAsyncToken__,t.VerifyHash(r,signedMessage,cadesplugin.CADESCOM_PKCS7_TYPE),a=_generateCadesFn_1.__cadesAsyncToken__+t.CoSignHash(r,n,cadesplugin.CADESCOM_PKCS7_TYPE)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при подписании данных")}return a})))]}}))}))}))},function(module,exports,__webpack_require__){"use strict";(function(Buffer){var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createAttachedSignature=void 0;var constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),_getCadesCert_1=__webpack_require__(5),_getDateObj_1=__webpack_require__(7);exports.createAttachedSignature=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint,unencryptedMessage){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin,cadesCertificate;return __generator(this,(function(_a){switch(_a.label){case 0:return cadesplugin=window.cadesplugin,[4,_getCadesCert_1._getCadesCert(thumbprint)];case 1:return cadesCertificate=_a.sent(),[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CADESCOM.CPAttribute"),r=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CadesSignedData"),t=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CPSigner")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации подписи")}var n,_,a,s=_getDateObj_1._getDateObj(new Date);try{_generateCadesFn_1.__cadesAsyncToken__,e.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME),_generateCadesFn_1.__cadesAsyncToken__,e.propset_Value(s)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке времени подписи")}try{n=Buffer.from(unencryptedMessage).toString("base64")}catch(e){throw console.error(e),new Error("Ошибка при преобразовании сообщения в Base64")}try{_generateCadesFn_1.__cadesAsyncToken__,t.propset_Certificate(cadesCertificate),_=_generateCadesFn_1.__cadesAsyncToken__+t.AuthenticatedAttributes2,_generateCadesFn_1.__cadesAsyncToken__,_.Add(e),_generateCadesFn_1.__cadesAsyncToken__,r.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY),_generateCadesFn_1.__cadesAsyncToken__,r.propset_Content(n),_generateCadesFn_1.__cadesAsyncToken__,t.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при указании данных для подписи")}try{a=_generateCadesFn_1.__cadesAsyncToken__+r.SignCades(t,cadesplugin.CADESCOM_PKCS7_TYPE)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при подписании данных")}return a})))]}}))}))}))}).call(this,__webpack_require__(8).Buffer)},function(e,r){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch(e){"object"==typeof window&&(t=window)}e.exports=t},function(e,r,t){"use strict";r.byteLength=function(e){var r=c(e),t=r[0],n=r[1];return 3*(t+n)/4-n},r.toByteArray=function(e){var r,t,n=c(e),s=n[0],o=n[1],i=new a(function(e,r,t){return 3*(r+t)/4-t}(0,s,o)),u=0,l=o>0?s-4:s;for(t=0;t>16&255,i[u++]=r>>8&255,i[u++]=255&r;2===o&&(r=_[e.charCodeAt(t)]<<2|_[e.charCodeAt(t+1)]>>4,i[u++]=255&r);1===o&&(r=_[e.charCodeAt(t)]<<10|_[e.charCodeAt(t+1)]<<4|_[e.charCodeAt(t+2)]>>2,i[u++]=r>>8&255,i[u++]=255&r);return i},r.fromByteArray=function(e){for(var r,t=e.length,_=t%3,a=[],s=0,o=t-_;so?o:s+16383));1===_?(r=e[t-1],a.push(n[r>>2]+n[r<<4&63]+"==")):2===_&&(r=(e[t-2]<<8)+e[t-1],a.push(n[r>>10]+n[r>>4&63]+n[r<<2&63]+"="));return a.join("")};for(var n=[],_=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,i=s.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");return-1===t&&(t=r),[t,t===r?0:4-t%4]}function u(e,r,t){for(var _,a,s=[],o=r;o>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return s.join("")}_["-".charCodeAt(0)]=62,_["_".charCodeAt(0)]=63},function(e,r){ -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -r.read=function(e,r,t,n,_){var a,s,o=8*_-n-1,i=(1<>1,u=-7,l=t?_-1:0,d=t?-1:1,C=e[r+l];for(l+=d,a=C&(1<<-u)-1,C>>=-u,u+=o;u>0;a=256*a+e[r+l],l+=d,u-=8);for(s=a&(1<<-u)-1,a>>=-u,u+=n;u>0;s=256*s+e[r+l],l+=d,u-=8);if(0===a)a=1-c;else{if(a===i)return s?NaN:1/0*(C?-1:1);s+=Math.pow(2,n),a-=c}return(C?-1:1)*s*Math.pow(2,a-n)},r.write=function(e,r,t,n,_,a){var s,o,i,c=8*a-_-1,u=(1<>1,d=23===_?Math.pow(2,-24)-Math.pow(2,-77):0,C=n?0:a-1,E=n?1:-1,f=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(o=isNaN(r)?1:0,s=u):(s=Math.floor(Math.log(r)/Math.LN2),r*(i=Math.pow(2,-s))<1&&(s--,i*=2),(r+=s+l>=1?d/i:d*Math.pow(2,1-l))*i>=2&&(s++,i/=2),s+l>=u?(o=0,s=u):s+l>=1?(o=(r*i-1)*Math.pow(2,_),s+=l):(o=r*Math.pow(2,l-1)*Math.pow(2,_),s=0));_>=8;e[t+C]=255&o,C+=E,o/=256,_-=8);for(s=s<<_|o,c+=_;c>0;e[t+C]=255&s,C+=E,s/=256,c-=8);e[t+C-E]|=128*f}},function(e,r){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},function(module,exports,__webpack_require__){"use strict";(function(Buffer){var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addAttachedSignature=void 0;var constants_1=__webpack_require__(3),_afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2),_getCadesCert_1=__webpack_require__(5),_getDateObj_1=__webpack_require__(7);exports.addAttachedSignature=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint,signedMessage){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin,cadesCertificate;return __generator(this,(function(_a){switch(_a.label){case 0:return cadesplugin=window.cadesplugin,[4,_getCadesCert_1._getCadesCert(thumbprint)];case 1:return cadesCertificate=_a.sent(),[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CADESCOM.CPAttribute"),r=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CadesSignedData"),t=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.CPSigner")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации подписи")}var n,_,a,s=_getDateObj_1._getDateObj(new Date);try{_generateCadesFn_1.__cadesAsyncToken__,e.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME),_generateCadesFn_1.__cadesAsyncToken__,e.propset_Value(s)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при установке времени подписи")}try{n=Buffer.from(signedMessage).toString("base64")}catch(e){throw console.error(e),new Error("Ошибка при преобразовании сообщения в Base64")}try{_generateCadesFn_1.__cadesAsyncToken__,t.propset_Certificate(cadesCertificate),_=_generateCadesFn_1.__cadesAsyncToken__+t.AuthenticatedAttributes2,_generateCadesFn_1.__cadesAsyncToken__,_.Add(e),_generateCadesFn_1.__cadesAsyncToken__,r.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY),_generateCadesFn_1.__cadesAsyncToken__,r.propset_Content(n),_generateCadesFn_1.__cadesAsyncToken__,t.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при указании данных для подписи")}try{_generateCadesFn_1.__cadesAsyncToken__,r.VerifyCades(signedMessage,cadesplugin.CADESCOM_PKCS7_TYPE),a=_generateCadesFn_1.__cadesAsyncToken__+r.CoSignCades(t,cadesplugin.CADESCOM_PKCS7_TYPE)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при подписании данных")}return a})))]}}))}))}))}).call(this,__webpack_require__(8).Buffer)},function(module,exports,__webpack_require__){"use strict";(function(Buffer){var __awaiter=this&&this.__awaiter||function(e,r,t,n){return new(t||(t=Promise))((function(_,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var r;e.done?_(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,o)}i((n=n.apply(e,r||[])).next())}))},__generator=this&&this.__generator||function(e,r){var t,n,_,a,s={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;s;)try{if(t=1,n&&(_=2&a[0]?n.return:a[0]?n.throw||((_=n.return)&&_.call(n),0):n.next)&&!(_=_.call(n,a[1])).done)return _;switch(n=0,_&&(a=[2&a[0],_.value]),a[0]){case 0:case 1:_=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(_=s.trys,(_=_.length>0&&_[_.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!_||a[1]>_[0]&&a[1]<_[3])){s.label=a[1];break}if(6===a[0]&&s.label<_[1]){s.label=_[1],_=a;break}if(_&&s.label<_[2]){s.label=_[2],s.ops.push(a);break}_[2]&&s.ops.pop(),s.trys.pop();continue}a=r.call(e,s)}catch(e){a=[6,e],n=0}finally{t=_=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createHash=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.createHash=_afterPluginsLoaded_1._afterPluginsLoaded((function(unencryptedMessage){return __awaiter(void 0,void 0,void 0,(function(){var cadesplugin;return __generator(this,(function(_a){return cadesplugin=window.cadesplugin,[2,eval(_generateCadesFn_1._generateCadesFn((function(){var e,r,t=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.HashedData");try{e=Buffer.from(unencryptedMessage).toString("base64")}catch(e){throw console.error(e),new Error("Ошибка при преобразовании сообщения в Base64")}try{_generateCadesFn_1.__cadesAsyncToken__,t.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256),_generateCadesFn_1.__cadesAsyncToken__,t.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY),_generateCadesFn_1.__cadesAsyncToken__,t.Hash(e)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при инициализации хэширования")}try{r=_generateCadesFn_1.__cadesAsyncToken__+t.Value}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при создании хэша")}return r})))]}))}))}))}).call(this,__webpack_require__(8).Buffer)},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCspVersion=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_extractMeaningfulErrorMessage_1=__webpack_require__(1),_generateCadesFn_1=__webpack_require__(2);exports.getCspVersion=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cspVersion=null;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),cspVersion=_generateCadesFn_1.__cadesAsyncToken__+e.CSPVersion(),cspVersion=_generateCadesFn_1.__cadesAsyncToken__+cspVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении версии системы")}return cspVersion})))}))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPluginVersion=void 0;var _afterPluginsLoaded_1=__webpack_require__(0),_generateCadesFn_1=__webpack_require__(2),_extractMeaningfulErrorMessage_1=__webpack_require__(1);exports.getPluginVersion=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesVersion=null;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),(cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.PluginVersion)||(cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.Version),cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+cadesVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении информации о плагине")}return cadesVersion})))}))}])})); +!function(e,_){"object"==typeof exports&&"object"==typeof module?module.exports=_():"function"==typeof define&&define.amd?define("cryptoPro",[],_):"object"==typeof exports?exports.cryptoPro=_():e.cryptoPro=_()}(self,(()=>(()=>{var __webpack_modules__={984:function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},__generator=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.Certificate=void 0;var n=r(70),t=r(162),a=r(486),s=r(54),o=r(670),i=r(688),c=r(443),u=r(604),l=r(941),C=function(){function e(e,_,r,n,t,a,s){this._cadesCertificate=e,this.name=_,this.issuerName=r,this.subjectName=n,this.thumbprint=t,this.validFrom=a,this.validTo=s}return e.prototype.getOwnerInfo=function(){return c.getInfo.call(this,n.SUBJECT_TAGS_TRANSLATIONS,"SubjectName")},e.prototype.getIssuerInfo=function(){return c.getInfo.call(this,n.ISSUER_TAGS_TRANSLATIONS,"IssuerName")},e.prototype.getExtendedKeyUsage=function(){return i.getExtendedKeyUsage.call(this)},e.prototype.getDecodedExtendedKeyUsage=function(){return o.getDecodedExtendedKeyUsage.call(this)},e.prototype.getAlgorithm=function(){return a.getAlgorithm.call(this)},e.prototype.getCadesProp=function(e){return s.getCadesProp.call(this,e)},e.prototype.isValid=function(){return l.isValid.call(this)},e.prototype.exportBase64=function(){return t.exportBase64.call(this)},e.prototype.hasExtendedKeyUsage=function(e){return u.hasExtendedKeyUsage.call(this,e)},e}();_.Certificate=C},162:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.exportBase64=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.exportBase64=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.Export(0)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при экспорте сертификата")}return e})))}))},486:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAlgorithm=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.getAlgorithm=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,_={algorithm:null,oid:null};try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.PublicKey(),e=_generateCadesFn_1.__cadesAsyncToken__+e.Algorithm,_.algorithm=_generateCadesFn_1.__cadesAsyncToken__+e.FriendlyName,_.oid=_generateCadesFn_1.__cadesAsyncToken__+e.Value}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении алгоритма")}return _})))}))},54:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCadesProp=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.getCadesProp=_afterPluginsLoaded_1._afterPluginsLoaded((function(propName){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate[propName]}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при обращении к свойству сертификата")}return e})))}))},670:function(e,_,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var _,r=1,n=arguments.length;r0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getExtendedKeyUsage=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.getExtendedKeyUsage=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,_=[];try{if(e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.ExtendedKeyUsage(),e=_generateCadesFn_1.__cadesAsyncToken__+e.EKUs,(e=_generateCadesFn_1.__cadesAsyncToken__+e.Count)>0)for(;e>0;){var r=void 0;r=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.ExtendedKeyUsage(),r=_generateCadesFn_1.__cadesAsyncToken__+r.EKUs,r=_generateCadesFn_1.__cadesAsyncToken__+r.Item(e),r=_generateCadesFn_1.__cadesAsyncToken__+r.OID,_.push(r),e--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении ОИД'ов")}return _})))}))},443:function(e,_,r){"use strict";var n=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},t=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValid=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.isValid=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesCertificate=this._cadesCertificate;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+cadesCertificate.IsValid(),e=_generateCadesFn_1.__cadesAsyncToken__+e.Result}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при проверке сертификата")}return Boolean(e)})))}))},181:function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},__generator=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllContainerCertificates=void 0;var certificate_1=__webpack_require__(699),_afterPluginsLoaded_1=__webpack_require__(44),_extractCommonName_1=__webpack_require__(964),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198),certificatesCache;exports.getAllContainerCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,r=_generateCadesFn_1.__cadesAsyncToken__+_.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!r)throw new Error("Нет доступных сертификатов");var n=[];try{for(;r;){var t=_generateCadesFn_1.__cadesAsyncToken__+_.Item(r);n.push(new certificate_1.Certificate(t,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+t.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+t.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+t.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+t.ValidToDate)),r--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},131:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllUserCertificates=void 0;var certificate_1=__webpack_require__(699),_afterPluginsLoaded_1=__webpack_require__(44),_extractCommonName_1=__webpack_require__(964),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198),certificatesCache;exports.getAllUserCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,r=_generateCadesFn_1.__cadesAsyncToken__+_.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!r)throw new Error("Нет доступных сертификатов");var n=[];try{for(;r;){var t=_generateCadesFn_1.__cadesAsyncToken__+_.Item(r);n.push(new certificate_1.Certificate(t,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+t.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+t.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+t.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+t.ValidToDate)),r--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},424:function(e,_,r){"use strict";var n=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},t=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getContainerCertificates=void 0;var certificate_1=__webpack_require__(699),constants_1=__webpack_require__(70),_afterPluginsLoaded_1=__webpack_require__(44),_extractCommonName_1=__webpack_require__(964),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198),certificatesCache;exports.getContainerCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{(_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates)&&(_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID),_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,constants_1.CAPICOM_PROPID_KEY_PROV_INFO),r=_generateCadesFn_1.__cadesAsyncToken__+_.Count)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!r)throw new Error("Нет доступных сертификатов");var n=[];try{for(;r;){var t=_generateCadesFn_1.__cadesAsyncToken__+_.Item(r);n.push(new certificate_1.Certificate(t,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+t.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+t.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+t.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+t.ValidToDate)),r--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},681:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCspVersion=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.getCspVersion=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cspVersion=null;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),cspVersion=_generateCadesFn_1.__cadesAsyncToken__+e.CSPVersion(),cspVersion=_generateCadesFn_1.__cadesAsyncToken__+cspVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении версии системы")}return cspVersion})))}))},314:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPluginVersion=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_generateCadesFn_1=__webpack_require__(198),_extractMeaningfulErrorMessage_1=__webpack_require__(341);exports.getPluginVersion=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var cadesVersion=null;return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),(cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.PluginVersion)||(cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.Version),cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+cadesVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении информации о плагине")}return cadesVersion})))}))},874:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSystemInfo=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports.getSystemInfo=_afterPluginsLoaded_1._afterPluginsLoaded((function(){var sysInfo={cadesVersion:null,cspVersion:null};return eval(_generateCadesFn_1._generateCadesFn((function(){var e;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.About"),sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.PluginVersion,sysInfo.cspVersion=_generateCadesFn_1.__cadesAsyncToken__+e.CSPVersion(),sysInfo.cadesVersion||(sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+e.Version),sysInfo.cadesVersion=_generateCadesFn_1.__cadesAsyncToken__+sysInfo.cadesVersion.toString(),sysInfo.cspVersion=_generateCadesFn_1.__cadesAsyncToken__+sysInfo.cspVersion.toString()}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении информации о системе")}return sysInfo})))}))},68:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUserCertificates=void 0;var certificate_1=__webpack_require__(699),constants_1=__webpack_require__(70),_afterPluginsLoaded_1=__webpack_require__(44),_extractCommonName_1=__webpack_require__(964),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198),certificatesCache;exports.getUserCertificates=_afterPluginsLoaded_1._afterPluginsLoaded((function(resetCache){void 0===resetCache&&(resetCache=!1);var cadesplugin=window.cadesplugin;return!resetCache&&certificatesCache?certificatesCache:eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища")}try{(_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates)&&(_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID),_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,constants_1.CAPICOM_PROPID_KEY_PROV_INFO),r=_generateCadesFn_1.__cadesAsyncToken__+_.Count)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов")}if(!r)throw new Error("Нет доступных сертификатов");var n=[];try{for(;r;){var t=_generateCadesFn_1.__cadesAsyncToken__+_.Item(r);n.push(new certificate_1.Certificate(t,_extractCommonName_1._extractCommonName(_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName),_generateCadesFn_1.__cadesAsyncToken__+t.IssuerName,_generateCadesFn_1.__cadesAsyncToken__+t.SubjectName,_generateCadesFn_1.__cadesAsyncToken__+t.Thumbprint,_generateCadesFn_1.__cadesAsyncToken__+t.ValidFromDate,_generateCadesFn_1.__cadesAsyncToken__+t.ValidToDate)),r--}}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка обработки сертификатов")}return e.Close(),certificatesCache=n})))}))},343:function(e,_,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,_,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return _[r]}})}:function(e,_,r,n){void 0===n&&(n=r),e[n]=_[r]}),t=this&&this.__exportStar||function(e,_){for(var r in e)"default"===r||_.hasOwnProperty(r)||n(_,e,r)};Object.defineProperty(_,"__esModule",{value:!0}),t(r(424),_),t(r(68),_),t(r(131),_),t(r(88),_),t(r(133),_),t(r(135),_),t(r(640),_),t(r(874),_),t(r(827),_),t(r(694),_),t(r(123),_),t(r(586),_),t(r(181),_),t(r(984),_),t(r(347),_),t(r(699),_),t(r(681),_),t(r(314),_)},827:function(e,_,r){"use strict";var n=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},t=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.XmlDsigGost3411UrlObsolete=_.XmlDsigGost3411Url=_.XmlDsigGost3410UrlObsolete=_.XmlDsigGost3410Url=_.TRUST_REVOCATION_STATUS_UNKNOWN=_.TRUST_IS_UNTRUSTED_ROOT=_.TRUST_IS_REVOKED=_.TRUST_IS_PARTIAL_CHAIN=_.TRUST_IS_NOT_VALID_FOR_USAGE=_.TRUST_IS_NOT_TIME_VALID=_.TRUST_IS_NOT_TIME_NESTED=_.TRUST_IS_NOT_SIGNATURE_VALID=_.TRUST_IS_CYCLIC=_.TRUST_CTL_IS_NOT_VALID_FOR_USAGE=_.TRUST_CTL_IS_NOT_TIME_VALID=_.TRUST_CTL_IS_NOT_SIGNATURE_VALID=_.LOG_LEVEL_INFO=_.LOG_LEVEL_ERROR=_.LOG_LEVEL_DEBUG=_.CHECK_TRUSTED_ROOT=_.CHECK_TIME_VALIDITY=_.CHECK_SIGNATURE_VALIDITY=_.CHECK_ONLINE_REVOCATION_STATUS=_.CHECK_OFFLINE_REVOCATION_STATUS=_.CHECK_NONE=_.CAPICOM_STORE_OPEN_READ_WRITE=_.CAPICOM_STORE_OPEN_READ_ONLY=_.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED=_.CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED=_.CAPICOM_STORE_OPEN_EXISTING_ONLY=_.CAPICOM_SMART_CARD_USER_STORE=_.CAPICOM_PROPID_UNKNOWN=_.CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH=_.CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH=_.CAPICOM_PROPID_SMART_CARD_DATA=_.CAPICOM_PROPID_SIGNATURE_HASH=_.CAPICOM_PROPID_SHA1_HASH=_.CAPICOM_PROPID_RENEWAL=_.CAPICOM_PROPID_PVK_FILE=_.CAPICOM_PROPID_PUBKEY_HASH_RESERVED=_.CAPICOM_PROPID_PUBKEY_ALG_PARA=_.CAPICOM_PROPID_NEXT_UPDATE_LOCATION=_.CAPICOM_PROPID_MD5_HASH=_.CAPICOM_PROPID_LAST_USER=_.CAPICOM_PROPID_LAST_RESERVED=_.CAPICOM_PROPID_KEY_SPEC=_.CAPICOM_PROPID_KEY_PROV_INFO=_.CAPICOM_PROPID_KEY_PROV_HANDLE=_.CAPICOM_PROPID_KEY_IDENTIFIER=_.CAPICOM_PROPID_KEY_CONTEXT=_.CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH=_.CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH=_.CAPICOM_PROPID_IE30_RESERVED=_.CAPICOM_PROPID_HASH_PROP=_.CAPICOM_PROPID_FRIENDLY_NAME=_.CAPICOM_PROPID_FORTEZZA_DATA=_.CAPICOM_PROPID_FIRST_USER=_.CAPICOM_PROPID_FIRST_RESERVED=_.CAPICOM_PROPID_EXTENDED_ERROR_INFO=_.CAPICOM_PROPID_ENROLLMENT=_.CAPICOM_PROPID_ENHKEY_USAGE=_.CAPICOM_PROPID_EFS=_.CAPICOM_PROPID_DESCRIPTION=_.CAPICOM_PROPID_DATE_STAMP=_.CAPICOM_PROPID_CTL_USAGE=_.CAPICOM_PROPID_CROSS_CERT_DIST_POINTS=_.CAPICOM_PROPID_AUTO_ENROLL=_.CAPICOM_PROPID_ARCHIVED_KEY_HASH=_.CAPICOM_PROPID_ARCHIVED=_.CAPICOM_PROPID_ACCESS_STATE=_.CAPICOM_OID_OTHER=_.CAPICOM_OID_KEY_USAGE_EXTENSION=_.CAPICOM_MY_STORE=_.CAPICOM_MEMORY_STORE=_.CAPICOM_LOCAL_MACHINE_STORE=_.CAPICOM_EKU_SMARTCARD_LOGON=_.CAPICOM_EKU_OTHER=_.CAPICOM_EKU_CLIENT_AUTH=_.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE=_.CAPICOM_CURRENT_USER_STORE=_.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME=_.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME=_.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=_.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY=_.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT=_.CAPICOM_CERTIFICATE_FIND_TIME_VALID=_.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID=_.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED=_.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME=_.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=_.CAPICOM_CERTIFICATE_FIND_SHA1_HASH=_.CAPICOM_CERTIFICATE_FIND_ROOT_NAME=_.CAPICOM_CERTIFICATE_FIND_KEY_USAGE=_.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME=_.CAPICOM_CERTIFICATE_FIND_EXTENSION=_.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY=_.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY=_.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY=_.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=_.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=_.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=_.CAPICOM_ACTIVE_DIRECTORY_USER_STORE=_.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE=_.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING=_.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED=_.CADESCOM_SkipInstallToStore=_.CADESCOM_STRING_TO_UCS2LE=_.CADESCOM_PKCS7_TYPE=_.CADESCOM_LOCAL_MACHINE_STORE=_.CADESCOM_HASH_ALGORITHM_SHA_512=_.CADESCOM_HASH_ALGORITHM_SHA_384=_.CADESCOM_HASH_ALGORITHM_SHA_256=_.CADESCOM_HASH_ALGORITHM_SHA1=_.CADESCOM_HASH_ALGORITHM_MD5=_.CADESCOM_HASH_ALGORITHM_MD4=_.CADESCOM_HASH_ALGORITHM_MD2=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256=_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411=_.CADESCOM_ENCRYPTION_ALGORITHM_RC4=_.CADESCOM_ENCRYPTION_ALGORITHM_RC2=_.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89=_.CADESCOM_ENCRYPTION_ALGORITHM_DES=_.CADESCOM_ENCRYPTION_ALGORITHM_AES=_.CADESCOM_ENCRYPTION_ALGORITHM_3DES=_.CADESCOM_ENCODE_BINARY=_.CADESCOM_ENCODE_BASE64=_.CADESCOM_ENCODE_ANY=_.CADESCOM_DISPLAY_DATA_NONE=_.CADESCOM_DISPLAY_DATA_CONTENT=_.CADESCOM_DISPLAY_DATA_ATTRIBUTE=_.CADESCOM_CURRENT_USER_STORE=_.CADESCOM_CONTAINER_STORE=_.CADESCOM_CADES_X_LONG_TYPE_1=_.CADESCOM_CADES_T=_.CADESCOM_CADES_DEFAULT=_.CADESCOM_CADES_BES=_.CADESCOM_BASE64_TO_BINARY=_.CADESCOM_AllowUntrustedRoot=_.CADESCOM_AllowUntrustedCertificate=_.CADESCOM_AllowNone=_.CADESCOM_AllowNoOutstandingRequest=_.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=_.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=_.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=_.CADESCOM_ATTRIBUTE_OTHER=void 0,_.CADESCOM_ATTRIBUTE_OTHER=-1,_.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,_.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,_.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,_.CADESCOM_AllowNoOutstandingRequest=1,_.CADESCOM_AllowNone=0,_.CADESCOM_AllowUntrustedCertificate=2,_.CADESCOM_AllowUntrustedRoot=4,_.CADESCOM_BASE64_TO_BINARY=1,_.CADESCOM_CADES_BES=1,_.CADESCOM_CADES_DEFAULT=0,_.CADESCOM_CADES_T=5,_.CADESCOM_CADES_X_LONG_TYPE_1=93,_.CADESCOM_CONTAINER_STORE=100,_.CADESCOM_CURRENT_USER_STORE=2,_.CADESCOM_DISPLAY_DATA_ATTRIBUTE=2,_.CADESCOM_DISPLAY_DATA_CONTENT=1,_.CADESCOM_DISPLAY_DATA_NONE=0,_.CADESCOM_ENCODE_ANY=-1,_.CADESCOM_ENCODE_BASE64=0,_.CADESCOM_ENCODE_BINARY=1,_.CADESCOM_ENCRYPTION_ALGORITHM_3DES=3,_.CADESCOM_ENCRYPTION_ALGORITHM_AES=4,_.CADESCOM_ENCRYPTION_ALGORITHM_DES=2,_.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89=25,_.CADESCOM_ENCRYPTION_ALGORITHM_RC2=0,_.CADESCOM_ENCRYPTION_ALGORITHM_RC4=1,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411=100,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256=101,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC=111,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512=102,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC=112,_.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC=110,_.CADESCOM_HASH_ALGORITHM_MD2=1,_.CADESCOM_HASH_ALGORITHM_MD4=2,_.CADESCOM_HASH_ALGORITHM_MD5=3,_.CADESCOM_HASH_ALGORITHM_SHA1=0,_.CADESCOM_HASH_ALGORITHM_SHA_256=4,_.CADESCOM_HASH_ALGORITHM_SHA_384=5,_.CADESCOM_HASH_ALGORITHM_SHA_512=6,_.CADESCOM_LOCAL_MACHINE_STORE=1,_.CADESCOM_PKCS7_TYPE=65535,_.CADESCOM_STRING_TO_UCS2LE=0,_.CADESCOM_SkipInstallToStore=268435456,_.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED=0,_.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING=1,_.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE=2,_.CAPICOM_ACTIVE_DIRECTORY_USER_STORE=3,_.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,_.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,_.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,_.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY=7,_.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY=8,_.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY=6,_.CAPICOM_CERTIFICATE_FIND_EXTENSION=5,_.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME=2,_.CAPICOM_CERTIFICATE_FIND_KEY_USAGE=12,_.CAPICOM_CERTIFICATE_FIND_ROOT_NAME=3,_.CAPICOM_CERTIFICATE_FIND_SHA1_HASH=0,_.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1,_.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME=4,_.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED=11,_.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID=10,_.CAPICOM_CERTIFICATE_FIND_TIME_VALID=9,_.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT=0,_.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY=2,_.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=1,_.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME=1,_.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME=0,_.CAPICOM_CURRENT_USER_STORE=2,_.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE=128,_.CAPICOM_EKU_CLIENT_AUTH=2,_.CAPICOM_EKU_OTHER=0,_.CAPICOM_EKU_SMARTCARD_LOGON=5,_.CAPICOM_LOCAL_MACHINE_STORE=1,_.CAPICOM_MEMORY_STORE=0,_.CAPICOM_MY_STORE="My",_.CAPICOM_OID_KEY_USAGE_EXTENSION=10,_.CAPICOM_OID_OTHER=0,_.CAPICOM_PROPID_ACCESS_STATE=14,_.CAPICOM_PROPID_ARCHIVED=19,_.CAPICOM_PROPID_ARCHIVED_KEY_HASH=65,_.CAPICOM_PROPID_AUTO_ENROLL=21,_.CAPICOM_PROPID_CROSS_CERT_DIST_POINTS=23,_.CAPICOM_PROPID_CTL_USAGE=9,_.CAPICOM_PROPID_DATE_STAMP=27,_.CAPICOM_PROPID_DESCRIPTION=13,_.CAPICOM_PROPID_EFS=17,_.CAPICOM_PROPID_ENHKEY_USAGE=9,_.CAPICOM_PROPID_ENROLLMENT=26,_.CAPICOM_PROPID_EXTENDED_ERROR_INFO=30,_.CAPICOM_PROPID_FIRST_RESERVED=66,_.CAPICOM_PROPID_FIRST_USER=32768,_.CAPICOM_PROPID_FORTEZZA_DATA=18,_.CAPICOM_PROPID_FRIENDLY_NAME=11,_.CAPICOM_PROPID_HASH_PROP=3,_.CAPICOM_PROPID_IE30_RESERVED=7,_.CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH=24,_.CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH=28,_.CAPICOM_PROPID_KEY_CONTEXT=5,_.CAPICOM_PROPID_KEY_IDENTIFIER=20,_.CAPICOM_PROPID_KEY_PROV_HANDLE=1,_.CAPICOM_PROPID_KEY_PROV_INFO=2,_.CAPICOM_PROPID_KEY_SPEC=6,_.CAPICOM_PROPID_LAST_RESERVED=32767,_.CAPICOM_PROPID_LAST_USER=65535,_.CAPICOM_PROPID_MD5_HASH=4,_.CAPICOM_PROPID_NEXT_UPDATE_LOCATION=10,_.CAPICOM_PROPID_PUBKEY_ALG_PARA=22,_.CAPICOM_PROPID_PUBKEY_HASH_RESERVED=8,_.CAPICOM_PROPID_PVK_FILE=12,_.CAPICOM_PROPID_RENEWAL=64,_.CAPICOM_PROPID_SHA1_HASH=3,_.CAPICOM_PROPID_SIGNATURE_HASH=15,_.CAPICOM_PROPID_SMART_CARD_DATA=16,_.CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH=29,_.CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH=25,_.CAPICOM_PROPID_UNKNOWN=0,_.CAPICOM_SMART_CARD_USER_STORE=4,_.CAPICOM_STORE_OPEN_EXISTING_ONLY=128,_.CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED=256,_.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED=2,_.CAPICOM_STORE_OPEN_READ_ONLY=0,_.CAPICOM_STORE_OPEN_READ_WRITE=1,_.CHECK_NONE=0,_.CHECK_OFFLINE_REVOCATION_STATUS=16,_.CHECK_ONLINE_REVOCATION_STATUS=8,_.CHECK_SIGNATURE_VALIDITY=4,_.CHECK_TIME_VALIDITY=2,_.CHECK_TRUSTED_ROOT=1,_.LOG_LEVEL_DEBUG=4,_.LOG_LEVEL_ERROR=1,_.LOG_LEVEL_INFO=2,_.TRUST_CTL_IS_NOT_SIGNATURE_VALID=262144,_.TRUST_CTL_IS_NOT_TIME_VALID=131072,_.TRUST_CTL_IS_NOT_VALID_FOR_USAGE=524288,_.TRUST_IS_CYCLIC=128,_.TRUST_IS_NOT_SIGNATURE_VALID=8,_.TRUST_IS_NOT_TIME_NESTED=2,_.TRUST_IS_NOT_TIME_VALID=1,_.TRUST_IS_NOT_VALID_FOR_USAGE=16,_.TRUST_IS_PARTIAL_CHAIN=65536,_.TRUST_IS_REVOKED=4,_.TRUST_IS_UNTRUSTED_ROOT=32,_.TRUST_REVOCATION_STATUS_UNKNOWN=64,_.XmlDsigGost3410Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411",_.XmlDsigGost3410UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411",_.XmlDsigGost3411Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411",_.XmlDsigGost3411UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr3411"},70:function(e,_,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,_,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return _[r]}})}:function(e,_,r,n){void 0===n&&(n=r),e[n]=_[r]}),t=this&&this.__exportStar||function(e,_){for(var r in e)"default"===r||_.hasOwnProperty(r)||n(_,e,r)};Object.defineProperty(_,"__esModule",{value:!0}),t(r(450),_),t(r(358),_),t(r(818),_),t(r(67),_)},358:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.ISSUER_TAGS_TRANSLATIONS=void 0,_.ISSUER_TAGS_TRANSLATIONS=[{possibleNames:["UN","UnstructuredName"],translation:"Неструктурированное имя"},{possibleNames:["CN","commonName"],translation:"Удостоверяющий центр"},{possibleNames:["C","countryName"],translation:"Страна"},{possibleNames:["S","ST","stateOrProvinceName"],translation:"Регион"},{possibleNames:["STREET","streetAddress"],translation:"Адрес"},{possibleNames:["O","organizationName"],translation:"Компания"},{possibleNames:["OU","organizationalUnitName"],translation:"Тип"},{possibleNames:["T","TITLE"],translation:"Должность"},{possibleNames:["ОГРН","OGRN"],translation:"ОГРН"},{possibleNames:["ОГРНИП","OGRNIP"],translation:"ОГРНИП"},{possibleNames:["СНИЛС","SNILS"],translation:"СНИЛС"},{possibleNames:["ИНН","ИННФЛ","ИНН ФЛ","INN","ИНН физического лица"],translation:"ИНН"},{possibleNames:["ИННЮЛ","ИНН ЮЛ","INN LE","INNLE","ИНН организации"],translation:"ИНН организации"},{possibleNames:["E","email","emailAddress","pkcs9email"],translation:"Email"},{possibleNames:["L","localityName"],translation:"Город"}]},818:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.OIDS_DICTIONARY=void 0,_.OIDS_DICTIONARY={"1.2.643.2.2.34.6":"Пользователь Центра Регистрации","1.2.643.2.39.1.1":'Использование в программных продуктах системы "1С:Предприятие 8"',"1.2.643.3.131.1.1":"ИНН","1.2.643.100.4":"ИНН организации","1.2.643.100.1":"ОГРН","1.2.643.100.5":"ОГРНИП","1.2.643.100.3":"СНИЛС","1.2.643.3.141.1.1":"РНС ФСС","1.2.643.3.141.1.2":"КП ФСС","1.2.643.3.2.100.65.13.11":'Использование в системе АИС "Госзакупки" Сахалинской области.',"1.2.643.3.8.100.1":'Сертификат типа "ekey-ГОСТ"',"1.2.643.3.8.100.1.1":"Общее использование в системах ИОК без права заверения финансовых документов","1.2.643.3.8.100.1.10":"Для участия в электронных торгах и подписания государственного контракта в информационных системах Тендерного комитета города Москвы уполномоченными лицами участников размещения государственного заказа города Москвы","1.2.643.3.8.100.1.11":"Подписание электронных документов в автоматизированной информационной системе размещения государственного и муниципального заказа Саратовской области","1.2.643.3.8.100.1.12":"Использование в системе государственного заказа Иркутской области","1.2.643.3.8.100.1.13":"Использование в электронной торговой площадке агентства государственного заказа Красноярского края","1.2.643.3.8.100.1.14":'Использование в электронной торговой площадке "Тендер"',"1.2.643.3.8.100.1.2":"Передача отчетности по ТКС","1.2.643.3.8.100.1.3":"Оформление взаимных обязательств, соглашений, договоров, актов и т.п.","1.2.643.3.8.100.1.4":"Внутрикорпоративный документооборот","1.2.643.3.8.100.1.5":"Использование в системах электронной торговли","1.2.643.3.8.100.1.6":'Использование в торгово-закупочной системе "ЭЛЕКТРА"',"1.2.643.3.8.100.1.7":"Использование в системе Портал государственных закупок Ставропольского края.","1.2.643.3.8.100.1.8":"Использование в Единой системе электронной торговли B2B-Center и B2G.","1.2.643.3.8.100.1.9":"Для участия в электронных торгах и подписания государственного контракта в электронной площадке ОАО «ЕЭТП» уполномоченными лицами участников размещения государственного или муниципального заказа","1.2.643.5.1.24.2.1.3":"Формирование документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя","1.2.643.5.1.24.2.1.3.1":"Формирование кадастровым инженером документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя","1.2.643.5.1.24.2.2.2":"Формирование документов как результата оказания услуги со стороны органов регистрации прав","1.2.643.5.1.24.2.2.3":"Формирование документов для получения государственных услуг в сфере государственной регистрации прав на недвижимое имущество и сделок с ним со стороны заявителя","1.2.643.6.2.1.7.1":"Использование единоличным исполнительным органом юридического лица или уполномоченными представителями юридического лица в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских и иных прав и обязанностей в сфере негосударственного пенсионного обеспечения, негосударственного пенсионного страхования, в сфере деятельности паевых инвестиционных фондов, акционерных инвестиционных фондов, профессиональных участников рынка ценных бумаг, а также связанной с обслуживанием указанной деятельности услуг кредитных и иных организаций","1.2.643.6.2.1.7.2":"Использование физическим лицом в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских прав и обязанностей в отношении инвестиционных паев паевых инвестиционных фондов, в том числе отношения, связанные с учетом и/или фиксацией прав на инвестиционные паи паевых инвестиционных фондов","1.2.643.6.3":"Использование в электронных торговых системах и в программном обеспечении, связанным с обменом электронных сообщений","1.2.643.6.3.1.1":"Использование на электронных площадок отобранных для проведения аукционах в электронной форме","1.2.643.6.3.1.2.1":"Тип участника - Юридическое лицо","1.2.643.6.3.1.2.2":"Тип участника - Физическое лицо","1.2.643.6.3.1.2.3":"Тип участника - Индивидуальный предприниматель","1.2.643.6.3.1.3.1":"Участник размещения заказа","1.2.643.6.3.1.4.1":"Администратор организации","1.2.643.6.3.1.4.2":"Уполномоченный специалист","1.2.643.6.3.1.4.3":"Специалист с правом подписи контракта","1.2.840.113549.1.9.2":"Неструктурированное имя","1.3.6.1.4.1.24138.1.1.8.1":'Обеспечение юридической значимости в Системе "Электронная Торговая Площадка"',"1.3.6.1.4.1.29919.21":'Использование в системе Портал государственных закупок Ростовской области "Рефери".',"1.3.6.1.5.5.7.3.2":"Проверка подлинности клиента","1.3.6.1.5.5.7.3.4":"Защищенная электронная почта","1.3.643.3.8.100.15":'Использование в ЭТП "uTender"'}},67:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_.SUBJECT_TAGS_TRANSLATIONS=void 0,_.SUBJECT_TAGS_TRANSLATIONS=[{possibleNames:["UN","UnstructuredName"],translation:"Неструктурированное имя"},{possibleNames:["CN","commonName"],translation:"Владелец"},{possibleNames:["SN","surname"],translation:"Фамилия"},{possibleNames:["G","givenName","gn"],translation:"Имя Отчество"},{possibleNames:["C","countryName"],translation:"Страна"},{possibleNames:["S","ST","stateOrProvinceName"],translation:"Регион"},{possibleNames:["STREET","streetAddress"],translation:"Адрес"},{possibleNames:["O","organizationName"],translation:"Компания"},{possibleNames:["OU","organizationalUnitName"],translation:"Отдел/подразделение"},{possibleNames:["T","TITLE"],translation:"Должность"},{possibleNames:["ОГРН","OGRN"],translation:"ОГРН"},{possibleNames:["ОГРНИП","OGRNIP"],translation:"ОГРНИП"},{possibleNames:["СНИЛС","SNILS"],translation:"СНИЛС"},{possibleNames:["ИНН","ИННФЛ","ИНН ФЛ","INN","ИНН физического лица"],translation:"ИНН"},{possibleNames:["ИННЮЛ","ИНН ЮЛ","INN LE","INNLE","ИНН организации"],translation:"ИНН организации"},{possibleNames:["E","email","emailAddress","pkcs9email"],translation:"Email"},{possibleNames:["L","localityName"],translation:"Город"}]},685:function(e,_,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,_,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return _[r]}})}:function(e,_,r,n){void 0===n&&(n=r),e[n]=_[r]}),t=this&&this.__exportStar||function(e,_){for(var r in e)"default"===r||_.hasOwnProperty(r)||n(_,e,r)};Object.defineProperty(_,"__esModule",{value:!0}),t(r(343),_)},44:function(e,_,r){"use strict";var n=this&&this.__awaiter||function(e,_,r,n){return new(r||(r=Promise))((function(t,a){function s(e){try{i(n.next(e))}catch(e){a(e)}}function o(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var _;e.done?t(e.value):(_=e.value,_ instanceof r?_:new r((function(e){e(_)}))).then(s,o)}i((n=n.apply(e,_||[])).next())}))},t=this&&this.__generator||function(e,_){var r,n,t,a,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(t=2&a[0]?n.return:a[0]?n.throw||((t=n.return)&&t.call(n),0):n.next)&&!(t=t.call(n,a[1])).done)return t;switch(n=0,t&&(a=[2&a[0],t.value]),a[0]){case 0:case 1:t=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((t=(t=s.trys).length>0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._extractCommonName=void 0,_._extractCommonName=function(e){var _,r;return null===(r=null===(_=e.match(/CN="?(.+?)"?(?:,|$)/))||void 0===_?void 0:_[1])||void 0===r?void 0:r.replace(/"{2}/g,'"')}},341:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._extractMeaningfulErrorMessage=void 0,_._extractMeaningfulErrorMessage=function(e){var _,r=(null===(_=window.cadesplugin)||void 0===_?void 0:_.getLastError)&&window.cadesplugin.getLastError(e);if(!(null==r?void 0:r.message)){if(!e.message)return null;r=e}if(!/[а-яА-Я]/.test(r.message))return null;var n=r.message.match(/^(.*?)(?:(?:\.?\s?\(?(0x[0-9a-zA-Z]{1,8})\)?)|(?:\.?$))/);return n?n[1]+(n[2]?" (Код ошибки: "+n[2]+")":""):null}},198:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._generateCadesFn=_.__createCadesPluginObject__=_.__cadesAsyncToken__=void 0,_.__cadesAsyncToken__={},_.__createCadesPluginObject__=function(){for(var e=[],_=0;_0&&t[t.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!t||a[1]>t[0]&&a[1]{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports._getCadesContainerCert=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports._getCadesContainerCert=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint){var cadesplugin=window.cadesplugin;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}if(!e)throw new Error("Не удалось получить доступ к хранилищу сертификатов");try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CADESCOM_CONTAINER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища закрытого ключа")}try{_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,r=_generateCadesFn_1.__cadesAsyncToken__+_.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов из хранилища закрытого ключа")}if(!r)throw new Error("Нет доступных сертификатов в хранилище закрытого ключа");try{if(_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,thumbprint),!(_generateCadesFn_1.__cadesAsyncToken__+_.Count))throw new Error('Сертификат с отпечатком: "'+thumbprint+'" не найден в хранилище закрытого ключа');n=_generateCadesFn_1.__cadesAsyncToken__+_.Item(1)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении сертификата из хранилища закрытого ключа")}return e.Close(),n})))}))},274:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports._getCadesUserCert=void 0;var _afterPluginsLoaded_1=__webpack_require__(44),_extractMeaningfulErrorMessage_1=__webpack_require__(341),_generateCadesFn_1=__webpack_require__(198);exports._getCadesUserCert=_afterPluginsLoaded_1._afterPluginsLoaded((function(thumbprint){var cadesplugin=window.cadesplugin;return eval(_generateCadesFn_1._generateCadesFn((function(){var e,_,r,n;try{e=_generateCadesFn_1.__cadesAsyncToken__+_generateCadesFn_1.__createCadesPluginObject__("CAdESCOM.Store")}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при попытке доступа к хранилищу")}if(!e)throw new Error("Не удалось получить доступ к хранилищу сертификатов");try{_generateCadesFn_1.__cadesAsyncToken__,e.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE,cadesplugin.CAPICOM_MY_STORE,cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при открытии хранилища пользователя")}try{_=_generateCadesFn_1.__cadesAsyncToken__+e.Certificates,r=_generateCadesFn_1.__cadesAsyncToken__+_.Count}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка получения списка сертификатов из хранилища пользователя")}if(!r)throw new Error("Нет доступных сертификатов в хранилище пользователя");try{if(_=_generateCadesFn_1.__cadesAsyncToken__+_.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,thumbprint),!(_generateCadesFn_1.__cadesAsyncToken__+_.Count))throw new Error('Сертификат с отпечатком: "'+thumbprint+'" не найден в хранилище пользователя');n=_generateCadesFn_1.__cadesAsyncToken__+_.Item(1)}catch(e){throw console.error(e),new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(e)||"Ошибка при получении сертификата из хранилища пользователя")}return e.Close(),n})))}))},422:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._getDateObj=void 0,_._getDateObj=function(e){return e.getVarDate?e.getVarDate():e}},875:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._isSupportedCSPVersion=void 0,_._isSupportedCSPVersion=function(e){var _;return e=null===(_=e.match(/\d+?\b(?:\.\d+)?/))||void 0===_?void 0:_[0],Number(e)>=4}},625:(e,_)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._isSupportedCadesVersion=void 0,_._isSupportedCadesVersion=function(e){var _=e.match(/(\d+)\.(\d+)\.(\d+)/);if(!_)return!1;var r=_[1],n=(_[2],_[3]);return!(Number(r)<2||2===Number(r)&&Number(n)<12438)}},326:(e,_,r)=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0}),_._parseCertInfo=void 0;var n=r(70);_._parseCertInfo=function(e,_){var r=_.match(/([а-яА-Яa-zA-Z0-9\s.]+)=(?:("[^"]+?")|(.+?))(?:,|$)/g);if(r)return r.map((function(_){var r,t,a,s=_.trim().match(/^([а-яА-Яa-zA-Z0-9\s.]+)=(.+?),?$/),o=null==s?void 0:s[1],i=null===(t=null===(r=null==s?void 0:s[2])||void 0===r?void 0:r.replace(/^"(.*)"/,"$1"))||void 0===t?void 0:t.replace(/"{2}/g,'"'),c=null==o?void 0:o.match(/^OID\.(.*)/),u=null==c?void 0:c[1],l=!1;if(u){var C=n.OIDS_DICTIONARY[u];C&&(o=C,l=!0)}var d=null===(a=e.find((function(e){return e.possibleNames.find((function(e){return e===o}))})))||void 0===a?void 0:a.translation;return d&&(o=d,l=!0),{description:i,title:o,isTranslated:l}}))}},436:()=>{(function(){if(!window.cadesplugin){var pluginObject,plugin_resolved=0,plugin_reject,plugin_resolve,isOpera=0,isFireFox=0,isSafari=0,isYandex=0,canPromise=!!window.Promise,cadesplugin_loaded_event_recieved=!1,isFireFoxExtensionLoaded=!1,cadesplugin;cadesplugin=canPromise?new Promise((function(e,_){plugin_resolve=e,plugin_reject=_})):{};var browserSpecs=check_browser(),ru_cryptopro_npcades_10_native_bridge={callbacksCount:1,callbacks:{},resultForCallback:function(e,_){var r=ru_cryptopro_npcades_10_native_bridge.callbacks[e];r&&r.apply(null,_)},call:function(e,_,r){var n=r&&"function"==typeof r,t=n?ru_cryptopro_npcades_10_native_bridge.callbacksCount++:0;n&&(ru_cryptopro_npcades_10_native_bridge.callbacks[t]=r);var a=document.createElement("IFRAME"),s=new Array("_CPNP_handle");try{a.setAttribute("src","cpnp-js-call:"+e+":"+t+":"+encodeURIComponent(JSON.stringify(_,s)))}catch(e){alert(e)}document.documentElement.appendChild(a),a.parentNode.removeChild(a),a=null}};cadesplugin.JSModuleVersion="2.3.2",cadesplugin.async_spawn=async_spawn,cadesplugin.set=set_pluginObject,cadesplugin.set_log_level=set_log_level,cadesplugin.getLastError=getLastError,cadesplugin.is_capilite_enabled=is_capilite_enabled,isNativeMessageSupported()&&(cadesplugin.CreateObjectAsync=CreateObjectAsync,cadesplugin.ReleasePluginObjects=ReleasePluginObjects),isNativeMessageSupported()||(cadesplugin.CreateObject=CreateObject),window.cadesplugin_load_timeout?setTimeout(check_load_timeout,window.cadesplugin_load_timeout):setTimeout(check_load_timeout,2e4),set_constantValues(),cadesplugin.current_log_level=cadesplugin.LOG_LEVEL_ERROR,window.cadesplugin=cadesplugin,check_plugin_working()}function check_browser(){var e,_=navigator.userAgent,r=_.match(/(opera|yabrowser|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(r[1])?{name:"IE",version:(e=/\brv[ :]+(\d+)/g.exec(_)||[])[1]||""}:"Chrome"===r[1]&&null!=(e=_.match(/\b(OPR|Edg|YaBrowser)\/(\d+)/))?{name:e[1].replace("OPR","Opera"),version:e[2]}:(r=r[2]?[r[1],r[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=_.match(/version\/(\d+)/i))&&r.splice(1,1,e[1]),{name:r[0],version:r[1]})}function cpcsp_console_log(e,_){if("undefined"!=typeof console)return e<=cadesplugin.current_log_level?(e===cadesplugin.LOG_LEVEL_DEBUG&&console.log("DEBUG: %s",_),e===cadesplugin.LOG_LEVEL_INFO&&console.info("INFO: %s",_),void(e===cadesplugin.LOG_LEVEL_ERROR&&console.error("ERROR: %s",_))):void 0}function set_log_level(e){e===cadesplugin.LOG_LEVEL_DEBUG||e===cadesplugin.LOG_LEVEL_INFO||e===cadesplugin.LOG_LEVEL_ERROR?(cadesplugin.current_log_level=e,cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_DEBUG&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = DEBUG"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_INFO&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = INFO"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_ERROR&&cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO,"cadesplugin_api.js: log_level = ERROR"),isNativeMessageSupported()&&(cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_DEBUG&&window.postMessage("set_log_level=debug","*"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_INFO&&window.postMessage("set_log_level=info","*"),cadesplugin.current_log_level===cadesplugin.LOG_LEVEL_ERROR&&window.postMessage("set_log_level=error","*"))):cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR,"cadesplugin_api.js: Incorrect log_level: "+e)}function set_constantValues(){cadesplugin.CAPICOM_MEMORY_STORE=0,cadesplugin.CAPICOM_LOCAL_MACHINE_STORE=1,cadesplugin.CAPICOM_CURRENT_USER_STORE=2,cadesplugin.CAPICOM_SMART_CARD_USER_STORE=4,cadesplugin.CADESCOM_MEMORY_STORE=0,cadesplugin.CADESCOM_LOCAL_MACHINE_STORE=1,cadesplugin.CADESCOM_CURRENT_USER_STORE=2,cadesplugin.CADESCOM_SMART_CARD_USER_STORE=4,cadesplugin.CADESCOM_CONTAINER_STORE=100,cadesplugin.CAPICOM_MY_STORE="My",cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED=2,cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED=0,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING=1,cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE=2,cadesplugin.CADESCOM_XADES_DEFAULT=16,cadesplugin.CADESCOM_XADES_BES=32,cadesplugin.CADESCOM_XADES_T=80,cadesplugin.CADESCOM_XADES_X_LONG_TYPE_1=1488,cadesplugin.CADESCOM_XMLDSIG_TYPE=0,cadesplugin.XmlDsigGost3410UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411",cadesplugin.XmlDsigGost3411UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr3411",cadesplugin.XmlDsigGost3410Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411",cadesplugin.XmlDsigGost3411Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411",cadesplugin.XmlDsigGost3411Url2012256="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256",cadesplugin.XmlDsigGost3410Url2012256="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256",cadesplugin.XmlDsigGost3411Url2012512="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512",cadesplugin.XmlDsigGost3410Url2012512="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512",cadesplugin.CADESCOM_CADES_DEFAULT=0,cadesplugin.CADESCOM_CADES_BES=1,cadesplugin.CADESCOM_CADES_T=5,cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1=93,cadesplugin.CADESCOM_PKCS7_TYPE=65535,cadesplugin.CADESCOM_ENCODE_BASE64=0,cadesplugin.CADESCOM_ENCODE_BINARY=1,cadesplugin.CADESCOM_ENCODE_ANY=-1,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT=0,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=1,cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY=2,cadesplugin.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME=0,cadesplugin.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME=1,cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH=0,cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1,cadesplugin.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME=2,cadesplugin.CAPICOM_CERTIFICATE_FIND_ROOT_NAME=3,cadesplugin.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME=4,cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENSION=5,cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY=6,cadesplugin.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY=7,cadesplugin.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY=8,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID=9,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID=10,cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED=11,cadesplugin.CAPICOM_CERTIFICATE_FIND_KEY_USAGE=12,cadesplugin.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE=128,cadesplugin.CAPICOM_PROPID_ENHKEY_USAGE=9,cadesplugin.CAPICOM_OID_OTHER=0,cadesplugin.CAPICOM_OID_KEY_USAGE_EXTENSION=10,cadesplugin.CAPICOM_EKU_CLIENT_AUTH=2,cadesplugin.CAPICOM_EKU_SMARTCARD_LOGON=5,cadesplugin.CAPICOM_EKU_OTHER=0,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2,cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO=256,cadesplugin.CADESCOM_ATTRIBUTE_OTHER=-1,cadesplugin.CADESCOM_STRING_TO_UCS2LE=0,cadesplugin.CADESCOM_BASE64_TO_BINARY=1,cadesplugin.CADESCOM_DISPLAY_DATA_NONE=0,cadesplugin.CADESCOM_DISPLAY_DATA_CONTENT=1,cadesplugin.CADESCOM_DISPLAY_DATA_ATTRIBUTE=2,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC2=0,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC4=1,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_DES=2,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_3DES=3,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_AES=4,cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89=25,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA1=0,cadesplugin.CADESCOM_HASH_ALGORITHM_MD2=1,cadesplugin.CADESCOM_HASH_ALGORITHM_MD4=2,cadesplugin.CADESCOM_HASH_ALGORITHM_MD5=3,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_256=4,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_384=5,cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_512=6,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411=100,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256=101,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512=102,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC=110,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC=111,cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC=112,cadesplugin.LOG_LEVEL_DEBUG=4,cadesplugin.LOG_LEVEL_INFO=2,cadesplugin.LOG_LEVEL_ERROR=1,cadesplugin.CADESCOM_AllowNone=0,cadesplugin.CADESCOM_AllowNoOutstandingRequest=1,cadesplugin.CADESCOM_AllowUntrustedCertificate=2,cadesplugin.CADESCOM_AllowUntrustedRoot=4,cadesplugin.CADESCOM_SkipInstallToStore=268435456,cadesplugin.CADESCOM_InstallCertChainToContainer=536870912,cadesplugin.CADESCOM_UseContainerStore=1073741824,cadesplugin.ENABLE_CARRIER_TYPE_CSP=1,cadesplugin.ENABLE_CARRIER_TYPE_FKC_NO_SM=2,cadesplugin.ENABLE_CARRIER_TYPE_FKC_SM=4,cadesplugin.ENABLE_ANY_CARRIER_TYPE=7,cadesplugin.DISABLE_EVERY_CARRIER_OPERATION=0,cadesplugin.ENABLE_CARRIER_OPEN_ENUM=1,cadesplugin.ENABLE_CARRIER_CREATE=2,cadesplugin.ENABLE_ANY_OPERATION=3,cadesplugin.CADESCOM_PRODUCT_CSP=0,cadesplugin.CADESCOM_PRODUCT_OCSP=1,cadesplugin.CADESCOM_PRODUCT_TSP=2,cadesplugin.MEDIA_TYPE_REGISTRY=1,cadesplugin.MEDIA_TYPE_HDIMAGE=2,cadesplugin.MEDIA_TYPE_CLOUD=4,cadesplugin.MEDIA_TYPE_SCARD=8,cadesplugin.XCN_CRYPT_STRING_BASE64HEADER=0,cadesplugin.AT_KEYEXCHANGE=1,cadesplugin.AT_SIGNATURE=2,cadesplugin.CARRIER_FLAG_REMOVABLE=1,cadesplugin.CARRIER_FLAG_UNIQUE=2,cadesplugin.CARRIER_FLAG_PROTECTED=4,cadesplugin.CARRIER_FLAG_FUNCTIONAL_CARRIER=8,cadesplugin.CARRIER_FLAG_SECURE_MESSAGING=16,cadesplugin.CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE=64,cadesplugin.CARRIER_FLAG_VIRTUAL=128}function async_spawn(e){function _(e,_){var a;try{a=r[e](_)}catch(e){return Promise.reject(e)}return a.done?a.value:Promise.resolve(a.value).then(n,t)}var r=e(Array.prototype.slice.call(arguments,1)),n=_.bind(_,"next"),t=_.bind(_,"throw");return n()}function isIE(){return"IE"===browserSpecs.name||"MSIE"===browserSpecs.name}function isIOS(){return navigator.userAgent.match(/ipod/i)||navigator.userAgent.match(/ipad/i)||navigator.userAgent.match(/iphone/i)}function isNativeMessageSupported(){return!isIE()&&("Edg"===browserSpecs.name||("YaBrowser"===browserSpecs.name?(isYandex=!0,!0):"Opera"===browserSpecs.name?(isOpera=!0,browserSpecs.version>=33):"Firefox"===browserSpecs.name?(isFireFox=!0,browserSpecs.version>=52):"Chrome"===browserSpecs.name?browserSpecs.version>=42:"Safari"===browserSpecs.name?(isSafari=!0,browserSpecs.version>=12):void 0))}function CreateObject(e){if(isIOS())return call_ru_cryptopro_npcades_10_native_bridge("CreateObject",[e]);if(isIE()){if(e.match(/X509Enrollment/i))try{return document.getElementById("webClassFactory").CreateObject(e)}catch(_){try{return document.getElementById("certEnrollClassFactory").CreateObject(e)}catch(e){throw"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS"}}try{return document.getElementById("webClassFactory").CreateObject(e)}catch(_){return new ActiveXObject(e)}}return pluginObject.CreateObject(e)}function decimalToHexString(e){return e<0&&(e=4294967295+e+1),e.toString(16).toUpperCase()}function GetMessageFromException(e){var _=e.message;return _?e.number&&(_+=" (0x"+decimalToHexString(e.number)+")"):_=e,_}function getLastError(e){if(isNativeMessageSupported()||isIE()||isIOS())return GetMessageFromException(e);try{return pluginObject.getLastError()}catch(_){return GetMessageFromException(e)}}function ReleasePluginObjects(){return cpcsp_chrome_nmcades.ReleasePluginObjects()}function CreateObjectAsync(e){return pluginObject.CreateObjectAsync(e)}function call_ru_cryptopro_npcades_10_native_bridge(functionName,array){var tmpobj,ex;if(ru_cryptopro_npcades_10_native_bridge.call(functionName,array,(function(e,response){ex=e;var str="tmpobj="+response;eval(str),"string"==typeof tmpobj&&(tmpobj=tmpobj.replace(/\\\n/gm,"\n"),tmpobj=tmpobj.replace(/\\\r/gm,"\r"))})),ex)throw ex;return tmpobj}function show_firefox_missing_extension_dialog(){if(!window.cadesplugin_skip_extension_install){var e=document.createElement("div");e.id="cadesplugin_ovr",e.style="visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)",e.innerHTML="

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.

Скачать расширение

",document.getElementsByTagName("Body")[0].appendChild(e),document.getElementById("cadesplugin_close_install").addEventListener("click",(function(){plugin_loaded_error("Плагин недоступен"),document.getElementById("cadesplugin_ovr").style.visibility="hidden"})),e.addEventListener("click",(function(){plugin_loaded_error("Плагин недоступен"),document.getElementById("cadesplugin_ovr").style.visibility="hidden"})),e.style.visibility="visible"}}function firefox_or_safari_nmcades_onload(){window.cadesplugin_extension_loaded_callback&&window.cadesplugin_extension_loaded_callback(),isFireFoxExtensionLoaded=!0,cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded,plugin_loaded_error)}function nmcades_api_onload(){isIE()||isFireFox||isSafari||window.cadesplugin_extension_loaded_callback&&window.cadesplugin_extension_loaded_callback(),window.postMessage("cadesplugin_echo_request","*"),window.addEventListener("message",(function(e){if("string"==typeof e.data&&e.data.match("cadesplugin_loaded")&&!cadesplugin_loaded_event_recieved){if(isFireFox||isSafari){var _=e.data.substring(e.data.indexOf("url:")+4);if(!_.match("^moz-extension://[a-zA-Z0-9-]+/nmcades_plugin_api.js$")&&!_.match("^safari-extension://[a-zA-Z0-9-]+/[a-zA-Z0-9]+/nmcades_plugin_api.js$"))return cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR,'Bad url "'+_+'" for load CryptoPro Extension for CAdES Browser plug-in'),void plugin_loaded_error();var r=document.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("src",_),r.onerror=plugin_loaded_error,r.onload=firefox_or_safari_nmcades_onload,document.getElementsByTagName("head")[0].appendChild(r)}else cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded,plugin_loaded_error);cadesplugin_loaded_event_recieved=!0}}),!1)}function load_extension(){var e;isFireFox||isSafari?nmcades_api_onload():isOpera||isYandex?((e=document.createElement("script")).setAttribute("type","text/javascript"),e.setAttribute("src","chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js"),e.onerror=plugin_loaded_error,e.onload=nmcades_api_onload,document.getElementsByTagName("head")[0].appendChild(e)):((e=document.createElement("script")).setAttribute("type","text/javascript"),e.setAttribute("src","chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js"),e.onerror=plugin_loaded_error,e.onload=nmcades_api_onload,document.getElementsByTagName("head")[0].appendChild(e))}function load_npapi_plugin(){var e=document.createElement("object");if(e.setAttribute("id","cadesplugin_object"),e.setAttribute("type","application/x-cades"),e.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(e),pluginObject=document.getElementById("cadesplugin_object"),isIE()){var _=document.createElement("object");_.setAttribute("id","certEnrollClassFactory"),_.setAttribute("classid","clsid:884e2049-217d-11da-b2a4-000e7bbb2b09"),_.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(_);var r=document.createElement("object");r.setAttribute("id","webClassFactory"),r.setAttribute("classid","clsid:B04C8637-10BD-484E-B0DA-B8A039F60024"),r.setAttribute("style","visibility: hidden"),document.getElementsByTagName("body")[0].appendChild(r)}}function plugin_loaded(){plugin_resolved=1,canPromise?plugin_resolve():window.postMessage("cadesplugin_loaded","*")}function plugin_loaded_error(e){void 0!==e&&"object"!=typeof e||(e="Плагин недоступен"),plugin_resolved=1,canPromise?plugin_reject(e):window.postMessage("cadesplugin_load_error","*")}function check_load_timeout(){1!==plugin_resolved&&(isFireFox&&(isFireFoxExtensionLoaded||show_firefox_missing_extension_dialog()),plugin_resolved=1,canPromise?plugin_reject("Истекло время ожидания загрузки плагина"):window.postMessage("cadesplugin_load_error","*"))}function createPromise(e){return new Promise(e)}function check_npapi_plugin(){try{CreateObject("CAdESCOM.About"),plugin_loaded()}catch(_){document.getElementById("cadesplugin_object").style.display="none";var e=navigator.mimeTypes["application/x-cades"];plugin_loaded_error(e?e.enabledPlugin?"Плагин загружен, но не создаются обьекты":"Ошибка при загрузке плагина":"Плагин недоступен")}}function check_plugin_working(){var e=document.createElement("div");e.innerHTML="\x3c!--[if lt IE 9]> = T extends Promise ? R : T;\n\nlet isSetLogLevel = false;\nlet isPluginLoaded = false;\n\nexport const _afterPluginsLoaded = any>(\n fn: T,\n): ((...args: Parameters) => Promise>>) => {\n const canPromise = Boolean(window.Promise);\n\n return async function (...args: Parameters): Promise>> {\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[0-9a-zA-Z]{1,8})\\)?)|(?:\\.?$))/);\n\n return searchResult ? searchResult[1] + (searchResult[2] ? ' (Код ошибки: ' + searchResult[2] + ')' : '') : 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","export * from './certificate';\n","import { CadesCertificate } from '../api/certificate';\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\nimport { _getCadesUserCert } from './_getCadesUserCert';\nimport { _getCadesContainerCert } from './_getCadesContainerCert';\n\n/**\n * Возвращает сертификат в формате Cades по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @returns сертификат в формате Cades\n */\nexport const _getCadesCert = _afterPluginsLoaded(\n async (thumbprint: string): Promise => {\n let cadesCertificate: CadesCertificate;\n\n try {\n cadesCertificate = await _getCadesUserCert(thumbprint);\n } catch (error) {\n console.log(error);\n\n cadesCertificate = await _getCadesContainerCert(thumbprint);\n }\n\n return cadesCertificate;\n },\n);\n","export const _extractCommonName = (subjectName: string): string | undefined =>\n subjectName.match(/CN=\"?(.+?)\"?(?:,|$)/)?.[1]?.replace(/\"{2}/g, '\"');\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","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getUserCertificates } from './getUserCertificates';\nimport { getContainerCertificates } from './getContainerCertificates';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerCertificates: Certificate[] = await getContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerCertificates;\n } else {\n let containerCertificatesCount = containerCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerCertificates[containerCertificatesCount]);\n }\n\n containerCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\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","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 { 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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает список сертификатов, доступных пользователю в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getContainerCertificates = _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 getContainerCertificates(): 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.CADESCOM_CONTAINER_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","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getAllUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerAllCertificates: Certificate[] = await getAllContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerAllCertificates;\n } else {\n let containerAllCertificatesCount = containerAllCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerAllCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);\n }\n\n containerAllCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\n","import { CadesCertificate, Certificate } from './certificate';\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 getAllUserCertificates = _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 getAllUserCertificates(): 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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","import { CadesCertificate, Certificate } from './certificate';\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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllContainerCertificates = _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 getAllContainerCertificates(): 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.CADESCOM_CONTAINER_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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","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 './getAllUserCertificates';\nexport * from './getContainerCertificates';\nexport * from './getAllContainerCertificates';\nexport * from './getCertificates';\nexport * from './getAllCertificates';\nexport * from './getSystemInfo';\nexport * from './isValidSystemSetup';\nexport * from './createXMLSignature';\nexport * from './createDetachedSignature';\nexport * from './addDetachedSignature';\nexport * from './createAttachedSignature';\nexport * from './addAttachedSignature';\nexport * from './createHash';\nexport * from './certificate';\nexport * from './getCspVersion';\nexport * from './getPluginVersion';\n","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getCertificates } from './getCertificates';\nimport { getAllCertificates } from './getAllCertificates';\n\n/**\n * Возвращает сертификат по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @param validOnly - проверять сертификаты по дате и наличию приватного ключа\n * @returns сертификат\n */\nexport const getCertificate = _afterPluginsLoaded(\n async (thumbprint: string, validOnly: boolean = true): Promise => {\n if (!thumbprint) {\n throw new Error('Отпечаток не указан');\n }\n\n let availableCertificates: Certificate[];\n\n if (validOnly) {\n availableCertificates = await getCertificates();\n } else {\n availableCertificates = await getAllCertificates();\n }\n\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 () {\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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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","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 {\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\n }\n\n public getIssuerInfo(): Promise {\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\n }\n\n public getExtendedKeyUsage(): Promise {\n return getExtendedKeyUsage.call(this);\n }\n\n public getDecodedExtendedKeyUsage(): Promise {\n return getDecodedExtendedKeyUsage.call(this);\n }\n\n public getAlgorithm(): Promise {\n return getAlgorithm.call(this);\n }\n\n public getCadesProp(propName): Promise {\n return getCadesProp.call(this, propName);\n }\n\n public isValid(): Promise {\n return isValid.call(this);\n }\n\n public exportBase64(): Promise {\n return exportBase64.call(this);\n }\n\n public hasExtendedKeyUsage(oids): Promise {\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: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Удостоверяющий центр' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Тип' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], 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.100.4': 'ИНН организации',\n '1.2.643.100.1': 'ОГРН',\n '1.2.643.100.5': 'ОГРНИП',\n '1.2.643.100.3': 'СНИЛС',\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: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Владелец' },\n { possibleNames: ['SN', 'surname'], translation: 'Фамилия' },\n { possibleNames: ['G', 'givenName', 'gn'], translation: 'Имя Отчество' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Отдел/подразделение' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], 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 {\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 {\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 {\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","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 => {\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 { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _getCadesCert } from '../helpers/_getCadesCert';\n\n/**\n * Создает XML подпись для документа в формате XML\n *\n * @param thumbprint - отпечаток сертификата\n * @param unencryptedMessage - подписываемое сообщение в формате XML\n * @returns подпись\n */\nexport const createXMLSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createXMLSignature(): string {\n let cadesSigner;\n let cadesSignedXML;\n\n try {\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\n cadesSignedXML = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.SignedXML');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\n }\n\n try {\n const signatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';\n const digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';\n\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\n void (__cadesAsyncToken__ + cadesSigner.propset_CheckCertificate(true));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_Content(unencryptedMessage));\n void (\n __cadesAsyncToken__ +\n cadesSignedXML.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)\n );\n void (__cadesAsyncToken__ + cadesSignedXML.propset_SignatureMethod(signatureMethod));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_DigestMethod(digestMethod));\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 = __cadesAsyncToken__ + cadesSignedXML.Sign(cadesSigner);\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 _getCadesUserCert = _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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя',\n );\n }\n\n cadesStore.Close();\n\n return cadesCertificate;\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 _getCadesContainerCert = _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.CADESCOM_CONTAINER_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(\n _extractMeaningfulErrorMessage(error) ||\n 'Ошибка получения списка сертификатов из хранилища закрытого ключа',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа',\n );\n }\n\n cadesStore.Close();\n\n return cadesCertificate;\n }),\n );\n },\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 * Создает отсоединенную подпись хеша по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const createDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\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.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const addDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\n }\n\n let signature: string;\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)\n );\n signature =\n __cadesAsyncToken__ +\n cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Создает присоединенную подпись сообщения по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param message - подписываемое сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const createAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\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 = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\n }\n\n return signature;\n }),\n );\n },\n);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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 * Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const addAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(signedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\n }\n\n let signature: string;\n\n try {\n void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));\n signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит\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)\n *\n * @param unencryptedMessage - сообщение для хеширования\n *\n * @returns хеш\n */\nexport const createHash = _afterPluginsLoaded(\n async (unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n\n return eval(\n _generateCadesFn(function createHash(): string {\n const cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\n let messageBase64;\n let hash;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\n void (__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации хэширования');\n }\n\n try {\n hash = __cadesAsyncToken__ + cadesHashedData.Value;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при создании хэша');\n }\n\n return hash;\n }),\n );\n },\n);\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о CSP\n */\nexport const getCspVersion = _afterPluginsLoaded((): string => {\n let cspVersion = null;\n\n return eval(\n _generateCadesFn(function getCspVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\n\n cspVersion = __cadesAsyncToken__ + cspVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении версии системы');\n }\n\n return cspVersion;\n }),\n );\n});\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о плагине\n */\nexport const getPluginVersion = _afterPluginsLoaded((): string => {\n let cadesVersion = null;\n\n return eval(\n _generateCadesFn(function getPluginVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\n\n if (!cadesVersion) {\n cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\n }\n\n cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о плагине');\n }\n\n return cadesVersion;\n }),\n );\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"crypto-pro-js.min.js","mappings":"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","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/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 => {\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 => {\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 {\r\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\r\n }\r\n\r\n public getIssuerInfo(): Promise {\r\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\r\n }\r\n\r\n public getExtendedKeyUsage(): Promise {\r\n return getExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getDecodedExtendedKeyUsage(): Promise {\r\n return getDecodedExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getAlgorithm(): Promise {\r\n return getAlgorithm.call(this);\r\n }\r\n\r\n public getCadesProp(propName): Promise {\r\n return getCadesProp.call(this, propName);\r\n }\r\n\r\n public isValid(): Promise {\r\n return isValid.call(this);\r\n }\r\n\r\n public exportBase64(): Promise {\r\n return exportBase64.call(this);\r\n }\r\n\r\n public hasExtendedKeyUsage(oids): Promise {\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 {\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 {\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 {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 extends Promise ? R : T;\r\n\r\nlet isSetLogLevel = false;\r\nlet isPluginLoaded = false;\r\n\r\nexport const _afterPluginsLoaded = any>(\r\n fn: T,\r\n): ((...args: Parameters) => Promise>>) => {\r\n const canPromise = Boolean(window.Promise);\r\n\r\n return async function (...args: Parameters): Promise>> {\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 => {\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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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__(685);\n"],"names":["root","factory","exports","module","define","amd","self","addAttachedSignature","_afterPluginsLoaded","thumbprint","signedMessage","cadesplugin","window","_getCadesCert","cadesCertificate","eval","_generateCadesFn","cadesAttrs","cadesSignedData","cadesSigner","__cadesAsyncToken__","__createCadesPluginObject__","error","console","Error","_extractMeaningfulErrorMessage","messageBase64","cadesAuthAttrs","signature","currentTime","_getDateObj","Date","propset_Name","CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","propset_Value","Buffer","from","toString","propset_Certificate","AuthenticatedAttributes2","Add","propset_ContentEncoding","CADESCOM_BASE64_TO_BINARY","propset_Content","propset_Options","CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN","VerifyCades","CADESCOM_PKCS7_TYPE","CoSignCades","addDetachedSignature","messageHash","cadesHashedData","propset_Algorithm","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256","SetHashValue","VerifyHash","CoSignHash","_cadesCertificate","name","issuerName","subjectName","validFrom","validTo","getOwnerInfo","getInfo","call","this","SUBJECT_TAGS_TRANSLATIONS","getIssuerInfo","ISSUER_TAGS_TRANSLATIONS","getExtendedKeyUsage","getDecodedExtendedKeyUsage","getAlgorithm","getCadesProp","propName","isValid","exportBase64","hasExtendedKeyUsage","oids","Certificate","base64","Export","cadesPublicKey","algorithmInfo","algorithm","oid","PublicKey","Algorithm","FriendlyName","Value","propertyValue","reduce","decodedOids","oidCode","OIDS_DICTIONARY","count","OIDS","ExtendedKeyUsage","EKUs","Count","cadesExtendedKeyUsage","Item","OID","push","tags","entitiesPath","entities","_parseCertInfo","certOids","Array","isArray","every","oidToCheck","some","certOid","IsValid","Result","Boolean","createAttachedSignature","unencryptedMessage","SignCades","createDetachedSignature","SignHash","createHash","hash","propset_DataEncoding","Hash","createXMLSignature","cadesSignedXML","propset_CheckCertificate","propset_SignatureType","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED","propset_SignatureMethod","propset_DigestMethod","Sign","certificatesCache","getAllCertificates","resetCache","getAllUserCertificates","availableCertificates","getAllContainerCertificates","length","find","cert","cadesStore","cadesCertificates","cadesCertificatesCount","Open","CADESCOM_CONTAINER_STORE","CAPICOM_MY_STORE","CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED","Certificates","certificateList","_extractCommonName","SubjectName","IssuerName","Thumbprint","ValidFromDate","ValidToDate","Close","CAPICOM_CURRENT_USER_STORE","getCertificate","validOnly","getCertificates","foundCertificate","getUserCertificates","getContainerCertificates","Find","CAPICOM_CERTIFICATE_FIND_TIME_VALID","CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY","CAPICOM_PROPID_KEY_PROV_INFO","getCspVersion","cspVersion","cadesAbout","CSPVersion","getPluginVersion","cadesVersion","PluginVersion","Version","getSystemInfo","sysInfo","isValidSystemSetup","systemInfo","_isSupportedCadesVersion","_isSupportedCSPVersion","CADESCOM_ATTRIBUTE_OTHER","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CADESCOM_AllowNoOutstandingRequest","CADESCOM_AllowNone","CADESCOM_AllowUntrustedCertificate","CADESCOM_AllowUntrustedRoot","CADESCOM_CADES_BES","CADESCOM_CADES_DEFAULT","CADESCOM_CADES_T","CADESCOM_CADES_X_LONG_TYPE_1","CADESCOM_CURRENT_USER_STORE","CADESCOM_DISPLAY_DATA_ATTRIBUTE","CADESCOM_DISPLAY_DATA_CONTENT","CADESCOM_DISPLAY_DATA_NONE","CADESCOM_ENCODE_ANY","CADESCOM_ENCODE_BASE64","CADESCOM_ENCODE_BINARY","CADESCOM_ENCRYPTION_ALGORITHM_3DES","CADESCOM_ENCRYPTION_ALGORITHM_AES","CADESCOM_ENCRYPTION_ALGORITHM_DES","CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89","CADESCOM_ENCRYPTION_ALGORITHM_RC2","CADESCOM_ENCRYPTION_ALGORITHM_RC4","CADESCOM_HASH_ALGORITHM_CP_GOST_3411","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC","CADESCOM_HASH_ALGORITHM_MD2","CADESCOM_HASH_ALGORITHM_MD4","CADESCOM_HASH_ALGORITHM_MD5","CADESCOM_HASH_ALGORITHM_SHA1","CADESCOM_HASH_ALGORITHM_SHA_256","CADESCOM_HASH_ALGORITHM_SHA_384","CADESCOM_HASH_ALGORITHM_SHA_512","CADESCOM_LOCAL_MACHINE_STORE","CADESCOM_STRING_TO_UCS2LE","CADESCOM_SkipInstallToStore","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING","CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE","CAPICOM_ACTIVE_DIRECTORY_USER_STORE","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY","CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY","CAPICOM_CERTIFICATE_FIND_EXTENSION","CAPICOM_CERTIFICATE_FIND_ISSUER_NAME","CAPICOM_CERTIFICATE_FIND_KEY_USAGE","CAPICOM_CERTIFICATE_FIND_ROOT_NAME","CAPICOM_CERTIFICATE_FIND_SHA1_HASH","CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME","CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME","CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED","CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID","CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT","CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY","CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME","CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME","CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE","CAPICOM_EKU_CLIENT_AUTH","CAPICOM_EKU_OTHER","CAPICOM_EKU_SMARTCARD_LOGON","CAPICOM_LOCAL_MACHINE_STORE","CAPICOM_MEMORY_STORE","CAPICOM_OID_KEY_USAGE_EXTENSION","CAPICOM_OID_OTHER","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_ENHKEY_USAGE","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","LOG_LEVEL_DEBUG","LOG_LEVEL_ERROR","LOG_LEVEL_INFO","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","XmlDsigGost3410Url","XmlDsigGost3410UrlObsolete","XmlDsigGost3411Url","XmlDsigGost3411UrlObsolete","possibleNames","translation","isSetLogLevel","isPluginLoaded","fn","canPromise","Promise","set_log_level","apply","args","match","replace","errorContainer","getLastError","message","test","searchResult","callback","cadesGeneratorsAPI","CreateObjectAsync","callbackName","callbackLiteral","String","callbackArguments","callbackBody","crossEnvCallbackLiteral","Function","join","_getCadesUserCert","log","_getCadesContainerCert","cadesCertificateList","certificatesCount","dateObj","getVarDate","version","Number","major","patch","tagsTranslations","rawInfo","extractedEntities","map","group","segmentsMatch","trim","title","description","oidIdentifierMatch","oidIdentifier","isTranslated","oidTranslation","tagTranslation","tag","pluginObject","plugin_resolved","plugin_reject","plugin_resolve","isOpera","isFireFox","isSafari","isYandex","cadesplugin_loaded_event_recieved","isFireFoxExtensionLoaded","resolve","reject","browserSpecs","check_browser","ru_cryptopro_npcades_10_native_bridge","callbacksCount","callbacks","resultForCallback","callbackId","resultArray","functionName","hasCallback","iframe","document","createElement","arrObjs","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","exec","appName","appVersion","splice","cpcsp_console_log","level","msg","info","postMessage","CADESCOM_MEMORY_STORE","CADESCOM_SMART_CARD_USER_STORE","CADESCOM_XADES_DEFAULT","CADESCOM_XADES_BES","CADESCOM_XADES_T","CADESCOM_XADES_X_LONG_TYPE_1","CADESCOM_XMLDSIG_TYPE","XmlDsigGost3411Url2012256","XmlDsigGost3410Url2012256","XmlDsigGost3411Url2012512","XmlDsigGost3410Url2012512","CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO","CADESCOM_InstallCertChainToContainer","CADESCOM_UseContainerStore","ENABLE_CARRIER_TYPE_CSP","ENABLE_CARRIER_TYPE_FKC_NO_SM","ENABLE_CARRIER_TYPE_FKC_SM","ENABLE_ANY_CARRIER_TYPE","DISABLE_EVERY_CARRIER_OPERATION","ENABLE_CARRIER_OPEN_ENUM","ENABLE_CARRIER_CREATE","ENABLE_ANY_OPERATION","CADESCOM_PRODUCT_CSP","CADESCOM_PRODUCT_OCSP","CADESCOM_PRODUCT_TSP","MEDIA_TYPE_REGISTRY","MEDIA_TYPE_HDIMAGE","MEDIA_TYPE_CLOUD","MEDIA_TYPE_SCARD","XCN_CRYPT_STRING_BASE64HEADER","AT_KEYEXCHANGE","AT_SIGNATURE","CARRIER_FLAG_REMOVABLE","CARRIER_FLAG_UNIQUE","CARRIER_FLAG_PROTECTED","CARRIER_FLAG_FUNCTIONAL_CARRIER","CARRIER_FLAG_SECURE_MESSAGING","CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE","CARRIER_FLAG_VIRTUAL","generatorFunc","continuer","verb","arg","result","generator","err","done","value","then","onFulfilled","onRejected","prototype","slice","arguments","bind","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","firefox_or_safari_nmcades_onload","cadesplugin_extension_loaded_callback","check_chrome_plugin","plugin_loaded","nmcades_api_onload","event","data","url","substring","indexOf","fileref","onerror","onload","load_extension","load_npapi_plugin","elem","elem1","elem2","createPromise","check_npapi_plugin","display","mimetype","mimeTypes","enabledPlugin","div","readyState","obj","EnableInternalCSP","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/script-tag/package.json b/examples/script-tag/package.json index b24fca9..c0e2be1 100644 --- a/examples/script-tag/package.json +++ b/examples/script-tag/package.json @@ -4,7 +4,7 @@ "description": "Пример использования пакета crypto-pro через тэг script", "private": true, "scripts": { - "link-library": "symlink-dir ./node_modules/crypto-pro-js/dist ./public/dist", + "link-library": "symlink-dir ../../dist ./public/dist", "serve": "static --host-address localhost --port 8080 public", "start": "npm run link-library && npm run serve" }, diff --git a/lib/crypto-pro-js.js b/lib/crypto-pro-js.js index 3a46a85..2b32bf5 100644 --- a/lib/crypto-pro-js.js +++ b/lib/crypto-pro-js.js @@ -7,2211 +7,18 @@ exports["cryptoPro"] = factory(); else root["cryptoPro"] = factory(); -})(window, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./crypto-pro-js.ts"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "../node_modules/base64-js/index.js": -/*!******************************************!*\ - !*** ../node_modules/base64-js/index.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -// Support decoding URL-safe base64 strings, as Node.js does. -// See: https://en.wikipedia.org/wiki/Base64#URL_applications -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function getLens (b64) { - var len = b64.length - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] -} - -// base64 is 4/3 + up to two characters of the original data -function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') -} - - -/***/ }), - -/***/ "../node_modules/buffer/index.js": -/*!***************************************!*\ - !*** ../node_modules/buffer/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - - - -var base64 = __webpack_require__(/*! base64-js */ "../node_modules/base64-js/index.js") -var ieee754 = __webpack_require__(/*! ieee754 */ "../node_modules/ieee754/index.js") -var isArray = __webpack_require__(/*! isarray */ "../node_modules/buffer/node_modules/isarray/index.js") - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - -/* - * Export kMaxLength after typed array support is determined. - */ -exports.kMaxLength = kMaxLength() - -function typedArraySupport () { - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 && // typed array instances can be augmented - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -} - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length) - } - that.length = length - } - - return that -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) -} - -Buffer.poolSize = 8192 // not used by this implementation - -// TODO: Legacy, not needed anymore. Remove in next major version. -Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype - return arr -} - -function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) -} - -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true - }) - } -} - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } -} - -function alloc (that, size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) -} - -function allocUnsafe (that, size) { - assertSize(size) - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0 - } - } - return that -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - that = createBuffer(that, length) - - var actual = that.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual) - } - - return that -} - -function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - that = createBuffer(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array) - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset) - } else { - array = new Uint8Array(array, byteOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array) - } - return that -} - -function fromObject (that, obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - that = createBuffer(that, len) - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len) - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') -} - -function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect -// Buffer instances. -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start] - } - } - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// HELPER FUNCTIONS -// ================ - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -function isnan (val) { - return val !== val // eslint-disable-line no-self-compare -} - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "../node_modules/webpack/buildin/global.js"))) - -/***/ }), - -/***/ "../node_modules/buffer/node_modules/isarray/index.js": -/*!************************************************************!*\ - !*** ../node_modules/buffer/node_modules/isarray/index.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - - -/***/ }), - -/***/ "../node_modules/ieee754/index.js": -/*!****************************************!*\ - !*** ../node_modules/ieee754/index.js ***! - \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - - -/***/ }), - -/***/ "../node_modules/webpack/buildin/global.js": -/*!*************************************************!*\ - !*** ../node_modules/webpack/buildin/global.js ***! - \*************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), +})(self, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ /***/ "./api/addAttachedSignature.ts": /*!*************************************!*\ !*** ./api/addAttachedSignature.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -2221,7 +28,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addAttachedSignature = void 0; const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2295,7 +102,6 @@ exports.addAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbp })); })); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -2303,8 +109,7 @@ exports.addAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbp /*!*************************************!*\ !*** ./api/addDetachedSignature.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2317,7 +122,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addDetachedSignature = void 0; const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2403,12 +208,11 @@ exports.addDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbp /*!****************************************!*\ !*** ./api/certificate/certificate.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Certificate = void 0; const constants_1 = __webpack_require__(/*! ../../constants */ "./constants/index.ts"); const exportBase64_1 = __webpack_require__(/*! ./exportBase64 */ "./api/certificate/exportBase64.ts"); @@ -2466,12 +270,11 @@ exports.Certificate = Certificate; /*!*****************************************!*\ !*** ./api/certificate/exportBase64.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.exportBase64 = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2503,12 +306,11 @@ exports.exportBase64 = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!*****************************************!*\ !*** ./api/certificate/getAlgorithm.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAlgorithm = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2547,12 +349,11 @@ exports.getAlgorithm = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!*****************************************!*\ !*** ./api/certificate/getCadesProp.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCadesProp = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2585,8 +386,7 @@ exports.getCadesProp = _afterPluginsLoaded_1._afterPluginsLoaded(function (propN /*!*******************************************************!*\ !*** ./api/certificate/getDecodedExtendedKeyUsage.ts ***! \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2599,7 +399,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getDecodedExtendedKeyUsage = void 0; const constants_1 = __webpack_require__(/*! ../../constants */ "./constants/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2622,12 +422,11 @@ exports.getDecodedExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(f /*!************************************************!*\ !*** ./api/certificate/getExtendedKeyUsage.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getExtendedKeyUsage = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2673,8 +472,7 @@ exports.getExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!************************************!*\ !*** ./api/certificate/getInfo.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2687,7 +485,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getInfo = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2721,8 +519,7 @@ exports.getInfo = _afterPluginsLoaded_1._afterPluginsLoaded(function (tags, enti /*!************************************************!*\ !*** ./api/certificate/hasExtendedKeyUsage.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2735,7 +532,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.hasExtendedKeyUsage = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); /** @@ -2765,8 +562,7 @@ exports.hasExtendedKeyUsage = _afterPluginsLoaded_1._afterPluginsLoaded(function /*!**********************************!*\ !*** ./api/certificate/index.ts ***! \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2780,7 +576,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./certificate */ "./api/certificate/certificate.ts"), exports); @@ -2790,12 +586,11 @@ __exportStar(__webpack_require__(/*! ./certificate */ "./api/certificate/certifi /*!************************************!*\ !*** ./api/certificate/isValid.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isValid = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -2828,11 +623,10 @@ exports.isValid = _afterPluginsLoaded_1._afterPluginsLoaded(function () { /*!****************************************!*\ !*** ./api/createAttachedSignature.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -2842,7 +636,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createAttachedSignature = void 0; const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -2915,7 +709,6 @@ exports.createAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thu })); })); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -2923,8 +716,7 @@ exports.createAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thu /*!****************************************!*\ !*** ./api/createDetachedSignature.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -2937,7 +729,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createDetachedSignature = void 0; const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3020,11 +812,10 @@ exports.createDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thu /*!***************************!*\ !*** ./api/createHash.ts ***! \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { + var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -3034,7 +825,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createHash = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3081,7 +872,6 @@ exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded((unencryptedMessa })); })); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer)) /***/ }), @@ -3089,8 +879,7 @@ exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded((unencryptedMessa /*!***********************************!*\ !*** ./api/createXMLSignature.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3103,7 +892,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createXMLSignature = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3164,8 +953,7 @@ exports.createXMLSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbpri /*!***********************************!*\ !*** ./api/getAllCertificates.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3178,7 +966,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllCertificates = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const getAllUserCertificates_1 = __webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"); @@ -3236,12 +1024,11 @@ exports.getAllCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((resetCac /*!********************************************!*\ !*** ./api/getAllContainerCertificates.ts ***! \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllContainerCertificates = void 0; const certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3316,12 +1103,11 @@ exports.getAllContainerCertificates = _afterPluginsLoaded_1._afterPluginsLoaded( /*!***************************************!*\ !*** ./api/getAllUserCertificates.ts ***! \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getAllUserCertificates = void 0; const certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); @@ -3395,8 +1181,7 @@ exports.getAllUserCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((rese /*!*******************************!*\ !*** ./api/getCertificate.ts ***! \*******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3409,7 +1194,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCertificate = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const getCertificates_1 = __webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts"); @@ -3446,8 +1231,7 @@ exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint, /*!********************************!*\ !*** ./api/getCertificates.ts ***! \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3460,7 +1244,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCertificates = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts"); @@ -3518,12 +1302,11 @@ exports.getCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((resetCache /*!*****************************************!*\ !*** ./api/getContainerCertificates.ts ***! \*****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getContainerCertificates = void 0; const certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); @@ -3610,12 +1393,11 @@ exports.getContainerCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((re /*!******************************!*\ !*** ./api/getCspVersion.ts ***! \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getCspVersion = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3649,12 +1431,11 @@ exports.getCspVersion = _afterPluginsLoaded_1._afterPluginsLoaded(() => { /*!*********************************!*\ !*** ./api/getPluginVersion.ts ***! \*********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getPluginVersion = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts"); @@ -3691,12 +1472,11 @@ exports.getPluginVersion = _afterPluginsLoaded_1._afterPluginsLoaded(() => { /*!******************************!*\ !*** ./api/getSystemInfo.ts ***! \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getSystemInfo = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3738,12 +1518,11 @@ exports.getSystemInfo = _afterPluginsLoaded_1._afterPluginsLoaded(() => { /*!************************************!*\ !*** ./api/getUserCertificates.ts ***! \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getUserCertificates = void 0; const certificate_1 = __webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"); const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); @@ -3829,8 +1608,7 @@ exports.getUserCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((resetCa /*!**********************!*\ !*** ./api/index.ts ***! \**********************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3844,7 +1622,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./getCertificate */ "./api/getCertificate.ts"), exports); __exportStar(__webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts"), exports); __exportStar(__webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"), exports); @@ -3871,8 +1649,7 @@ __exportStar(__webpack_require__(/*! ./getPluginVersion */ "./api/getPluginVersi /*!***********************************!*\ !*** ./api/isValidSystemSetup.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -3885,7 +1662,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isValidSystemSetup = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -3922,12 +1699,11 @@ exports.isValidSystemSetup = _afterPluginsLoaded_1._afterPluginsLoaded(() => __a /*!**************************************!*\ !*** ./constants/cades-constants.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.XmlDsigGost3411UrlObsolete = exports.XmlDsigGost3411Url = exports.XmlDsigGost3410UrlObsolete = exports.XmlDsigGost3410Url = exports.TRUST_REVOCATION_STATUS_UNKNOWN = exports.TRUST_IS_UNTRUSTED_ROOT = exports.TRUST_IS_REVOKED = exports.TRUST_IS_PARTIAL_CHAIN = exports.TRUST_IS_NOT_VALID_FOR_USAGE = exports.TRUST_IS_NOT_TIME_VALID = exports.TRUST_IS_NOT_TIME_NESTED = exports.TRUST_IS_NOT_SIGNATURE_VALID = exports.TRUST_IS_CYCLIC = exports.TRUST_CTL_IS_NOT_VALID_FOR_USAGE = exports.TRUST_CTL_IS_NOT_TIME_VALID = exports.TRUST_CTL_IS_NOT_SIGNATURE_VALID = exports.LOG_LEVEL_INFO = exports.LOG_LEVEL_ERROR = exports.LOG_LEVEL_DEBUG = exports.CHECK_TRUSTED_ROOT = exports.CHECK_TIME_VALIDITY = exports.CHECK_SIGNATURE_VALIDITY = exports.CHECK_ONLINE_REVOCATION_STATUS = exports.CHECK_OFFLINE_REVOCATION_STATUS = exports.CHECK_NONE = exports.CAPICOM_STORE_OPEN_READ_WRITE = exports.CAPICOM_STORE_OPEN_READ_ONLY = exports.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = exports.CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = exports.CAPICOM_STORE_OPEN_EXISTING_ONLY = exports.CAPICOM_SMART_CARD_USER_STORE = exports.CAPICOM_PROPID_UNKNOWN = exports.CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH = exports.CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH = exports.CAPICOM_PROPID_SMART_CARD_DATA = exports.CAPICOM_PROPID_SIGNATURE_HASH = exports.CAPICOM_PROPID_SHA1_HASH = exports.CAPICOM_PROPID_RENEWAL = exports.CAPICOM_PROPID_PVK_FILE = exports.CAPICOM_PROPID_PUBKEY_HASH_RESERVED = exports.CAPICOM_PROPID_PUBKEY_ALG_PARA = exports.CAPICOM_PROPID_NEXT_UPDATE_LOCATION = exports.CAPICOM_PROPID_MD5_HASH = exports.CAPICOM_PROPID_LAST_USER = exports.CAPICOM_PROPID_LAST_RESERVED = exports.CAPICOM_PROPID_KEY_SPEC = exports.CAPICOM_PROPID_KEY_PROV_INFO = exports.CAPICOM_PROPID_KEY_PROV_HANDLE = exports.CAPICOM_PROPID_KEY_IDENTIFIER = exports.CAPICOM_PROPID_KEY_CONTEXT = exports.CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH = exports.CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH = exports.CAPICOM_PROPID_IE30_RESERVED = exports.CAPICOM_PROPID_HASH_PROP = exports.CAPICOM_PROPID_FRIENDLY_NAME = exports.CAPICOM_PROPID_FORTEZZA_DATA = exports.CAPICOM_PROPID_FIRST_USER = exports.CAPICOM_PROPID_FIRST_RESERVED = exports.CAPICOM_PROPID_EXTENDED_ERROR_INFO = exports.CAPICOM_PROPID_ENROLLMENT = exports.CAPICOM_PROPID_ENHKEY_USAGE = exports.CAPICOM_PROPID_EFS = exports.CAPICOM_PROPID_DESCRIPTION = exports.CAPICOM_PROPID_DATE_STAMP = exports.CAPICOM_PROPID_CTL_USAGE = exports.CAPICOM_PROPID_CROSS_CERT_DIST_POINTS = exports.CAPICOM_PROPID_AUTO_ENROLL = exports.CAPICOM_PROPID_ARCHIVED_KEY_HASH = exports.CAPICOM_PROPID_ARCHIVED = exports.CAPICOM_PROPID_ACCESS_STATE = exports.CAPICOM_OID_OTHER = exports.CAPICOM_OID_KEY_USAGE_EXTENSION = exports.CAPICOM_MY_STORE = exports.CAPICOM_MEMORY_STORE = exports.CAPICOM_LOCAL_MACHINE_STORE = exports.CAPICOM_EKU_SMARTCARD_LOGON = exports.CAPICOM_EKU_OTHER = exports.CAPICOM_EKU_CLIENT_AUTH = exports.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = exports.CAPICOM_CURRENT_USER_STORE = exports.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = exports.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = exports.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = exports.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = exports.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = exports.CAPICOM_CERTIFICATE_FIND_TIME_VALID = exports.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = exports.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = exports.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = exports.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = exports.CAPICOM_CERTIFICATE_FIND_SHA1_HASH = exports.CAPICOM_CERTIFICATE_FIND_ROOT_NAME = exports.CAPICOM_CERTIFICATE_FIND_KEY_USAGE = exports.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = exports.CAPICOM_CERTIFICATE_FIND_EXTENSION = exports.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = exports.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = exports.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = exports.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = exports.CAPICOM_ACTIVE_DIRECTORY_USER_STORE = exports.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = exports.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = exports.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = exports.CADESCOM_SkipInstallToStore = exports.CADESCOM_STRING_TO_UCS2LE = exports.CADESCOM_PKCS7_TYPE = exports.CADESCOM_LOCAL_MACHINE_STORE = exports.CADESCOM_HASH_ALGORITHM_SHA_512 = exports.CADESCOM_HASH_ALGORITHM_SHA_384 = exports.CADESCOM_HASH_ALGORITHM_SHA_256 = exports.CADESCOM_HASH_ALGORITHM_SHA1 = exports.CADESCOM_HASH_ALGORITHM_MD5 = exports.CADESCOM_HASH_ALGORITHM_MD4 = exports.CADESCOM_HASH_ALGORITHM_MD2 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = exports.CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = exports.CADESCOM_ENCRYPTION_ALGORITHM_RC4 = exports.CADESCOM_ENCRYPTION_ALGORITHM_RC2 = exports.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = exports.CADESCOM_ENCRYPTION_ALGORITHM_DES = exports.CADESCOM_ENCRYPTION_ALGORITHM_AES = exports.CADESCOM_ENCRYPTION_ALGORITHM_3DES = exports.CADESCOM_ENCODE_BINARY = exports.CADESCOM_ENCODE_BASE64 = exports.CADESCOM_ENCODE_ANY = exports.CADESCOM_DISPLAY_DATA_NONE = exports.CADESCOM_DISPLAY_DATA_CONTENT = exports.CADESCOM_DISPLAY_DATA_ATTRIBUTE = exports.CADESCOM_CURRENT_USER_STORE = exports.CADESCOM_CONTAINER_STORE = exports.CADESCOM_CADES_X_LONG_TYPE_1 = exports.CADESCOM_CADES_T = exports.CADESCOM_CADES_DEFAULT = exports.CADESCOM_CADES_BES = exports.CADESCOM_BASE64_TO_BINARY = exports.CADESCOM_AllowUntrustedRoot = exports.CADESCOM_AllowUntrustedCertificate = exports.CADESCOM_AllowNone = exports.CADESCOM_AllowNoOutstandingRequest = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = exports.CADESCOM_ATTRIBUTE_OTHER = void 0; exports.CADESCOM_ATTRIBUTE_OTHER = -1; exports.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2; @@ -4086,8 +1862,7 @@ exports.XmlDsigGost3411UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gos /*!****************************!*\ !*** ./constants/index.ts ***! \****************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4101,7 +1876,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./cades-constants */ "./constants/cades-constants.ts"), exports); __exportStar(__webpack_require__(/*! ./issuer-tags-translations */ "./constants/issuer-tags-translations.ts"), exports); __exportStar(__webpack_require__(/*! ./oids-dictionary */ "./constants/oids-dictionary.ts"), exports); @@ -4114,12 +1889,11 @@ __exportStar(__webpack_require__(/*! ./subject-tags-translations */ "./constants /*!***********************************************!*\ !*** ./constants/issuer-tags-translations.ts ***! \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ISSUER_TAGS_TRANSLATIONS = void 0; exports.ISSUER_TAGS_TRANSLATIONS = [ { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' }, @@ -4146,12 +1920,11 @@ exports.ISSUER_TAGS_TRANSLATIONS = [ /*!**************************************!*\ !*** ./constants/oids-dictionary.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OIDS_DICTIONARY = void 0; exports.OIDS_DICTIONARY = { '1.2.643.2.2.34.6': 'Пользователь Центра Регистрации', @@ -4209,12 +1982,11 @@ exports.OIDS_DICTIONARY = { /*!************************************************!*\ !*** ./constants/subject-tags-translations.ts ***! \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SUBJECT_TAGS_TRANSLATIONS = void 0; exports.SUBJECT_TAGS_TRANSLATIONS = [ { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' }, @@ -4243,8 +2015,7 @@ exports.SUBJECT_TAGS_TRANSLATIONS = [ /*!**************************!*\ !*** ./crypto-pro-js.ts ***! \**************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4258,7 +2029,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./api */ "./api/index.ts"), exports); @@ -4268,8 +2039,7 @@ __exportStar(__webpack_require__(/*! ./api */ "./api/index.ts"), exports); /*!****************************************!*\ !*** ./helpers/_afterPluginsLoaded.ts ***! \****************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4282,7 +2052,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._afterPluginsLoaded = void 0; const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); let isSetLogLevel = false; @@ -4331,12 +2101,11 @@ exports._afterPluginsLoaded = (fn) => { /*!***************************************!*\ !*** ./helpers/_extractCommonName.ts ***! \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._extractCommonName = void 0; exports._extractCommonName = (subjectName) => { var _a, _b; return (_b = (_a = subjectName.match(/CN="?(.+?)"?(?:,|$)/)) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.replace(/"{2}/g, '"'); }; @@ -4347,12 +2116,11 @@ exports._extractCommonName = (subjectName) => { var _a, _b; return (_b = (_a = s /*!***************************************************!*\ !*** ./helpers/_extractMeaningfulErrorMessage.ts ***! \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._extractMeaningfulErrorMessage = void 0; exports._extractMeaningfulErrorMessage = (error) => { var _a; @@ -4378,12 +2146,11 @@ exports._extractMeaningfulErrorMessage = (error) => { /*!*************************************!*\ !*** ./helpers/_generateCadesFn.ts ***! \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._generateCadesFn = exports.__createCadesPluginObject__ = exports.__cadesAsyncToken__ = void 0; // синтетические переменные, которые подменяются в рантайме exports.__cadesAsyncToken__ = {}; @@ -4418,8 +2185,7 @@ exports._generateCadesFn = (callback) => { /*!**********************************!*\ !*** ./helpers/_getCadesCert.ts ***! \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -4432,7 +2198,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesCert = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _getCadesUserCert_1 = __webpack_require__(/*! ./_getCadesUserCert */ "./helpers/_getCadesUserCert.ts"); @@ -4462,12 +2228,11 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) = /*!*******************************************!*\ !*** ./helpers/_getCadesContainerCert.ts ***! \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesContainerCert = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -4540,12 +2305,11 @@ exports._getCadesContainerCert = _afterPluginsLoaded_1._afterPluginsLoaded((thum /*!**************************************!*\ !*** ./helpers/_getCadesUserCert.ts ***! \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getCadesUserCert = void 0; const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts"); const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts"); @@ -4617,12 +2381,11 @@ exports._getCadesUserCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprin /*!********************************!*\ !*** ./helpers/_getDateObj.ts ***! \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._getDateObj = void 0; /** * Возвращает объект даты, совместимый с Cades plugin'ом, зависящий от браузера. @@ -4639,12 +2402,11 @@ exports._getDateObj = (dateObj) => (dateObj.getVarDate ? dateObj.getVarDate() : /*!*******************************************!*\ !*** ./helpers/_isSupportedCSPVersion.ts ***! \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._isSupportedCSPVersion = void 0; const oldestSupportedCSPVersion = 4.0; exports._isSupportedCSPVersion = (version) => { @@ -4660,12 +2422,11 @@ exports._isSupportedCSPVersion = (version) => { /*!*********************************************!*\ !*** ./helpers/_isSupportedCadesVersion.ts ***! \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._isSupportedCadesVersion = void 0; exports._isSupportedCadesVersion = (version) => { const match = version.match(/(\d+)\.(\d+)\.(\d+)/); @@ -4689,12 +2450,11 @@ exports._isSupportedCadesVersion = (version) => { /*!***********************************!*\ !*** ./helpers/_parseCertInfo.ts ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "__esModule", ({ value: true })); exports._parseCertInfo = void 0; const constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts"); /** @@ -4741,8 +2501,7 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => { /*!***********************************!*\ !*** ./vendor/cadesplugin_api.js ***! \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { +/***/ (() => { ;(function () { //already loaded @@ -5492,6 +3251,41 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => { /***/ }) -/******/ }); +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__("./crypto-pro-js.ts"); +/******/ +/******/ return __webpack_exports__; +/******/ })() +; }); //# sourceMappingURL=crypto-pro-js.js.map \ No newline at end of file diff --git a/lib/crypto-pro-js.js.map b/lib/crypto-pro-js.js.map index 514eb70..6f7e43f 100644 --- a/lib/crypto-pro-js.js.map +++ b/lib/crypto-pro-js.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cryptoPro/webpack/universalModuleDefinition","webpack://cryptoPro/webpack/bootstrap","webpack://cryptoPro/../node_modules/base64-js/index.js","webpack://cryptoPro/../node_modules/buffer/index.js","webpack://cryptoPro/../node_modules/buffer/node_modules/isarray/index.js","webpack://cryptoPro/../node_modules/ieee754/index.js","webpack://cryptoPro/../node_modules/webpack/buildin/global.js","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"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,qDAAW;AAChC,cAAc,mBAAO,CAAC,iDAAS;AAC/B,cAAc,mBAAO,CAAC,qEAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACpFA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA,oFAA6E;AAC7E,4HAAqE;AACrE,6JAA2F;AAC3F,mHAAiH;AACjH,0GAAyD;AACzD,oGAAqD;AAErD;;;;;;GAMG;AACU,4BAAoB,GAAG,yCAAmB,CACrD,CAAO,UAAkB,EAAE,aAAmC,EAAmB,EAAE;IACjF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC/B,MAAM,gBAAgB,GAAG,MAAM,6BAAa,CAAC,UA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G,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,WAAW,UAAU,YAAY,aAAa;AACrG,+EAA+E,aAAa,mBAAmB,uBAAuB,uBAAuB,cAAc,mBAAmB,YAAY;AAC1M,oEAAoE,iBAAiB,yBAAyB,WAAW;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC","file":"crypto-pro-js.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 = \"./crypto-pro-js.ts\");\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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 * Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const addAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(signedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\n }\n\n let signature: string;\n\n try {\n void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));\n signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param signedMessage - подписанное сообщение\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const addDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function addDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\n }\n\n let signature: string;\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)\n );\n signature =\n __cadesAsyncToken__ +\n cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 {\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\n }\n\n public getIssuerInfo(): Promise {\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\n }\n\n public getExtendedKeyUsage(): Promise {\n return getExtendedKeyUsage.call(this);\n }\n\n public getDecodedExtendedKeyUsage(): Promise {\n return getDecodedExtendedKeyUsage.call(this);\n }\n\n public getAlgorithm(): Promise {\n return getAlgorithm.call(this);\n }\n\n public getCadesProp(propName): Promise {\n return getCadesProp.call(this, propName);\n }\n\n public isValid(): Promise {\n return isValid.call(this);\n }\n\n public exportBase64(): Promise {\n return exportBase64.call(this);\n }\n\n public hasExtendedKeyUsage(oids): Promise {\n return hasExtendedKeyUsage.call(this, oids);\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 * Экспортирует сертификат в формате 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 { _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 { 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 {\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 {\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 { _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 {\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","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 * Проверяет действительность сертификата\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","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 * Создает присоединенную подпись сообщения по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param message - подписываемое сообщение\n * @returns подпись в формате PKCS#7\n */\nexport const createAttachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createAttachedSignature(): 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 messageBase64;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\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(messageBase64));\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\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 = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { 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 * Создает отсоединенную подпись хеша по отпечатку сертификата\n *\n * @param thumbprint - отпечаток сертификата\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\n * @returns подпись в формате PKCS#7\n */\nexport const createDetachedSignature = _afterPluginsLoaded(\n async (thumbprint: string, messageHash: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createDetachedSignature(): string {\n let cadesAttrs;\n let cadesHashedData;\n let cadesSignedData;\n let cadesSigner;\n\n try {\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\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__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\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.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\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 { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит\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)\n *\n * @param unencryptedMessage - сообщение для хеширования\n *\n * @returns хеш\n */\nexport const createHash = _afterPluginsLoaded(\n async (unencryptedMessage: string | ArrayBuffer): Promise => {\n const { cadesplugin } = window;\n\n return eval(\n _generateCadesFn(function createHash(): string {\n const cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\n let messageBase64;\n let hash;\n\n try {\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\n } catch (error) {\n console.error(error);\n\n throw new Error('Ошибка при преобразовании сообщения в Base64');\n }\n\n try {\n void (\n __cadesAsyncToken__ +\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\n );\n void (__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\n void (__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации хэширования');\n }\n\n try {\n hash = __cadesAsyncToken__ + cadesHashedData.Value;\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при создании хэша');\n }\n\n return hash;\n }),\n );\n },\n);\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _getCadesCert } from '../helpers/_getCadesCert';\n\n/**\n * Создает XML подпись для документа в формате XML\n *\n * @param thumbprint - отпечаток сертификата\n * @param unencryptedMessage - подписываемое сообщение в формате XML\n * @returns подпись\n */\nexport const createXMLSignature = _afterPluginsLoaded(\n async (thumbprint: string, unencryptedMessage: string): Promise => {\n const { cadesplugin } = window;\n const cadesCertificate = await _getCadesCert(thumbprint);\n\n return eval(\n _generateCadesFn(function createXMLSignature(): string {\n let cadesSigner;\n let cadesSignedXML;\n\n try {\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\n cadesSignedXML = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.SignedXML');\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\n }\n\n try {\n const signatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';\n const digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';\n\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\n void (__cadesAsyncToken__ + cadesSigner.propset_CheckCertificate(true));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_Content(unencryptedMessage));\n void (\n __cadesAsyncToken__ +\n cadesSignedXML.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)\n );\n void (__cadesAsyncToken__ + cadesSignedXML.propset_SignatureMethod(signatureMethod));\n void (__cadesAsyncToken__ + cadesSignedXML.propset_DigestMethod(digestMethod));\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 = __cadesAsyncToken__ + cadesSignedXML.Sign(cadesSigner);\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 { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getAllUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerAllCertificates: Certificate[] = await getAllContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerAllCertificates;\n } else {\n let containerAllCertificatesCount = containerAllCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerAllCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);\n }\n\n containerAllCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\n","import { CadesCertificate, Certificate } from './certificate';\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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getAllContainerCertificates = _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 getAllContainerCertificates(): 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.CADESCOM_CONTAINER_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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","import { CadesCertificate, Certificate } from './certificate';\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 getAllUserCertificates = _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 getAllUserCertificates(): 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 cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\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","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getCertificates } from './getCertificates';\nimport { getAllCertificates } from './getAllCertificates';\n\n/**\n * Возвращает сертификат по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @param validOnly - проверять сертификаты по дате и наличию приватного ключа\n * @returns сертификат\n */\nexport const getCertificate = _afterPluginsLoaded(\n async (thumbprint: string, validOnly: boolean = true): Promise => {\n if (!thumbprint) {\n throw new Error('Отпечаток не указан');\n }\n\n let availableCertificates: Certificate[];\n\n if (validOnly) {\n availableCertificates = await getCertificates();\n } else {\n availableCertificates = await getAllCertificates();\n }\n\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","import { Certificate } from './certificate';\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { getUserCertificates } from './getUserCertificates';\nimport { getContainerCertificates } from './getContainerCertificates';\nimport { getAllUserCertificates } from './getAllUserCertificates';\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\n\nlet certificatesCache: Certificate[];\n/**\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getCertificates = _afterPluginsLoaded(\n async (resetCache: boolean = false): Promise => {\n if (!resetCache && certificatesCache) {\n return certificatesCache;\n }\n\n let availableCertificates: Certificate[];\n\n try {\n availableCertificates = await getUserCertificates(resetCache);\n } catch (error) {\n console.error(error);\n\n availableCertificates = [];\n }\n\n try {\n const containerCertificates: Certificate[] = await getContainerCertificates(resetCache);\n\n if (!availableCertificates) {\n availableCertificates = containerCertificates;\n } else {\n let containerCertificatesCount = containerCertificates.length - 1;\n let foundAvailableCertificate;\n\n while (containerCertificatesCount) {\n foundAvailableCertificate = availableCertificates.find(\n (cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint,\n );\n\n if (!foundAvailableCertificate) {\n availableCertificates.push(containerCertificates[containerCertificatesCount]);\n }\n\n containerCertificatesCount--;\n }\n }\n } catch (error) {\n console.error(error);\n }\n\n if (!availableCertificates) {\n throw new Error('Нет доступных сертификатов');\n }\n\n certificatesCache = availableCertificates;\n\n return certificatesCache;\n },\n);\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 * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\n * Возвращает список сертификатов, доступных пользователю в системе\n *\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\n * @returns список сертификатов\n */\nexport const getContainerCertificates = _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 getContainerCertificates(): 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.CADESCOM_CONTAINER_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","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о CSP\n */\nexport const getCspVersion = _afterPluginsLoaded((): string => {\n let cspVersion = null;\n\n return eval(\n _generateCadesFn(function getCspVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\n\n cspVersion = __cadesAsyncToken__ + cspVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении версии системы');\n }\n\n return cspVersion;\n }),\n );\n});\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\n\n/**\n * Предоставляет информацию о системе\n *\n * @returns информацию о плагине\n */\nexport const getPluginVersion = _afterPluginsLoaded((): string => {\n let cadesVersion = null;\n\n return eval(\n _generateCadesFn(function getPluginVersion(): string {\n let cadesAbout;\n\n try {\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\n\n cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\n\n if (!cadesVersion) {\n cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\n }\n\n cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();\n } catch (error) {\n console.error(error);\n\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о плагине');\n }\n\n return cadesVersion;\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","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 './getCertificate';\nexport * from './getUserCertificates';\nexport * from './getAllUserCertificates';\nexport * from './getContainerCertificates';\nexport * from './getAllContainerCertificates';\nexport * from './getCertificates';\nexport * from './getAllCertificates';\nexport * from './getSystemInfo';\nexport * from './isValidSystemSetup';\nexport * from './createXMLSignature';\nexport * from './createDetachedSignature';\nexport * from './addDetachedSignature';\nexport * from './createAttachedSignature';\nexport * from './addAttachedSignature';\nexport * from './createHash';\nexport * from './certificate';\nexport * from './getCspVersion';\nexport * from './getPluginVersion';\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 => {\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 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","export * from './cades-constants';\nexport * from './issuer-tags-translations';\nexport * from './oids-dictionary';\nexport * from './subject-tags-translations';\n","import { TagsTranslations } from './tags-translations';\n\nexport const ISSUER_TAGS_TRANSLATIONS: TagsTranslations[] = [\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Удостоверяющий центр' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Тип' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], 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.100.4': 'ИНН организации',\n '1.2.643.100.1': 'ОГРН',\n '1.2.643.100.5': 'ОГРНИП',\n '1.2.643.100.3': 'СНИЛС',\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: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\n { possibleNames: ['CN', 'commonName'], translation: 'Владелец' },\n { possibleNames: ['SN', 'surname'], translation: 'Фамилия' },\n { possibleNames: ['G', 'givenName', 'gn'], translation: 'Имя Отчество' },\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Отдел/подразделение' },\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\n];\n","export * from './api';\n","import { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\n\ntype Unpromisify = T extends Promise ? R : T;\n\nlet isSetLogLevel = false;\nlet isPluginLoaded = false;\n\nexport const _afterPluginsLoaded = any>(\n fn: T,\n): ((...args: Parameters) => Promise>>) => {\n const canPromise = Boolean(window.Promise);\n\n return async function (...args: Parameters): Promise>> {\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 _extractCommonName = (subjectName: string): string | undefined =>\n subjectName.match(/CN=\"?(.+?)\"?(?:,|$)/)?.[1]?.replace(/\"{2}/g, '\"');\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[0-9a-zA-Z]{1,8})\\)?)|(?:\\.?$))/);\n\n return searchResult ? searchResult[1] + (searchResult[2] ? ' (Код ошибки: ' + searchResult[2] + ')' : '') : 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","import { CadesCertificate } from '../api/certificate';\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\nimport { _getCadesUserCert } from './_getCadesUserCert';\nimport { _getCadesContainerCert } from './_getCadesContainerCert';\n\n/**\n * Возвращает сертификат в формате Cades по отпечатку\n *\n * @param thumbprint - отпечаток сертификата\n * @returns сертификат в формате Cades\n */\nexport const _getCadesCert = _afterPluginsLoaded(\n async (thumbprint: string): Promise => {\n let cadesCertificate: CadesCertificate;\n\n try {\n cadesCertificate = await _getCadesUserCert(thumbprint);\n } catch (error) {\n console.log(error);\n\n cadesCertificate = await _getCadesContainerCert(thumbprint);\n }\n\n return cadesCertificate;\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 _getCadesContainerCert = _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.CADESCOM_CONTAINER_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(\n _extractMeaningfulErrorMessage(error) ||\n 'Ошибка получения списка сертификатов из хранилища закрытого ключа',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа',\n );\n }\n\n cadesStore.Close();\n\n return cadesCertificate;\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 _getCadesUserCert = _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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя',\n );\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(\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя',\n );\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","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","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","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",";(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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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"],"sourceRoot":""} \ No newline at end of file +{"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 => {\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 => {\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 {\r\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\r\n }\r\n\r\n public getIssuerInfo(): Promise {\r\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\r\n }\r\n\r\n public getExtendedKeyUsage(): Promise {\r\n return getExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getDecodedExtendedKeyUsage(): Promise {\r\n return getDecodedExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getAlgorithm(): Promise {\r\n return getAlgorithm.call(this);\r\n }\r\n\r\n public getCadesProp(propName): Promise {\r\n return getCadesProp.call(this, propName);\r\n }\r\n\r\n public isValid(): Promise {\r\n return isValid.call(this);\r\n }\r\n\r\n public exportBase64(): Promise {\r\n return exportBase64.call(this);\r\n }\r\n\r\n public hasExtendedKeyUsage(oids): Promise {\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 {\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 {\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 {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 => {\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 extends Promise ? R : T;\r\n\r\nlet isSetLogLevel = false;\r\nlet isPluginLoaded = false;\r\n\r\nexport const _afterPluginsLoaded = any>(\r\n fn: T,\r\n): ((...args: Parameters) => Promise>>) => {\r\n const canPromise = Boolean(window.Promise);\r\n\r\n return async function (...args: Parameters): Promise>> {\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 => {\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 = \"
\" +\r\n \"\" +\r\n \"

Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"

Скачать расширение

\" +\r\n \"
\";\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 = \"\";\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":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8c73f55..a58163b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,9 +29,6 @@ "typescript": "^3.9.10", "webpack": "^5.75.0", "webpack-cli": "^5.0.1" - }, - "engines": { - "node": "~16" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index b7a809b..230dea1 100644 --- a/package.json +++ b/package.json @@ -83,8 +83,5 @@ "typescript": "^3.9.10", "webpack": "^5.75.0", "webpack-cli": "^5.0.1" - }, - "engines": { - "node": "~16" } }