build с последними изменениями

This commit is contained in:
Artem Vasilev 2022-06-23 13:04:15 +03:00
parent 388248440a
commit 5b2e237c34
18 changed files with 825 additions and 52 deletions

8
dist/api/getAllCertificates.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import { Certificate } from './certificate';
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
export declare const getAllCertificates: (resetCache?: boolean) => Promise<Certificate[]>;

View File

@ -3,6 +3,7 @@ import { Certificate } from './certificate';
* Возвращает сертификат по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @param validOnly - проверять сертификаты по дате и наличию приватного ключа
* @returns сертификат
*/
export declare const getCertificate: (thumbprint: string) => Promise<Certificate>;
export declare const getCertificate: (thumbprint: string, validOnly?: boolean) => Promise<Certificate>;

8
dist/api/getCertificates.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import { Certificate } from './certificate';
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
export declare const getCertificates: (resetCache?: boolean) => Promise<Certificate[]>;

2
dist/api/index.d.ts vendored
View File

@ -3,6 +3,8 @@ export * from './getUserCertificates';
export * from './getAllUserCertificates';
export * from './getContainerCertificates';
export * from './getAllContainerCertificates';
export * from './getCertificates';
export * from './getAllCertificates';
export * from './getSystemInfo';
export * from './isValidSystemSetup';
export * from './createXMLSignature';

447
dist/crypto-pro-js.js vendored
View File

