@astral/cryptopro-cades
Advanced tools
Comparing version 1.9.0 to 1.9.1
@@ -8,5 +8,6 @@ import { STORE_TYPE } from '../constants'; | ||
* @param {resetCache} resetCache перезапросить данные, игнорируя закэшированные данные. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .сертификаты. | ||
*/ | ||
export declare function getCertificates(storeType?: STORE_TYPE, resetCache?: boolean): Promise<Certificate[]>; | ||
export declare function getCertificates(storeType?: STORE_TYPE, resetCache?: boolean, checkPrivateKey?: boolean): Promise<Certificate[]>; |
@@ -54,6 +54,8 @@ "use strict"; | ||
* @param {IStore} store Хранилище | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов. | ||
*/ | ||
function getCertificatesFromStore(store) { | ||
function getCertificatesFromStore(store, checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -91,3 +93,3 @@ var errorMessage, result, certificates, certificatesCount, err_1, certBin, cert, err_2; | ||
certBin = _a.sent(); | ||
return [4 /*yield*/, Certificate_1.Certificate.CreateFrom(certBin)]; | ||
return [4 /*yield*/, Certificate_1.Certificate.CreateFrom(certBin, checkPrivateKey)]; | ||
case 8: | ||
@@ -113,6 +115,8 @@ cert = _a.sent(); | ||
* Получить сертификаты из USB токенов. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов из USB токенов. | ||
*/ | ||
function ReadCertificatesFromUsbToken() { | ||
function ReadCertificatesFromUsbToken(checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -130,3 +134,3 @@ var store; | ||
store = _a.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 3: return [2 /*return*/, _a.sent()]; | ||
@@ -144,6 +148,8 @@ case 4: return [4 /*yield*/, (store === null || store === void 0 ? void 0 : store.Close())]; | ||
* Получить сертификаты из реестра. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов из реестра. | ||
*/ | ||
function ReadCertificatesFromRegistry() { | ||
function ReadCertificatesFromRegistry(checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -161,3 +167,3 @@ var store; | ||
store = _a.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 3: return [2 /*return*/, _a.sent()]; | ||
@@ -178,9 +184,11 @@ case 4: return [4 /*yield*/, (store === null || store === void 0 ? void 0 : store.Close())]; | ||
* @param {resetCache} resetCache перезапросить данные, игнорируя закэшированные данные. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .сертификаты. | ||
*/ | ||
function getCertificates(storeType, resetCache) { | ||
function getCertificates(storeType, resetCache, checkPrivateKey) { | ||
var _this = this; | ||
if (storeType === void 0) { storeType = constants_1.STORE_TYPE.ALL; } | ||
if (resetCache === void 0) { resetCache = false; } | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
if (certificatesCache[storeType] && !resetCache) { | ||
@@ -209,3 +217,3 @@ return Promise.resolve(certificatesCache[storeType]); | ||
return [3 /*break*/, 9]; | ||
case 2: return [4 /*yield*/, ReadCertificatesFromUsbToken()]; | ||
case 2: return [4 /*yield*/, ReadCertificatesFromUsbToken(checkPrivateKey)]; | ||
case 3: | ||
@@ -215,3 +223,3 @@ result = _b.sent(); | ||
return [3 /*break*/, 16]; | ||
case 4: return [4 /*yield*/, ReadCertificatesFromRegistry()]; | ||
case 4: return [4 /*yield*/, ReadCertificatesFromRegistry(checkPrivateKey)]; | ||
case 5: | ||
@@ -221,7 +229,7 @@ result = _b.sent(); | ||
return [3 /*break*/, 16]; | ||
case 6: return [4 /*yield*/, ReadCertificatesFromUsbToken()]; | ||
case 6: return [4 /*yield*/, ReadCertificatesFromUsbToken(checkPrivateKey)]; | ||
case 7: | ||
usbTokenCertificates = _b.sent(); | ||
logData.push({ storeType: 'usb', usbTokenCertificates: usbTokenCertificates }); | ||
return [4 /*yield*/, ReadCertificatesFromRegistry()]; | ||
return [4 /*yield*/, ReadCertificatesFromRegistry(checkPrivateKey)]; | ||
case 8: | ||
@@ -244,3 +252,3 @@ certificatesFromRegistry = _b.sent(); | ||
store = _b.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 12: | ||
@@ -247,0 +255,0 @@ result = _b.sent(); |
@@ -0,1 +1,2 @@ | ||
import { CADESCOM_CADES_TYPE } from '../constants'; | ||
import type { ICertificate } from '../types'; | ||
@@ -10,5 +11,6 @@ import { Certificate } from '../Certificate'; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export declare function sign(certificate: ICertificate | Certificate, data: ArrayBuffer | string, detach?: boolean, includeCertChain?: boolean, doNotValidate?: boolean): Promise<string>; | ||
export declare function sign(certificate: ICertificate | Certificate, data: ArrayBuffer | string, detach?: boolean, includeCertChain?: boolean, doNotValidate?: boolean, cadesType?: CADESCOM_CADES_TYPE): Promise<string>; |
@@ -57,6 +57,7 @@ "use strict"; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
function sign(certificate, data, detach, includeCertChain, doNotValidate) { | ||
function sign(certificate, data, detach, includeCertChain, doNotValidate, cadesType) { | ||
var _this = this; | ||
@@ -66,2 +67,3 @@ if (detach === void 0) { detach = true; } | ||
if (doNotValidate === void 0) { doNotValidate = false; } | ||
if (cadesType === void 0) { cadesType = constants_1.CADESCOM_CADES_TYPE.CADESCOM_CADES_BES; } | ||
return (0, afterPluginLoaded_1.afterPluginLoaded)(function () { return __awaiter(_this, void 0, void 0, function () { | ||
@@ -143,3 +145,3 @@ var logData, errorMessage, errorMessage, base64String, cert, errorMessage, signer, signedData, error_1, signResult, error_2, error_3; | ||
_a.trys.push([13, 15, , 16]); | ||
return [4 /*yield*/, (0, unwrap_1.unwrap)(signedData.SignCades(signer, constants_1.CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, detach))]; | ||
return [4 /*yield*/, (0, unwrap_1.unwrap)(signedData.SignCades(signer, cadesType, detach))]; | ||
case 14: | ||
@@ -146,0 +148,0 @@ signResult = _a.sent(); |
@@ -0,1 +1,2 @@ | ||
import { CADESCOM_CADES_TYPE } from '../constants'; | ||
import type { ICertificate } from '../types'; | ||
@@ -11,5 +12,6 @@ import { Certificate } from '../Certificate'; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export declare function signHash(certificate: ICertificate | Certificate, data: ArrayBuffer | string, includeCertChain?: boolean, doNotValidate?: boolean): Promise<string>; | ||
export declare function signHash(certificate: ICertificate | Certificate, data: ArrayBuffer | string, includeCertChain?: boolean, doNotValidate?: boolean, cadesType?: CADESCOM_CADES_TYPE): Promise<string>; |
@@ -75,9 +75,11 @@ "use strict"; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
function signHash(certificate, data, includeCertChain, doNotValidate) { | ||
function signHash(certificate, data, includeCertChain, doNotValidate, cadesType) { | ||
var _this = this; | ||
if (includeCertChain === void 0) { includeCertChain = true; } | ||
if (doNotValidate === void 0) { doNotValidate = false; } | ||
if (cadesType === void 0) { cadesType = constants_1.CADESCOM_CADES_TYPE.CADESCOM_CADES_BES; } | ||
return (0, afterPluginLoaded_1.afterPluginLoaded)(function () { return __awaiter(_this, void 0, void 0, function () { | ||
@@ -161,3 +163,3 @@ var logData, errorMessage, errorMessage, hexString, cadesCert, cert, errorMessage, hashedData, signer, signedData, error_1, signResult, error_2, error_3; | ||
_a.trys.push([17, 19, , 20]); | ||
return [4 /*yield*/, (0, unwrap_1.unwrap)(signedData.SignHash(hashedData, signer, constants_1.CADESCOM_CADES_TYPE.CADESCOM_CADES_BES))]; | ||
return [4 /*yield*/, (0, unwrap_1.unwrap)(signedData.SignHash(hashedData, signer, cadesType))]; | ||
case 18: | ||
@@ -164,0 +166,0 @@ signResult = _a.sent(); |
@@ -105,6 +105,7 @@ import type { ICertificate } from './types'; | ||
* @param {ICertificate} cert исходный сертификат. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate>} распрасенный сертификат. | ||
*/ | ||
static CreateFrom(cert: ICertificate): Promise<Certificate>; | ||
static CreateFrom(cert: ICertificate, checkPrivateKey?: boolean): Promise<Certificate>; | ||
} |
@@ -149,6 +149,8 @@ "use strict"; | ||
* @param {ICertificate} cert исходный сертификат. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate>} распрасенный сертификат. | ||
*/ | ||
Certificate.CreateFrom = function (cert) { | ||
Certificate.CreateFrom = function (cert, checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -187,5 +189,6 @@ var errorMessage, certificate, _a, _b, _c, _d, _e, _f, oPrivateKey, _g, _h, error_1; | ||
_e.certificateBase64Data = _j.sent(); | ||
if (!checkPrivateKey) return [3 /*break*/, 14]; | ||
_j.label = 6; | ||
case 6: | ||
_j.trys.push([6, 11, , 12]); | ||
_j.trys.push([6, 13, , 14]); | ||
_f = certificate; | ||
@@ -206,4 +209,9 @@ return [4 /*yield*/, (0, unwrap_1.unwrap)(cert.HasPrivateKey())]; | ||
_h.providerType = _j.sent(); | ||
return [3 /*break*/, 12]; | ||
if (!certificate.hasPrivateKey) return [3 /*break*/, 12]; | ||
return [4 /*yield*/, (0, unwrap_1.unwrap)(cert.FindPrivateKey())]; | ||
case 11: | ||
_j.sent(); | ||
_j.label = 12; | ||
case 12: return [3 /*break*/, 14]; | ||
case 13: | ||
error_1 = _j.sent(); | ||
@@ -213,4 +221,4 @@ // ошибка не критична, просто создаем ошибку (в дебаге оно залогируется само) | ||
certificate.hasPrivateKey = false; | ||
return [3 /*break*/, 12]; | ||
case 12: | ||
return [3 /*break*/, 14]; | ||
case 14: | ||
(0, certificateParser_1.parseCertificate)(certificate); | ||
@@ -217,0 +225,0 @@ return [2 /*return*/, certificate]; |
@@ -8,5 +8,6 @@ import { STORE_TYPE } from '../constants'; | ||
* @param {resetCache} resetCache перезапросить данные, игнорируя закэшированные данные. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .сертификаты. | ||
*/ | ||
export declare function getCertificates(storeType?: STORE_TYPE, resetCache?: boolean): Promise<Certificate[]>; | ||
export declare function getCertificates(storeType?: STORE_TYPE, resetCache?: boolean, checkPrivateKey?: boolean): Promise<Certificate[]>; |
@@ -51,6 +51,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
* @param {IStore} store Хранилище | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов. | ||
*/ | ||
function getCertificatesFromStore(store) { | ||
function getCertificatesFromStore(store, checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -88,3 +90,3 @@ var errorMessage, result, certificates, certificatesCount, err_1, certBin, cert, err_2; | ||
certBin = _a.sent(); | ||
return [4 /*yield*/, Certificate.CreateFrom(certBin)]; | ||
return [4 /*yield*/, Certificate.CreateFrom(certBin, checkPrivateKey)]; | ||
case 8: | ||
@@ -110,6 +112,8 @@ cert = _a.sent(); | ||
* Получить сертификаты из USB токенов. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов из USB токенов. | ||
*/ | ||
function ReadCertificatesFromUsbToken() { | ||
function ReadCertificatesFromUsbToken(checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -127,3 +131,3 @@ var store; | ||
store = _a.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 3: return [2 /*return*/, _a.sent()]; | ||
@@ -141,6 +145,8 @@ case 4: return [4 /*yield*/, (store === null || store === void 0 ? void 0 : store.Close())]; | ||
* Получить сертификаты из реестра. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .Список сертификатов из реестра. | ||
*/ | ||
function ReadCertificatesFromRegistry() { | ||
function ReadCertificatesFromRegistry(checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -158,3 +164,3 @@ var store; | ||
store = _a.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 3: return [2 /*return*/, _a.sent()]; | ||
@@ -175,9 +181,11 @@ case 4: return [4 /*yield*/, (store === null || store === void 0 ? void 0 : store.Close())]; | ||
* @param {resetCache} resetCache перезапросить данные, игнорируя закэшированные данные. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate[]>} .сертификаты. | ||
*/ | ||
export function getCertificates(storeType, resetCache) { | ||
export function getCertificates(storeType, resetCache, checkPrivateKey) { | ||
var _this = this; | ||
if (storeType === void 0) { storeType = STORE_TYPE.ALL; } | ||
if (resetCache === void 0) { resetCache = false; } | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
if (certificatesCache[storeType] && !resetCache) { | ||
@@ -206,3 +214,3 @@ return Promise.resolve(certificatesCache[storeType]); | ||
return [3 /*break*/, 9]; | ||
case 2: return [4 /*yield*/, ReadCertificatesFromUsbToken()]; | ||
case 2: return [4 /*yield*/, ReadCertificatesFromUsbToken(checkPrivateKey)]; | ||
case 3: | ||
@@ -212,3 +220,3 @@ result = _b.sent(); | ||
return [3 /*break*/, 16]; | ||
case 4: return [4 /*yield*/, ReadCertificatesFromRegistry()]; | ||
case 4: return [4 /*yield*/, ReadCertificatesFromRegistry(checkPrivateKey)]; | ||
case 5: | ||
@@ -218,7 +226,7 @@ result = _b.sent(); | ||
return [3 /*break*/, 16]; | ||
case 6: return [4 /*yield*/, ReadCertificatesFromUsbToken()]; | ||
case 6: return [4 /*yield*/, ReadCertificatesFromUsbToken(checkPrivateKey)]; | ||
case 7: | ||
usbTokenCertificates = _b.sent(); | ||
logData.push({ storeType: 'usb', usbTokenCertificates: usbTokenCertificates }); | ||
return [4 /*yield*/, ReadCertificatesFromRegistry()]; | ||
return [4 /*yield*/, ReadCertificatesFromRegistry(checkPrivateKey)]; | ||
case 8: | ||
@@ -241,3 +249,3 @@ certificatesFromRegistry = _b.sent(); | ||
store = _b.sent(); | ||
return [4 /*yield*/, getCertificatesFromStore(store)]; | ||
return [4 /*yield*/, getCertificatesFromStore(store, checkPrivateKey)]; | ||
case 12: | ||
@@ -244,0 +252,0 @@ result = _b.sent(); |
@@ -0,1 +1,2 @@ | ||
import { CADESCOM_CADES_TYPE } from '../constants'; | ||
import type { ICertificate } from '../types'; | ||
@@ -10,5 +11,6 @@ import { Certificate } from '../Certificate'; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export declare function sign(certificate: ICertificate | Certificate, data: ArrayBuffer | string, detach?: boolean, includeCertChain?: boolean, doNotValidate?: boolean): Promise<string>; | ||
export declare function sign(certificate: ICertificate | Certificate, data: ArrayBuffer | string, detach?: boolean, includeCertChain?: boolean, doNotValidate?: boolean, cadesType?: CADESCOM_CADES_TYPE): Promise<string>; |
@@ -54,6 +54,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export function sign(certificate, data, detach, includeCertChain, doNotValidate) { | ||
export function sign(certificate, data, detach, includeCertChain, doNotValidate, cadesType) { | ||
var _this = this; | ||
@@ -63,2 +64,3 @@ if (detach === void 0) { detach = true; } | ||
if (doNotValidate === void 0) { doNotValidate = false; } | ||
if (cadesType === void 0) { cadesType = CADESCOM_CADES_TYPE.CADESCOM_CADES_BES; } | ||
return afterPluginLoaded(function () { return __awaiter(_this, void 0, void 0, function () { | ||
@@ -140,3 +142,3 @@ var logData, errorMessage, errorMessage, base64String, cert, errorMessage, signer, signedData, error_1, signResult, error_2, error_3; | ||
_a.trys.push([13, 15, , 16]); | ||
return [4 /*yield*/, unwrap(signedData.SignCades(signer, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, detach))]; | ||
return [4 /*yield*/, unwrap(signedData.SignCades(signer, cadesType, detach))]; | ||
case 14: | ||
@@ -143,0 +145,0 @@ signResult = _a.sent(); |
@@ -0,1 +1,2 @@ | ||
import { CADESCOM_CADES_TYPE } from '../constants'; | ||
import type { ICertificate } from '../types'; | ||
@@ -11,5 +12,6 @@ import { Certificate } from '../Certificate'; | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export declare function signHash(certificate: ICertificate | Certificate, data: ArrayBuffer | string, includeCertChain?: boolean, doNotValidate?: boolean): Promise<string>; | ||
export declare function signHash(certificate: ICertificate | Certificate, data: ArrayBuffer | string, includeCertChain?: boolean, doNotValidate?: boolean, cadesType?: CADESCOM_CADES_TYPE): Promise<string>; |
@@ -72,9 +72,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
* @param {boolean} [doNotValidate=false] - не проводить валидацию сертификатов. | ||
* @param {CADESCOM_CADES_TYPE} [cadesType=CADESCOM_CADES_TYPE.CADESCOM_CADES_BES] - тип усовершенствованной подписи (см. CADESCOM_CADES_TYPE). | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns файл подписи в кодировке Base64. | ||
*/ | ||
export function signHash(certificate, data, includeCertChain, doNotValidate) { | ||
export function signHash(certificate, data, includeCertChain, doNotValidate, cadesType) { | ||
var _this = this; | ||
if (includeCertChain === void 0) { includeCertChain = true; } | ||
if (doNotValidate === void 0) { doNotValidate = false; } | ||
if (cadesType === void 0) { cadesType = CADESCOM_CADES_TYPE.CADESCOM_CADES_BES; } | ||
return afterPluginLoaded(function () { return __awaiter(_this, void 0, void 0, function () { | ||
@@ -158,3 +160,3 @@ var logData, errorMessage, errorMessage, hexString, cadesCert, cert, errorMessage, hashedData, signer, signedData, error_1, signResult, error_2, error_3; | ||
_a.trys.push([17, 19, , 20]); | ||
return [4 /*yield*/, unwrap(signedData.SignHash(hashedData, signer, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES))]; | ||
return [4 /*yield*/, unwrap(signedData.SignHash(hashedData, signer, cadesType))]; | ||
case 18: | ||
@@ -161,0 +163,0 @@ signResult = _a.sent(); |
@@ -105,6 +105,7 @@ import type { ICertificate } from './types'; | ||
* @param {ICertificate} cert исходный сертификат. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate>} распрасенный сертификат. | ||
*/ | ||
static CreateFrom(cert: ICertificate): Promise<Certificate>; | ||
static CreateFrom(cert: ICertificate, checkPrivateKey?: boolean): Promise<Certificate>; | ||
} |
@@ -146,6 +146,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
* @param {ICertificate} cert исходный сертификат. | ||
* @param {boolean} [checkPrivateKey=true] проводить проверку наличия закрытого ключа. | ||
* @throws {CryptoError} в случае ошибки. | ||
* @returns {Promise<Certificate>} распрасенный сертификат. | ||
*/ | ||
Certificate.CreateFrom = function (cert) { | ||
Certificate.CreateFrom = function (cert, checkPrivateKey) { | ||
if (checkPrivateKey === void 0) { checkPrivateKey = true; } | ||
return __awaiter(this, void 0, void 0, function () { | ||
@@ -184,5 +186,6 @@ var errorMessage, certificate, _a, _b, _c, _d, _e, _f, oPrivateKey, _g, _h, error_1; | ||
_e.certificateBase64Data = _j.sent(); | ||
if (!checkPrivateKey) return [3 /*break*/, 14]; | ||
_j.label = 6; | ||
case 6: | ||
_j.trys.push([6, 11, , 12]); | ||
_j.trys.push([6, 13, , 14]); | ||
_f = certificate; | ||
@@ -203,4 +206,9 @@ return [4 /*yield*/, unwrap(cert.HasPrivateKey())]; | ||
_h.providerType = _j.sent(); | ||
return [3 /*break*/, 12]; | ||
if (!certificate.hasPrivateKey) return [3 /*break*/, 12]; | ||
return [4 /*yield*/, unwrap(cert.FindPrivateKey())]; | ||
case 11: | ||
_j.sent(); | ||
_j.label = 12; | ||
case 12: return [3 /*break*/, 14]; | ||
case 13: | ||
error_1 = _j.sent(); | ||
@@ -210,4 +218,4 @@ // ошибка не критична, просто создаем ошибку (в дебаге оно залогируется само) | ||
certificate.hasPrivateKey = false; | ||
return [3 /*break*/, 12]; | ||
case 12: | ||
return [3 /*break*/, 14]; | ||
case 14: | ||
parseCertificate(certificate); | ||
@@ -214,0 +222,0 @@ return [2 /*return*/, certificate]; |
@@ -7,2 +7,3 @@ import type { CAPICOM_CERT_INFO_TYPE, CAPICOM_ENCODING_TYPE } from '../../constants'; | ||
* @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_class/cpcertificate | ||
* @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_interface/icpcertificate | ||
*/ | ||
@@ -65,2 +66,6 @@ export interface ICertificate { | ||
IsValid(): WithOptionalPromise<any>; | ||
/** | ||
* Производит поиск закрытого ключа соответствующего сертификату и устанавливает ссылку на него. | ||
*/ | ||
FindPrivateKey(): WithOptionalPromise<void>; | ||
} |
@@ -10,3 +10,3 @@ { | ||
}, | ||
"version": "1.9.0", | ||
"version": "1.9.1", | ||
"author": "Astral.Soft", | ||
@@ -13,0 +13,0 @@ "license": "MIT", |
@@ -7,2 +7,3 @@ import type { CAPICOM_CERT_INFO_TYPE, CAPICOM_ENCODING_TYPE } from '../../constants'; | ||
* @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_class/cpcertificate | ||
* @see https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_interface/icpcertificate | ||
*/ | ||
@@ -65,2 +66,6 @@ export interface ICertificate { | ||
IsValid(): WithOptionalPromise<any>; | ||
/** | ||
* Производит поиск закрытого ключа соответствующего сертификату и устанавливает ссылку на него. | ||
*/ | ||
FindPrivateKey(): WithOptionalPromise<void>; | ||
} |
810632
15563