mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2024-11-24 00:55:00 +03:00
2.1.0
This commit is contained in:
parent
4739fe3b9f
commit
29c27119de
98
CHANGELOG.md
98
CHANGELOG.md
@ -1,98 +0,0 @@
|
||||
2.0.5 / 2020-07-04
|
||||
==================
|
||||
|
||||
* Улучшение: Дополнены словари для расшифровки данных о сертификате
|
||||
|
||||
2.0.4 / 2020-04-05
|
||||
==================
|
||||
|
||||
* Улучшение: Исправлены ссылки в README.md
|
||||
* Улучшение: Добавлен файл с лицензией
|
||||
* Улучшение: Обновлены версии пакета в примерах
|
||||
|
||||
2.0.3 / 2020-03-29
|
||||
==================
|
||||
|
||||
* Улучшение: Дополнен README.md
|
||||
|
||||
2.0.2 / 2020-03-29
|
||||
==================
|
||||
|
||||
* Фикс: Исправлены ссылки в README.md с учетом разницы форматов Markdown между Github и NPM
|
||||
|
||||
2.0.1 / 2020-03-28
|
||||
==================
|
||||
|
||||
* Фикс: Ссылки на якоря в README.md с учетом особенностей Markdown на Github
|
||||
|
||||
2.0.0 / 2020-03-28
|
||||
==================
|
||||
|
||||
* Улучшение: Проект переписан с использованием Typescript
|
||||
* Улучшение: В Readme обновлены примеры, документация и добавлен [список изменений](README.md#Миграция-с-версии-1-на-2) для миграции с 1 на 2 версию
|
||||
|
||||
1.1.2 / 2019-12-07
|
||||
==================
|
||||
|
||||
* Фикс: Дополнена [обработка ошибок](https://github.com/vgoma/crypto-pro/issues/8)
|
||||
|
||||
1.1.1 / 2019-12-05
|
||||
==================
|
||||
|
||||
* Улучшение: Добавлены изменения из оригинального js модуля Крипто ПРО "2.1.2" [ссылка на оригинальный файл](https://www.cryptopro.ru/sites/default/files/products/cades/cadesplugin_api.js)
|
||||
|
||||
1.1.0 / 2017-12-20
|
||||
==================
|
||||
|
||||
* Улучшение: объединена кодовая база по работе с синхронной и асинхронной версии API Крипто ПРО
|
||||
|
||||
1.0.11 / 2017-06-08
|
||||
==================
|
||||
|
||||
* Улучшение: Убрана зависимость от Object.keys и Object.assign
|
||||
|
||||
1.0.10 / 2017-04-26
|
||||
==================
|
||||
|
||||
* Фикс: уточнения в README
|
||||
|
||||
1.0.9 / 2017-04-26
|
||||
==================
|
||||
|
||||
* Фикс: оформление README
|
||||
|
||||
1.0.8 / 2017-04-26
|
||||
==================
|
||||
|
||||
* Улучшение: Добавлена поддержка Firefox >= 52
|
||||
* Улучшение: Более подробный README
|
||||
|
||||
1.0.7 / 2017-01-30
|
||||
==================
|
||||
|
||||
* Улучшение: Указание отпечатка сертификата при ошибке доступа к нему
|
||||
|
||||
1.0.6 / 2017-01-30
|
||||
==================
|
||||
|
||||
* Фикс: Проброс ошибки метода получения сертификатов по цепочке промисов
|
||||
|
||||
1.0.5 / 2017-01-24
|
||||
==================
|
||||
|
||||
* Улучшение: Фиксация версий всех зависимостей
|
||||
|
||||
1.0.4 / 2017-01-20
|
||||
==================
|
||||
|
||||
* Улучшение: Добавлены изменения из оригинального js модуля Крипто ПРО "2.0.3" [ссылка на оригинальный файл](https://www.cryptopro.ru/sites/default/files/products/cades/cadesplugin_api.js)
|
||||
|
||||
1.0.3 / 2017-01-20
|
||||
==================
|
||||
|
||||
* Улучшение: Убрана попытка загрузки сразу двух расширений (для Opera и для Chrome)
|
||||
|
||||
1.0.2 / 2017-01-16
|
||||
==================
|
||||
|
||||
* Улучшение: Добавлена возможность подключать модуль напрямую из папки src/ для приложений, собираемых webpack'ом
|
@ -108,7 +108,12 @@ import { getUserCertificates, Certificate } from 'crypto-pro';
|
||||
### Методы объекта cryptoPro
|
||||
- [getUserCertificates](src/api/getUserCertificates.ts) - возвращает список [сертификатов](#api-certificate), доступных пользователю в системе
|
||||
- [getCertificate](src/api/getCertificate.ts) - возвращает [сертификат](#api-certificate) по отпечатку
|
||||
- [createSignature](src/api/createSignature.ts) - создает подпись данных
|
||||
- [createAttachedSignature](src/api/createAttachedSignature.ts) - создает совмещенную (присоединенную) подпись сообщения
|
||||
- [createDetachedSignature](src/api/createDetachedSignature.ts) - создает отсоединенную (открепленную) подпись сообщения
|
||||
- [createHash](src/api/createHash.ts) - создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
- [createSignature](src/api/createSignature.ts) - создает подпись сообщения
|
||||
> Является устаревшим и будет убран из будущих версий.
|
||||
Используйте "createAttachedSignature" и "createDetachedSignature".
|
||||
- [getSystemInfo](src/api/getSystemInfo.ts) - возвращает информацию о CSP и плагине
|
||||
- [isValidSystemSetup](src/api/isValidSystemSetup.ts) - возвращает флаг корректности настроек ЭП на машине
|
||||
|
||||
|
4
dist/api/createHash.d.ts
vendored
4
dist/api/createHash.d.ts
vendored
@ -1,9 +1,9 @@
|
||||
/**
|
||||
* Создает хэш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* 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)
|
||||
*
|
||||
* @param unencryptedMessage - сообщение для хеширования
|
||||
*
|
||||
* @returns хэш
|
||||
* @returns хеш
|
||||
*/
|
||||
export declare const createHash: (unencryptedMessage: string | ArrayBuffer) => Promise<string>;
|
||||
|
2
dist/api/createSignature.d.ts
vendored
2
dist/api/createSignature.d.ts
vendored
@ -2,7 +2,7 @@
|
||||
* Создает подпись base64 строки по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хэш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param detachedSignature = true - тип подписи открепленная (true) / присоединенная (false)
|
||||
* @returns подпись
|
||||
*/
|
||||
|
8
dist/api/signHash.d.ts
vendored
8
dist/api/signHash.d.ts
vendored
@ -1,8 +0,0 @@
|
||||
/**
|
||||
* Создает подпись хеша по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хэш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @returns подпись
|
||||
*/
|
||||
export declare const signHash: (thumbprint: string, messageHash: string) => Promise<string>;
|
6
dist/crypto-pro.d.ts
vendored
6
dist/crypto-pro.d.ts
vendored
@ -1 +1,7 @@
|
||||
// Type definitions for crypto-pro 2.1.0
|
||||
// Project: crypto-pro
|
||||
// Definitions by: Vitalii Goma https://github.com/vgoma
|
||||
|
||||
export as namespace cryptoPro;
|
||||
|
||||
export * from './api';
|
||||
|
22
dist/crypto-pro.js
vendored
22
dist/crypto-pro.js
vendored
@ -2904,10 +2904,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts");
|
||||
var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
|
||||
var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
|
||||
var _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts");
|
||||
var _getCadesCert_1 = __webpack_require__(/*! ../helpers/_getCadesCert */ "./helpers/_getCadesCert.ts");
|
||||
var _getDateObj_1 = __webpack_require__(/*! ../helpers/_getDateObj */ "./helpers/_getDateObj.ts");
|
||||
/**
|
||||
* Создает отсоединенную подпись хеша по отпечатку сертификата
|
||||
*
|
||||
@ -2925,10 +2927,12 @@ exports.createDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(func
|
||||
case 1:
|
||||
cadesCertificate = _a.sent();
|
||||
return [2 /*return*/, eval(_generateCadesFn_1._generateCadesFn(function createDetachedSignature() {
|
||||
var cadesAttrs;
|
||||
var cadesHashedData;
|
||||
var cadesSignedData;
|
||||
var cadesSigner;
|
||||
try {
|
||||
cadesAttrs = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CADESCOM.CPAttribute');
|
||||
cadesHashedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.HashedData');
|
||||
cadesSignedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CadesSignedData');
|
||||
cadesSigner = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CPSigner');
|
||||
@ -2937,8 +2941,20 @@ exports.createDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded(func
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');
|
||||
}
|
||||
var currentTime = _getDateObj_1._getDateObj(new Date());
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');
|
||||
}
|
||||
var cadesAuthAttrs;
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));
|
||||
cadesAuthAttrs = _generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));
|
||||
}
|
||||
catch (error) {
|
||||
@ -3023,12 +3039,12 @@ var _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoad
|
||||
var _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
|
||||
var _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts");
|
||||
/**
|
||||
* Создает хэш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* 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)
|
||||
*
|
||||
* @param unencryptedMessage - сообщение для хеширования
|
||||
*
|
||||
* @returns хэш
|
||||
* @returns хеш
|
||||
*/
|
||||
exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded(function (unencryptedMessage) { return __awaiter(void 0, void 0, void 0, function () {
|
||||
var cadesplugin;
|
||||
@ -3127,7 +3143,7 @@ var _getDateObj_1 = __webpack_require__(/*! ../helpers/_getDateObj */ "./helpers
|
||||
* Создает подпись base64 строки по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хэш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param detachedSignature = true - тип подписи открепленная (true) / присоединенная (false)
|
||||
* @returns подпись
|
||||
*/
|
||||
|
2
dist/crypto-pro.js.map
vendored
2
dist/crypto-pro.js.map
vendored
File diff suppressed because one or more lines are too long
6
dist/crypto-pro.min.js
vendored
6
dist/crypto-pro.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/crypto-pro.min.js.map
vendored
2
dist/crypto-pro.min.js.map
vendored
File diff suppressed because one or more lines are too long
6
examples/angular/package-lock.json
generated
6
examples/angular/package-lock.json
generated
@ -3308,9 +3308,9 @@
|
||||
}
|
||||
},
|
||||
"crypto-pro": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.0.5.tgz",
|
||||
"integrity": "sha512-YZbVNt9ZmE75H97gdqS2ZGW8xnuHxdvQxLH/SmMQIizIBLmMIylOhY3HvgEUxnrIkL64/m6vrG5H2w7pGTb17Q=="
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.1.0.tgz",
|
||||
"integrity": "sha512-zLPX/m51fiMS6aWXZ8e8e/Lcw/8VkeIlMo0nvsdvMik6koec+UbNP+syRp07eWJEmRDb8IZLjzLGjrb0oGT64g=="
|
||||
},
|
||||
"css": {
|
||||
"version": "2.2.4",
|
||||
|
@ -21,7 +21,7 @@
|
||||
"@angular/platform-browser": "~9.0.7",
|
||||
"@angular/platform-browser-dynamic": "~9.0.7",
|
||||
"@angular/router": "~9.0.7",
|
||||
"crypto-pro": "2.0.5",
|
||||
"crypto-pro": "2.1.0",
|
||||
"rxjs": "~6.5.4",
|
||||
"tslib": "^1.10.0",
|
||||
"zone.js": "~0.10.2"
|
||||
|
6
examples/react/package-lock.json
generated
6
examples/react/package-lock.json
generated
@ -3712,9 +3712,9 @@
|
||||
}
|
||||
},
|
||||
"crypto-pro": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.0.5.tgz",
|
||||
"integrity": "sha512-YZbVNt9ZmE75H97gdqS2ZGW8xnuHxdvQxLH/SmMQIizIBLmMIylOhY3HvgEUxnrIkL64/m6vrG5H2w7pGTb17Q=="
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.1.0.tgz",
|
||||
"integrity": "sha512-zLPX/m51fiMS6aWXZ8e8e/Lcw/8VkeIlMo0nvsdvMik6koec+UbNP+syRp07eWJEmRDb8IZLjzLGjrb0oGT64g=="
|
||||
},
|
||||
"css": {
|
||||
"version": "2.2.4",
|
||||
|
@ -7,7 +7,7 @@
|
||||
"@testing-library/jest-dom": "4.2.4",
|
||||
"@testing-library/react": "9.5.0",
|
||||
"@testing-library/user-event": "7.2.1",
|
||||
"crypto-pro": "2.0.5",
|
||||
"crypto-pro": "2.1.0",
|
||||
"react": "^16.13.1",
|
||||
"react-app-polyfill": "1.0.6",
|
||||
"react-dom": "^16.13.1",
|
||||
|
6
examples/script-tag/package-lock.json
generated
6
examples/script-tag/package-lock.json
generated
@ -42,9 +42,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"crypto-pro": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.0.5.tgz",
|
||||
"integrity": "sha512-YZbVNt9ZmE75H97gdqS2ZGW8xnuHxdvQxLH/SmMQIizIBLmMIylOhY3HvgEUxnrIkL64/m6vrG5H2w7pGTb17Q=="
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-pro/-/crypto-pro-2.1.0.tgz",
|
||||
"integrity": "sha512-zLPX/m51fiMS6aWXZ8e8e/Lcw/8VkeIlMo0nvsdvMik6koec+UbNP+syRp07eWJEmRDb8IZLjzLGjrb0oGT64g=="
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
|
@ -13,6 +13,6 @@
|
||||
"symlink-dir": "3.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"crypto-pro": "2.0.5"
|
||||
"crypto-pro": "2.1.0"
|
||||
}
|
||||
}
|
||||
|
8
lib/api/createAttachedSignature.d.ts
vendored
Normal file
8
lib/api/createAttachedSignature.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Создает присоединенную подпись сообщения по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param message - подписываемое сообщение
|
||||
* @returns подпись в формате PKCS#7
|
||||
*/
|
||||
export declare const createAttachedSignature: (thumbprint: string, unencryptedMessage: string | ArrayBuffer) => Promise<string>;
|
8
lib/api/createDetachedSignature.d.ts
vendored
Normal file
8
lib/api/createDetachedSignature.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Создает отсоединенную подпись хеша по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит
|
||||
* @returns подпись в формате PKCS#7
|
||||
*/
|
||||
export declare const createDetachedSignature: (thumbprint: string, messageHash: string) => Promise<string>;
|
15
lib/api/createHash.d.ts
vendored
15
lib/api/createHash.d.ts
vendored
@ -1,18 +1,9 @@
|
||||
declare type Algorithm = 'GOST_3411' | 'GOST_3411_2012_256' | 'GOST_3411_2012_512' | 'GOST_3411_HMAC' | 'GOST_3411_2012_256_HMAC' | 'GOST_3411_2012_512_HMAC';
|
||||
/**
|
||||
* Создает хэш сообщения по ГОСТ Р 34.11
|
||||
* Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* 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)
|
||||
*
|
||||
* @param unencryptedMessage - сообщение для хеширования
|
||||
* @param algorithm - один из алгоритмов хеширования:
|
||||
* GOST_3411
|
||||
* GOST_3411_2012_256
|
||||
* GOST_3411_2012_512 - по умолчанию
|
||||
* GOST_3411_HMAC
|
||||
* GOST_3411_2012_256_HMAC
|
||||
* GOST_3411_2012_512_HMAC
|
||||
*
|
||||
* @returns хэш
|
||||
* @returns хеш
|
||||
*/
|
||||
export declare const createHash: (unencryptedMessage: string | ArrayBuffer, algorithm?: Algorithm) => Promise<string>;
|
||||
export {};
|
||||
export declare const createHash: (unencryptedMessage: string | ArrayBuffer) => Promise<string>;
|
||||
|
2
lib/api/createSignature.d.ts
vendored
2
lib/api/createSignature.d.ts
vendored
@ -2,7 +2,7 @@
|
||||
* Создает подпись base64 строки по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хэш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param detachedSignature = true - тип подписи открепленная (true) / присоединенная (false)
|
||||
* @returns подпись
|
||||
*/
|
||||
|
2
lib/api/index.d.ts
vendored
2
lib/api/index.d.ts
vendored
@ -3,5 +3,7 @@ export * from './getUserCertificates';
|
||||
export * from './getSystemInfo';
|
||||
export * from './isValidSystemSetup';
|
||||
export * from './createSignature';
|
||||
export * from './createDetachedSignature';
|
||||
export * from './createAttachedSignature';
|
||||
export * from './createHash';
|
||||
export * from './certificate';
|
||||
|
2
lib/crypto-pro.d.ts
vendored
2
lib/crypto-pro.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
// Type definitions for crypto-pro 2.0.5
|
||||
// Type definitions for crypto-pro 2.1.0
|
||||
// Project: crypto-pro
|
||||
// Definitions by: Vitalii Goma https://github.com/vgoma
|
||||
|
||||
|
@ -2611,6 +2611,196 @@ exports.isValid = _afterPluginsLoaded_1._afterPluginsLoaded(function () {
|
||||
});
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./api/createAttachedSignature.ts":
|
||||
/*!****************************************!*\
|
||||
!*** ./api/createAttachedSignature.ts ***!
|
||||
\****************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(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) {
|
||||
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 constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts");
|
||||
const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
|
||||
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
|
||||
const _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts");
|
||||
const _getCadesCert_1 = __webpack_require__(/*! ../helpers/_getCadesCert */ "./helpers/_getCadesCert.ts");
|
||||
const _getDateObj_1 = __webpack_require__(/*! ../helpers/_getDateObj */ "./helpers/_getDateObj.ts");
|
||||
/**
|
||||
* Создает присоединенную подпись сообщения по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param message - подписываемое сообщение
|
||||
* @returns подпись в формате PKCS#7
|
||||
*/
|
||||
exports.createAttachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint, unencryptedMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = yield _getCadesCert_1._getCadesCert(thumbprint);
|
||||
return eval(_generateCadesFn_1._generateCadesFn(function createAttachedSignature() {
|
||||
let cadesAttrs;
|
||||
let cadesSignedData;
|
||||
let cadesSigner;
|
||||
try {
|
||||
cadesAttrs = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CADESCOM.CPAttribute');
|
||||
cadesSignedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CadesSignedData');
|
||||
cadesSigner = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CPSigner');
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');
|
||||
}
|
||||
const currentTime = _getDateObj_1._getDateObj(new Date());
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');
|
||||
}
|
||||
let messageBase64;
|
||||
try {
|
||||
messageBase64 = Buffer.from(unencryptedMessage).toString('base64');
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error('Ошибка при преобразовании сообщения в Base64');
|
||||
}
|
||||
let cadesAuthAttrs;
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));
|
||||
cadesAuthAttrs = _generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSignedData.propset_Content(messageBase64));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');
|
||||
}
|
||||
let signature;
|
||||
try {
|
||||
signature = _generateCadesFn_1.__cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');
|
||||
}
|
||||
return signature;
|
||||
}));
|
||||
}));
|
||||
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/buffer/index.js */ "../node_modules/buffer/index.js").Buffer))
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./api/createDetachedSignature.ts":
|
||||
/*!****************************************!*\
|
||||
!*** ./api/createDetachedSignature.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 constants_1 = __webpack_require__(/*! ../constants */ "./constants/index.ts");
|
||||
const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLoaded */ "./helpers/_afterPluginsLoaded.ts");
|
||||
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
|
||||
const _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts");
|
||||
const _getCadesCert_1 = __webpack_require__(/*! ../helpers/_getCadesCert */ "./helpers/_getCadesCert.ts");
|
||||
const _getDateObj_1 = __webpack_require__(/*! ../helpers/_getDateObj */ "./helpers/_getDateObj.ts");
|
||||
/**
|
||||
* Создает отсоединенную подпись хеша по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит
|
||||
* @returns подпись в формате PKCS#7
|
||||
*/
|
||||
exports.createDetachedSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint, messageHash) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = yield _getCadesCert_1._getCadesCert(thumbprint);
|
||||
return eval(_generateCadesFn_1._generateCadesFn(function createDetachedSignature() {
|
||||
let cadesAttrs;
|
||||
let cadesHashedData;
|
||||
let cadesSignedData;
|
||||
let cadesSigner;
|
||||
try {
|
||||
cadesAttrs = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CADESCOM.CPAttribute');
|
||||
cadesHashedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.HashedData');
|
||||
cadesSignedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CadesSignedData');
|
||||
cadesSigner = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.CPSigner');
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');
|
||||
}
|
||||
const currentTime = _getDateObj_1._getDateObj(new Date());
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Name(constants_1.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');
|
||||
}
|
||||
let cadesAuthAttrs;
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));
|
||||
cadesAuthAttrs = _generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');
|
||||
}
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ +
|
||||
cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');
|
||||
}
|
||||
let signature;
|
||||
try {
|
||||
signature =
|
||||
_generateCadesFn_1.__cadesAsyncToken__ +
|
||||
cadesSignedData.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
throw new Error(_extractMeaningfulErrorMessage_1._extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');
|
||||
}
|
||||
return signature;
|
||||
}));
|
||||
}));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./api/createHash.ts":
|
||||
@ -2636,21 +2826,14 @@ const _afterPluginsLoaded_1 = __webpack_require__(/*! ../helpers/_afterPluginsLo
|
||||
const _extractMeaningfulErrorMessage_1 = __webpack_require__(/*! ../helpers/_extractMeaningfulErrorMessage */ "./helpers/_extractMeaningfulErrorMessage.ts");
|
||||
const _generateCadesFn_1 = __webpack_require__(/*! ../helpers/_generateCadesFn */ "./helpers/_generateCadesFn.ts");
|
||||
/**
|
||||
* Создает хэш сообщения по ГОСТ Р 34.11
|
||||
* Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
* 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)
|
||||
*
|
||||
* @param unencryptedMessage - сообщение для хеширования
|
||||
* @param algorithm - один из алгоритмов хеширования:
|
||||
* GOST_3411
|
||||
* GOST_3411_2012_256
|
||||
* GOST_3411_2012_512 - по умолчанию
|
||||
* GOST_3411_HMAC
|
||||
* GOST_3411_2012_256_HMAC
|
||||
* GOST_3411_2012_512_HMAC
|
||||
*
|
||||
* @returns хэш
|
||||
* @returns хеш
|
||||
*/
|
||||
exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded((unencryptedMessage, algorithm = 'GOST_3411_2012_512') => __awaiter(void 0, void 0, void 0, function* () {
|
||||
exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded((unencryptedMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
const { cadesplugin } = window;
|
||||
return eval(_generateCadesFn_1._generateCadesFn(function createHash() {
|
||||
const cadesHashedData = _generateCadesFn_1.__cadesAsyncToken__ + _generateCadesFn_1.__createCadesPluginObject__('CAdESCOM.HashedData');
|
||||
@ -2665,7 +2848,7 @@ exports.createHash = _afterPluginsLoaded_1._afterPluginsLoaded((unencryptedMessa
|
||||
}
|
||||
try {
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ +
|
||||
cadesHashedData.propset_Algorithm(cadesplugin['CADESCOM_HASH_ALGORITHM_CP_' + algorithm]));
|
||||
cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));
|
||||
void (_generateCadesFn_1.__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));
|
||||
}
|
||||
@ -2717,11 +2900,15 @@ const _getDateObj_1 = __webpack_require__(/*! ../helpers/_getDateObj */ "./helpe
|
||||
* Создает подпись base64 строки по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хэш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11
|
||||
* @param detachedSignature = true - тип подписи открепленная (true) / присоединенная (false)
|
||||
* @returns подпись
|
||||
*/
|
||||
exports.createSignature = _afterPluginsLoaded_1._afterPluginsLoaded((thumbprint, messageHash, detachedSignature = true) => __awaiter(void 0, void 0, void 0, function* () {
|
||||
console.warn([
|
||||
'cryptoPro: Метод "createSignature" является устаревшим и будет убран из будущих версий.',
|
||||
'Используйте "createAttachedSignature" и "createDetachedSignature".',
|
||||
].join('\n'));
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = yield _getCadesCert_1._getCadesCert(thumbprint);
|
||||
return eval(_generateCadesFn_1._generateCadesFn(function createSignature() {
|
||||
@ -2972,6 +3159,8 @@ __export(__webpack_require__(/*! ./getUserCertificates */ "./api/getUserCertific
|
||||
__export(__webpack_require__(/*! ./getSystemInfo */ "./api/getSystemInfo.ts"));
|
||||
__export(__webpack_require__(/*! ./isValidSystemSetup */ "./api/isValidSystemSetup.ts"));
|
||||
__export(__webpack_require__(/*! ./createSignature */ "./api/createSignature.ts"));
|
||||
__export(__webpack_require__(/*! ./createDetachedSignature */ "./api/createDetachedSignature.ts"));
|
||||
__export(__webpack_require__(/*! ./createAttachedSignature */ "./api/createAttachedSignature.ts"));
|
||||
__export(__webpack_require__(/*! ./createHash */ "./api/createHash.ts"));
|
||||
__export(__webpack_require__(/*! ./certificate */ "./api/certificate/index.ts"));
|
||||
|
||||
@ -4438,4 +4627,4 @@ exports._parseCertInfo = (tagsTranslations, rawInfo) => {
|
||||
|
||||
/******/ });
|
||||
});
|
||||
//# sourceMappingURL=crypto-pro.js.map
|
||||
//# sourceMappingURL=crypto-pro.js.map
|
File diff suppressed because one or more lines are too long
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "crypto-pro",
|
||||
"version": "2.0.5",
|
||||
"version": "2.1.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "crypto-pro",
|
||||
"version": "2.0.5",
|
||||
"version": "2.1.0",
|
||||
"description": "API для взаимодействия с КриптоПро",
|
||||
"main": "./lib/crypto-pro.js",
|
||||
"types": "./lib/crypto-pro.d.ts",
|
||||
|
Loading…
Reference in New Issue
Block a user