@ -3457,6 +3457,122 @@ exports.createXMLSignature = _afterPluginsLoaded_1._afterPluginsLoaded(function
}); });
/***/ }),
/***/ "./api/getAllCertificates.ts":
/*!***********************************!*\
!*** ./api/getAllCertificates.ts ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var getAllUserCertificates_1 = __webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts");
var getAllContainerCertificates_1 = __webpack_require__(/*! ./getAllContainerCertificates */ "./api/getAllContainerCertificates.ts");
var certificatesCache;
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
exports.getAllCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(function (resetCache) {
if (resetCache === void 0) { resetCache = false; }
return __awaiter(void 0, void 0, void 0, function () {
var availableCertificates, error_1, containerAllCertificates_1, containerAllCertificatesCount_1, foundAvailableCertificate, error_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!resetCache && certificatesCache) {
return [2 /*return*/, certificatesCache];
}
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, getAllUserCertificates_1.getAllUserCertificates(resetCache)];
case 2:
availableCertificates = _a.sent();
return [3 /*break*/, 4];
case 3:
error_1 = _a.sent();
console.error(error_1);
availableCertificates = [];
return [3 /*break*/, 4];
case 4:
_a.trys.push([4, 6, , 7]);
return [4 /*yield*/, getAllContainerCertificates_1.getAllContainerCertificates(resetCache)];
case 5:
containerAllCertificates_1 = _a.sent();
if (!availableCertificates) {
availableCertificates = containerAllCertificates_1;
}
else {
containerAllCertificatesCount_1 = containerAllCertificates_1.length - 1;
foundAvailableCertificate = void 0;
while (containerAllCertificatesCount_1) {
foundAvailableCertificate = availableCertificates.find(function (cert) { return cert.thumbprint === containerAllCertificates_1[containerAllCertificatesCount_1].thumbprint; });
if (!foundAvailableCertificate) {
availableCertificates.push(containerAllCertificates_1[containerAllCertificatesCount_1]);
}
containerAllCertificatesCount_1--;
}
}
return [3 /*break*/, 7];
case 6:
error_2 = _a.sent();
console.error(error_2);
return [3 /*break*/, 7];
case 7:
if (!availableCertificates) {
throw new Error('Нет доступных сертификатов');
}
certificatesCache = availableCertificates;
return [2 /*return*/, certificatesCache];
}
});
});
});
/***/ }),
/***/ "./api/getAllContainerCertificates.ts":
@ -3665,14 +3781,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
};
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts");
var getCertificates_1 = __webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts");
var getAllCertificates_1 = __webpack_require__(/*! ./getAllCertificates */ "./api/getAllCertificates.ts");
/**
* Возвращает сертификат по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @param validOnly - проверять сертификаты по дате и наличию приватного ключа
* @returns сертификат
*/
exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint) { return __awaiter(void 0, void 0, void 0, function () {
exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint, validOnly) {
if (validOnly === void 0) { validOnly = true; }
return __awaiter(void 0, void 0, void 0, function () {
var availableCertificates, foundCertificate;
return __generator(this, function (_a) {
switch (_a.label) {
@ -3680,9 +3800,16 @@ exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded(function (thu
if (!thumbprint) {
throw new Error('Отпечаток не указан');
}
return [4 /*yield*/, getUserCertificates_1.getUserCertificates()];
if (!validOnly) return [3 /*break*/, 2];
return [4 /*yield*/, getCertificates_1.getCertificates()];
case 1:
availableCertificates = _a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, getAllCertificates_1.getAllCertificates()];
case 3:
availableCertificates = _a.sent();
_a.label = 4;
case 4:
foundCertificate = availableCertificates.find(function (cert) { return cert.thumbprint === thumbprint; });
if (!foundCertificate) {
throw new Error("\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 \u0441 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u043C: \"" + thumbprint + "\" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D");
@ -3690,7 +3817,124 @@ exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded(function (thu
return [2 /*return*/, foundCertificate];
}
});
}); });
});
});
/***/ }),
/***/ "./api/getCertificates.ts":
/*!********************************!*\
!*** ./api/getCertificates.ts ***!
\********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts");
var getContainerCertificates_1 = __webpack_require__(/*! ./getContainerCertificates */ "./api/getContainerCertificates.ts");
var certificatesCache;
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
exports.getCertificates = _afterPluginsLoaded_1._afterPluginsLoaded(function (resetCache) {
if (resetCache === void 0) { resetCache = false; }
return __awaiter(void 0, void 0, void 0, function () {
var availableCertificates, error_1, containerCertificates_1, containerCertificatesCount_1, foundAvailableCertificate, error_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!resetCache && certificatesCache) {
return [2 /*return*/, certificatesCache];
}
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, getUserCertificates_1.getUserCertificates(resetCache)];
case 2:
availableCertificates = _a.sent();
return [3 /*break*/, 4];
case 3:
error_1 = _a.sent();
console.error(error_1);
availableCertificates = [];
return [3 /*break*/, 4];
case 4:
_a.trys.push([4, 6, , 7]);
return [4 /*yield*/, getContainerCertificates_1.getContainerCertificates(resetCache)];
case 5:
containerCertificates_1 = _a.sent();
if (!availableCertificates) {
availableCertificates = containerCertificates_1;
}
else {
containerCertificatesCount_1 = containerCertificates_1.length - 1;
foundAvailableCertificate = void 0;
while (containerCertificatesCount_1) {
foundAvailableCertificate = availableCertificates.find(function (cert) { return cert.thumbprint === containerCertificates_1[containerCertificatesCount_1].thumbprint; });
if (!foundAvailableCertificate) {
availableCertificates.push(containerCertificates_1[containerCertificatesCount_1]);
}
containerCertificatesCount_1--;
}
}
return [3 /*break*/, 7];
case 6:
error_2 = _a.sent();
console.error(error_2);
return [3 /*break*/, 7];
case 7:
if (!availableCertificates) {
throw new Error('Нет доступных сертификатов');
}
certificatesCache = availableCertificates;
return [2 /*return*/, certificatesCache];
}
});
});
});
/***/ }),
@ -4021,6 +4265,8 @@ __export(__webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertific
__export(__webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"));
__export(__webpack_require__(/*! ./getContainerCertificates */ "./api/getContainerCertificates.ts"));
__export(__webpack_require__(/*! ./getAllContainerCertificates */ "./api/getAllContainerCertificates.ts"));
__export(__webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts"));
__export(__webpack_require__(/*! ./getAllCertificates */ "./api/getAllCertificates.ts"));
__export(__webpack_require__(/*! ./getSystemInfo */ "./api/getSystemInfo.ts"));
__export(__webpack_require__(/*! ./isValidSystemSetup */ "./api/isValidSystemSetup.ts"));
__export(__webpack_require__(/*! ./createXMLSignature */ "./api/createXMLSignature.ts"));
@ -4646,17 +4892,173 @@ exports._generateCadesFn = function (callback) {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
var _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
var _getCadesUserCert_1 = __webpack_require__(/*! ./_getCadesUserCert */ "./helpers/_getCadesUserCert.ts");
var _getCadesContainerCert_1 = __webpack_require__(/*! ./_getCadesContainerCert */ "./helpers/_getCadesContainerCert.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint) {
exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint) { return __awaiter(void 0, void 0, void 0, function () {
var cadesCertificate, error_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 2, , 4]);
return [4 /*yield*/, _getCadesUserCert_1._getCadesUserCert(thumbprint)];
case 1:
cadesCertificate = _a.sent();
return [3 /*break*/, 4];
case 2:
error_1 = _a.sent();
console.log(error_1);
return [4 /*yield*/, _getCadesContainerCert_1._getCadesContainerCert(thumbprint)];
case 3:
cadesCertificate = _a.sent();
return [3 /*break*/, 4];
case 4: return [2 /*return*/, cadesCertificate];
}
});
}); });
/***/ }),
/***/ "./helpers/_getCadesContainerCert.ts":
/*!*******************************************!*\
!*** ./helpers/_getCadesContainerCert.ts ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
var _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesContainerCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint) {
var cadesplugin = window.cadesplugin;
return eval(_generateCadesFn_1._generateCadesFn(function _getCadesCert() {
var cadesStore;
try {
cadesStore = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.Store');
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');
}
if (!cadesStore) {
throw new Error('Не удалось получить доступ к хранилищу сертификатов');
}
try {
void (_generateCadesFn_1.__cadesAsyncToken__ +
cadesStore.Open(cadesplugin.CADESCOM_CONTAINER_STORE, cadesplugin.CAPICOM_MY_STORE, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED));
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища закрытого ключа');
}
var cadesCertificateList;
var certificatesCount;
try {
cadesCertificateList = _generateCadesFn_1.__cadesAsyncToken__ + cadesStore.Certificates;
certificatesCount = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища закрытого ключа');
}
if (!certificatesCount) {
throw new Error('Нет доступных сертификатов в хранилище закрытого ключа');
}
var cadesCertificate;
try {
cadesCertificateList =
_generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
var count = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
if (!count) {
throw new Error("\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 \u0441 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u043C: \"" + thumbprint + "\" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430");
}
cadesCertificate = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Item(1);
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа');
}
cadesStore.Close();
return cadesCertificate;
}));
});
/***/ }),
/***/ "./helpers/_getCadesUserCert.ts":
/*!**************************************!*\
!*** ./helpers/_getCadesUserCert.ts ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
var _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesUserCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thumbprint) {
var cadesplugin = window.cadesplugin;
return eval(_generateCadesFn_1._generateCadesFn(function _getCadesCert() {
var cadesStore;
@ -4676,7 +5078,7 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thum
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища пользователя');
}
var cadesCertificateList;
var certificatesCount;
@ -4686,10 +5088,10 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thum
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя');
}
if (!certificatesCount) {
throw new Error('Нет доступных сертификатов');
throw new Error('Нет доступных сертификатов в хранилище пользователя');
}
var cadesCertificate;
try {
@ -4697,13 +5099,13 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded(function (thum
_generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
var count = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
if (!count) {
throw new Error("\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 \u0441 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u043C: \"" + thumbprint + "\" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D");
throw new Error("\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 \u0441 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u043C: \"" + thumbprint + "\" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F");
}
cadesCertificate = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Item(1);
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя');
}
cadesStore.Close();
return cadesCertificate;
@ -4855,6 +5257,7 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) {
var isYandex = 0;
var canPromise = !!window.Promise;
var cadesplugin_loaded_event_recieved = false;
var isFireFoxExtensionLoaded = false;
var cadesplugin;
if(canPromise)
@ -5078,6 +5481,14 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) {
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(generatorFunc) {
@ -5324,10 +5735,17 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) {
}
}
function firefox_or_safari_nmcades_onload() {
if (window.cadesplugin_extension_loaded_callback)
window.cadesplugin_extension_loaded_callback();
isFireFoxExtensionLoaded = true;
cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);
}
function nmcades_api_onload () {
function nmcades_api_onload() {
if (!isIE() && !isFireFox && !isSafari) {
if (window.cadesplugin_extension_loaded_callback)
window.cadesplugin_extension_loaded_callback();
}
window.postMessage("cadesplugin_echo_request", "*");
window.addEventListener("message", function (event){
if (typeof(event.data) !== "string" || !event.data.match("cadesplugin_loaded"))
@ -5442,6 +5860,7 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) {
return;
if(isFireFox)
{
if (!isFireFoxExtensionLoaded)
show_firefox_missing_extension_dialog();
}
plugin_resolved = 1;
@ -5534,7 +5953,7 @@ exports._parseCertInfo = function (tagsTranslations, rawInfo) {
};
//Export
cadesplugin.JSModuleVersion = "2.3.1";
cadesplugin.JSModuleVersion = "2.3.2";
cadesplugin.async_spawn = async_spawn;
cadesplugin.set = set_pluginObject;
cadesplugin.set_log_level = set_log_level;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
export declare const _getCadesContainerCert: (thumbprint: string) => Promise<any>;

7
dist/helpers/_getCadesUserCert.d.ts vendored Normal file
View File

@ -0,0 +1,7 @@
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
export declare const _getCadesUserCert: (thumbprint: string) => Promise<any>;

8
lib/api/getAllCertificates.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import { Certificate } from './certificate';
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
export declare const getAllCertificates: (resetCache?: boolean) => Promise<Certificate[]>;

View File

@ -3,6 +3,7 @@ import { Certificate } from './certificate';
* Возвращает сертификат по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @param validOnly - проверять сертификаты по дате и наличию приватного ключа
* @returns сертификат
*/
export declare const getCertificate: (thumbprint: string) => Promise<Certificate>;
export declare const getCertificate: (thumbprint: string, validOnly?: boolean) => Promise<Certificate>;

8
lib/api/getCertificates.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import { Certificate } from './certificate';
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
export declare const getCertificates: (resetCache?: boolean) => Promise<Certificate[]>;

2
lib/api/index.d.ts vendored
View File

@ -3,6 +3,8 @@ export * from './getUserCertificates';
export * from './getAllUserCertificates';
export * from './getContainerCertificates';
export * from './getAllContainerCertificates';
export * from './getCertificates';
export * from './getAllCertificates';
export * from './getSystemInfo';
export * from './isValidSystemSetup';
export * from './createXMLSignature';

View File

@ -3136,6 +3136,77 @@ exports.createXMLSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbpri
}));
/***/ }),
/***/ "./api/getAllCertificates.ts":
/*!***********************************!*\
!*** ./api/getAllCertificates.ts ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const getAllUserCertificates_1 = __webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts");
const getAllContainerCertificates_1 = __webpack_require__(/*! ./getAllContainerCertificates */ "./api/getAllContainerCertificates.ts");
let certificatesCache;
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
exports.getAllCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((resetCache = false) => __awaiter(void 0, void 0, void 0, function* () {
if (!resetCache && certificatesCache) {
return certificatesCache;
}
let availableCertificates;
try {
availableCertificates = yield getAllUserCertificates_1.getAllUserCertificates(resetCache);
}
catch (error) {
console.error(error);
availableCertificates = [];
}
try {
const containerAllCertificates = yield getAllContainerCertificates_1.getAllContainerCertificates(resetCache);
if (!availableCertificates) {
availableCertificates = containerAllCertificates;
}
else {
let containerAllCertificatesCount = containerAllCertificates.length - 1;
let foundAvailableCertificate;
while (containerAllCertificatesCount) {
foundAvailableCertificate = availableCertificates.find((cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint);
if (!foundAvailableCertificate) {
availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);
}
containerAllCertificatesCount--;
}
}
}
catch (error) {
console.error(error);
}
if (!availableCertificates) {
throw new Error('Нет доступных сертификатов');
}
certificatesCache = availableCertificates;
return certificatesCache;
}));
/***/ }),
/***/ "./api/getAllContainerCertificates.ts":
@ -3315,18 +3386,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
};
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts");
const getCertificates_1 = __webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts");
const getAllCertificates_1 = __webpack_require__(/*! ./getAllCertificates */ "./api/getAllCertificates.ts");
/**
* Возвращает сертификат по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @param validOnly - проверять сертификаты по дате и наличию приватного ключа
* @returns сертификат
*/
exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) => __awaiter(void 0, void 0, void 0, function* () {
exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint, validOnly = true) => __awaiter(void 0, void 0, void 0, function* () {
if (!thumbprint) {
throw new Error('Отпечаток не указан');
}
const availableCertificates = yield getUserCertificates_1.getUserCertificates();
let availableCertificates;
if (validOnly) {
availableCertificates = yield getCertificates_1.getCertificates();
}
else {
availableCertificates = yield getAllCertificates_1.getAllCertificates();
}
const foundCertificate = availableCertificates.find((cert) => cert.thumbprint === thumbprint);
if (!foundCertificate) {
throw new Error(`Сертификат с отпечатком: "${thumbprint}" не найден`);
@ -3335,6 +3414,77 @@ exports.getCertificate = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint)
}));
/***/ }),
/***/ "./api/getCertificates.ts":
/*!********************************!*\
!*** ./api/getCertificates.ts ***!
\********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const getUserCertificates_1 = __webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertificates.ts");
const getContainerCertificates_1 = __webpack_require__(/*! ./getContainerCertificates */ "./api/getContainerCertificates.ts");
let certificatesCache;
/**
* Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе
*
* @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов
* @returns список сертификатов
*/
exports.getCertificates = _afterPluginsLoaded_1._afterPluginsLoaded((resetCache = false) => __awaiter(void 0, void 0, void 0, function* () {
if (!resetCache && certificatesCache) {
return certificatesCache;
}
let availableCertificates;
try {
availableCertificates = yield getUserCertificates_1.getUserCertificates(resetCache);
}
catch (error) {
console.error(error);
availableCertificates = [];
}
try {
const containerCertificates = yield getContainerCertificates_1.getContainerCertificates(resetCache);
if (!availableCertificates) {
availableCertificates = containerCertificates;
}
else {
let containerCertificatesCount = containerCertificates.length - 1;
let foundAvailableCertificate;
while (containerCertificatesCount) {
foundAvailableCertificate = availableCertificates.find((cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint);
if (!foundAvailableCertificate) {
availableCertificates.push(containerCertificates[containerCertificatesCount]);
}
containerCertificatesCount--;
}
}
}
catch (error) {
console.error(error);
}
if (!availableCertificates) {
throw new Error('Нет доступных сертификатов');
}
certificatesCache = availableCertificates;
return certificatesCache;
}));
/***/ }),
/***/ "./api/getContainerCertificates.ts":
@ -3661,6 +3811,8 @@ __export(__webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertific
__export(__webpack_require__(/*! ./getAllUserCertificates */ "./api/getAllUserCertificates.ts"));
__export(__webpack_require__(/*! ./getContainerCertificates */ "./api/getContainerCertificates.ts"));
__export(__webpack_require__(/*! ./getAllContainerCertificates */ "./api/getAllContainerCertificates.ts"));
__export(__webpack_require__(/*! ./getCertificates */ "./api/getCertificates.ts"));
__export(__webpack_require__(/*! ./getAllCertificates */ "./api/getAllCertificates.ts"));
__export(__webpack_require__(/*! ./getSystemInfo */ "./api/getSystemInfo.ts"));
__export(__webpack_require__(/*! ./isValidSystemSetup */ "./api/isValidSystemSetup.ts"));
__export(__webpack_require__(/*! ./createXMLSignature */ "./api/createXMLSignature.ts"));
@ -4203,17 +4355,136 @@ exports._generateCadesFn = (callback) => {
"use strict";
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) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
const _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
const _getCadesUserCert_1 = __webpack_require__(/*! ./_getCadesUserCert */ "./helpers/_getCadesUserCert.ts");
const _getCadesContainerCert_1 = __webpack_require__(/*! ./_getCadesContainerCert */ "./helpers/_getCadesContainerCert.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) => {
exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) => __awaiter(void 0, void 0, void 0, function* () {
let cadesCertificate;
try {
cadesCertificate = yield _getCadesUserCert_1._getCadesUserCert(thumbprint);
}
catch (error) {
console.log(error);
cadesCertificate = yield _getCadesContainerCert_1._getCadesContainerCert(thumbprint);
}
return cadesCertificate;
}));
/***/ }),
/***/ "./helpers/_getCadesContainerCert.ts":
/*!*******************************************!*\
!*** ./helpers/_getCadesContainerCert.ts ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
const _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesContainerCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) => {
const { cadesplugin } = window;
return eval(_generateCadesFn_1._generateCadesFn(function _getCadesCert() {
let cadesStore;
try {
cadesStore = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.Store');
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');
}
if (!cadesStore) {
throw new Error('Не удалось получить доступ к хранилищу сертификатов');
}
try {
void (_generateCadesFn_1.__cadesAsyncToken__ +
cadesStore.Open(cadesplugin.CADESCOM_CONTAINER_STORE, cadesplugin.CAPICOM_MY_STORE, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED));
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища закрытого ключа');
}
let cadesCertificateList;
let certificatesCount;
try {
cadesCertificateList = _generateCadesFn_1.__cadesAsyncToken__ + cadesStore.Certificates;
certificatesCount = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища закрытого ключа');
}
if (!certificatesCount) {
throw new Error('Нет доступных сертификатов в хранилище закрытого ключа');
}
let cadesCertificate;
try {
cadesCertificateList =
_generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
const count = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
if (!count) {
throw new Error(`Сертификат с отпечатком: "${thumbprint}" не найден в хранилище закрытого ключа`);
}
cadesCertificate = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Item(1);
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа');
}
cadesStore.Close();
return cadesCertificate;
}));
});
/***/ }),
/***/ "./helpers/_getCadesUserCert.ts":
/*!**************************************!*\
!*** ./helpers/_getCadesUserCert.ts ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const _afterPluginsLoaded_1 = __webpack_require__(/*! ./_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ./_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
const _generateCadesFn_1 = __webpack_require__(/*! ./_generateCadesFn */ "./helpers/_generateCadesFn.ts");
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
exports._getCadesUserCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) => {
const { cadesplugin } = window;
return eval(_generateCadesFn_1._generateCadesFn(function _getCadesCert() {
let cadesStore;
@ -4233,7 +4504,7 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) =
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища пользователя');
}
let cadesCertificateList;
let certificatesCount;
@ -4243,10 +4514,10 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) =
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя');
}
if (!certificatesCount) {
throw new Error('Нет доступных сертификатов');
throw new Error('Нет доступных сертификатов в хранилище пользователя');
}
let cadesCertificate;
try {
@ -4254,13 +4525,13 @@ exports._getCadesCert = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint) =
_generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
const count = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Count;
if (!count) {
throw new Error(`Сертификат с отпечатком: "${thumbprint}" не найден`);
throw new Error(`Сертификат с отпечатком: "${thumbprint}" не найден в хранилище пользователя`);
}
cadesCertificate = _generateCadesFn_1.__cadesAsyncToken__ + cadesCertificateList.Item(1);
}
catch (error) {
console.error(error);
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата');
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя');
}
cadesStore.Close();
return cadesCertificate;
@ -4412,6 +4683,7 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
var isYandex = 0;
var canPromise = !!window.Promise;
var cadesplugin_loaded_event_recieved = false;
var isFireFoxExtensionLoaded = false;
var cadesplugin;
if(canPromise)
@ -4635,6 +4907,14 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
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(generatorFunc) {
@ -4881,10 +5161,17 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
}
}
function firefox_or_safari_nmcades_onload() {
if (window.cadesplugin_extension_loaded_callback)
window.cadesplugin_extension_loaded_callback();
isFireFoxExtensionLoaded = true;
cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);
}
function nmcades_api_onload () {
function nmcades_api_onload() {
if (!isIE() && !isFireFox && !isSafari) {
if (window.cadesplugin_extension_loaded_callback)
window.cadesplugin_extension_loaded_callback();
}
window.postMessage("cadesplugin_echo_request", "*");
window.addEventListener("message", function (event){
if (typeof(event.data) !== "string" || !event.data.match("cadesplugin_loaded"))
@ -4999,6 +5286,7 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
return;
if(isFireFox)
{
if (!isFireFoxExtensionLoaded)
show_firefox_missing_extension_dialog();
}
plugin_resolved = 1;
@ -5091,7 +5379,7 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
};
//Export
cadesplugin.JSModuleVersion = "2.3.1";
cadesplugin.JSModuleVersion = "2.3.2";
cadesplugin.async_spawn = async_spawn;
cadesplugin.set = set_pluginObject;
cadesplugin.set_log_level = set_log_level;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
export declare const _getCadesContainerCert: (thumbprint: string) => Promise<any>;

7
lib/helpers/_getCadesUserCert.d.ts vendored Normal file
View File

@ -0,0 +1,7 @@
/**
* Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя
*
* @param thumbprint - отпечаток сертификата
* @returns сертификат в формате Cades
*/
export declare const _getCadesUserCert: (thumbprint: string) => Promise<any>;