mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2025-08-26 10:42:38 +03:00
feat: signType added
This commit is contained in:
parent
c09fac36c3
commit
8c0997ba2f
201
README.md
201
README.md
@ -1,209 +1,26 @@
|
||||
[![License][license-image]][license-url]
|
||||
[![NPM version][npm-version-image]][npm-url]
|
||||
[![NPM downloads][npm-downloads-image]][downloads-url]
|
||||
[![Build Status][actions-image]][actions-url]
|
||||
|
||||
|
||||
<a name="cryptopro"></a>
|
||||
# cryptoPro
|
||||
Асинхронный JavaScript API для работы с КриптоПРО ЭЦП Browser Plug-In
|
||||
|
||||
> **Это форк проекта [vgoma/crypto-pro](https://github.com/vgoma/crypto-pro)**
|
||||
>
|
||||
> **API форка отличается от оригинала**: внимательно читайте README
|
||||
> **Является форком [crypto-pro-web/crypto-pro-js-pro](https://github.com/crypto-pro-web/crypto-pro-js)**
|
||||
|
||||
| [](https://www.chromium.org/getting-involved/download-chromium#TOC-Downloading-old-builds-of-Chrome-Chromium) | [](https://ftp.mozilla.org/pub/firefox/releases/) | [](https://www.microsoft.com/ru-ru/download/details.aspx?id=43374) | [](http://get.opera.com/ftp/pub/opera/desktop/) |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| __v45+__ с расширением [CryptoPro Extension for CAdES Browser Plug-in](https://chrome.google.com/webstore/detail/cryptopro-extension-for-c/iifchhfnnmpdbibifmljnfjhpififfog?utm_source=chrome-app-launcher-info-dialog) | __v43+__. Начиная с версии 52, с [расширением](https://www.cryptopro.ru/sites/default/files/products/cades/extensions/cryptopro_extension_for_cades_browser_plug_in-1.1.1-an+fx-windows.xpi) | __v9+__ с установленным [КриптоПро ЭЦП Browser plug-in](https://www.cryptopro.ru/products/cades/plugin) | __v40+__ с расширением [CryptoPro Extension for CAdES Browser Plug-in](https://addons.opera.com/en/extensions/details/cryptopro-extension-for-cades-browser-plug-in/) |
|
||||
## Отличия от оригинальной библиотеки:
|
||||
|
||||
## Ошибка `Параметр задан неверно. (0x80070057)`
|
||||
Если при попытке подписать сообщение с использованием PKCS#7 подписи падает такая ошибка, то читайте [этот issue](https://github.com/webmasterskaya/crypto-pro-js/issues/20)
|
||||
Методы *createAttachedSignature*, *createDetachedSignature*, *addAttachdeSignature*, *addDetachedSignature* теперь имеют параметр signType, который принимает тип усовершенствованной подписи для создания (типы [описаны тут](https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_enum/cadescom_cades_type) и ниже).
|
||||
|
||||
- [cryptoPro](#cryptopro)
|
||||
- [Зачем мне этот пакет?](#why)
|
||||
- [Установка](#install)
|
||||
- [API](#api)
|
||||
- [Методы объекта cryptoPro](#api-cryptopro)
|
||||
- [Методы объекта сертификата](#api-certificate)
|
||||
- [Поддерживаемые СКЗИ](#supported-cist)
|
||||
- [Примеры](#examples)
|
||||
- [Тэг script (UMD)](#example-script-tag)
|
||||
- [Тем, кто хочет помочь](#developers)
|
||||
- [Запуск режима разработки](#dev-mode)
|
||||
- [Запуск тестов](#tests-execution)
|
||||
- [Проверка пакета перед публикацией в NPM](#final-check)
|
||||
- [Лицензия](#lisense)
|
||||
Оригинальная библиотека создаёт подпись только в формате PKCS7. Эта может создавать подпись любого переданного типа - CAdes BES, CAdES T, CAdES-X Long Type 1, PKCS7.
|
||||
|
||||
<a name="why"></a>
|
||||
## Зачем мне этот пакет?
|
||||
КриптоПРО ЭЦП Browser Plug-In доступен в разных браузерах в двух версиях.
|
||||
Асинхронной (в современных браузерах) и синхронной (в браузерах постарше).
|
||||
С помощью этого пакета можно не писать реализацию под каждую версию плагина дважды.
|
||||
Тип по-умолчанию - PKCS7.
|
||||
|
||||
<a name="install"></a>
|
||||
## Установка
|
||||
Для NPM:
|
||||
```bash
|
||||
npm install crypto-pro-js
|
||||
```
|
||||
### Версионность
|
||||
|
||||
Для Yarn:
|
||||
```bash
|
||||
yarn add crypto-pro-js
|
||||
```
|
||||
Пакет основан на версии 2.3.3 пакета [crypto-pro-web/crypto-pro-js-pro](https://github.com/crypto-pro-web/crypto-pro-js)
|
||||
|
||||
Для Bower:
|
||||
```bash
|
||||
bower install webmasterskaya/crypto-pro-js
|
||||
```
|
||||
|
||||
Подключение пакета как UMD модуля через тэг script:
|
||||
```html
|
||||
<script src="crypto-pro-js/dist/crypto-pro.min.js"></script>
|
||||
<script>
|
||||
window.cryptoPro.getUserCertificates()
|
||||
.then(function (certificates) {
|
||||
//...
|
||||
})
|
||||
.catch(function (error) {
|
||||
//...
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
Подключение пакета как ES модуля с Typescript или JavaScript:
|
||||
```typescript
|
||||
import { getUserCertificates, Certificate } from 'crypto-pro-js';
|
||||
|
||||
(async () => {
|
||||
let certificates: Certificate[];
|
||||
|
||||
try {
|
||||
certificates = await getUserCertificates();
|
||||
} catch(error) {
|
||||
// ...
|
||||
}
|
||||
})();
|
||||
```
|
||||
|
||||
Список требуемых полифиллов (если необходимы, подключаются самостоятельно):
|
||||
- Promise
|
||||
- Array.prototype.find
|
||||
|
||||
<a name="api"></a>
|
||||
## API
|
||||
|
||||
<a name="api-cryptopro"></a>
|
||||
### Методы объекта cryptoPro
|
||||
- [getUserCertificates](src/api/getUserCertificates.ts) - возвращает список [сертификатов](#api-certificate), доступных пользователю в системе
|
||||
- [getAllUserCertificates](src/api/getAllUserCertificates.ts) - возвращает список [сертификатов](#api-certificate), доступных пользователю в системе, в том числе просроченные и без закрытого ключа
|
||||
- [getContainerCertificates](src/api/getContainerCertificates.ts) - возвращает список [сертификатов](#api-certificate), из закрытых ключей и/или сертификаты не установленные всистеме*
|
||||
- [getAllContainerCertificates](src/api/getAllContainerCertificates.ts) - возвращает список [сертификатов](#api-certificate), из закрытых ключей и/или сертификаты не установленные всистеме*, в том числе просроченные и без закрытого ключа
|
||||
- [getCertificate](src/api/getCertificate.ts) - возвращает [сертификат](#api-certificate) по отпечатку
|
||||
- [createAttachedSignature](src/api/createAttachedSignature.ts) - создает совмещенную (присоединенную) подпись сообщения
|
||||
- [createDetachedSignature](src/api/createDetachedSignature.ts) - создает отсоединенную (открепленную) подпись сообщения
|
||||
- [addAttachedSignature](src/api/addAttachedSignature.ts) - добавляет совмещенную (присоединенную) подпись к раннее подписанному документу (реализует метод coSign)
|
||||
- [addDetachedSignature](src/api/addDetachedSignature.ts) - добавляет отсоединенную (открепленную) подпись к раннее подписанному документу (реализует метод coSign)
|
||||
- [createXMLSignature](src/api/createXMLSignature.ts) - создает XML подпись для документа в формате XML
|
||||
- [createHash](src/api/createHash.ts) - создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
|
||||
- [getSystemInfo](src/api/getSystemInfo.ts) - возвращает информацию о CSP и плагине
|
||||
- [isValidSystemSetup](src/api/isValidSystemSetup.ts) - возвращает флаг корректности настроек ЭП на машине
|
||||
|
||||
> *Методы `getContainerCertificates` и `getAllContainerCertificates` позволяют получить сертификаты из закрытых ключей, записанных на обыкновенную флэшку
|
||||
|
||||
<a name="api-certificate"></a>
|
||||
### Методы объекта сертификата
|
||||
[Сертификат](src/api/certificate/certificate.ts) предоставляет следущее API:
|
||||
- [isValid](src/api/certificate/isValid.ts) - возвращает флаг действительности сертификата
|
||||
- [getCadesProp](src/api/certificate/getCadesProp.ts) - возвращает указанное внутренее свойство у сертификата в формате Cades
|
||||
- [exportBase64](src/api/certificate/exportBase64.ts) - возвращает сертификат в формате base64
|
||||
- [getAlgorithm](src/api/certificate/getAlgorithm.ts) - возвращает информацию об алгоритме сертификата
|
||||
- [getOwnerInfo](src/api/certificate/getInfo.ts) - возвращает расшифрованную информацию о владельце сертификата
|
||||
- [getIssuerInfo](src/api/certificate/getInfo.ts) - возвращает расшифрованную информацию об издателе сертификата
|
||||
- [getExtendedKeyUsage](src/api/certificate/getExtendedKeyUsage.ts) - возвращает ОИД'ы сертификата
|
||||
- [getDecodedExtendedKeyUsage](src/api/certificate/getDecodedExtendedKeyUsage.ts) - возвращает расшифрованные ОИД'ы
|
||||
- [hasExtendedKeyUsage](src/api/certificate/hasExtendedKeyUsage.ts) - проверяет наличие ОИД'а (ОИД'ов) у сертификата
|
||||
|
||||
<a name="supported-cist"></a>
|
||||
## Поддерживаемые СКЗИ
|
||||
[КриптоПРО CSP](https://www.cryptopro.ru/products/csp/downloads) (v4.0+)
|
||||
|
||||
<a name="examples"></a>
|
||||
## Примеры
|
||||
Для их запуска необходим NodeJS LTS.
|
||||
|
||||
<a name="example-script-tag"></a>
|
||||
### Тэг script (UMD)
|
||||
```bash
|
||||
cd examples/script-tag
|
||||
npm i
|
||||
npm start
|
||||
```
|
||||
|
||||
<a name="developers"></a>
|
||||
# Тем, кто хочет помочь
|
||||
Буду благодарен за расширение/улучшение/доработку API.
|
||||
Вам будут полезны [примеры](http://cpdn.cryptopro.ru/?url=/content/cades/plugin-samples-sign.html),
|
||||
предоставляемые Крипто ПРО.
|
||||
|
||||
<a name="dev-mode"></a>
|
||||
## Запуск режима разработки
|
||||
Устанавливаем зависимости:
|
||||
```bash
|
||||
npm i
|
||||
```
|
||||
|
||||
Во время работы с кодом необходим запущенный сборщик:
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
И пример, на котором можно тестировать изменения.
|
||||
Удобнее всего тестировать на примере с тэгом script, тк он отвязан от фреймворков
|
||||
и использует сборку в формате UMD из папки `dist/`, постоянно обновляемую пока работает
|
||||
сборщик. Запускаем его таким образом:
|
||||
```bash
|
||||
cd examples/script-tag
|
||||
npm i
|
||||
npm link ../../
|
||||
npm start
|
||||
```
|
||||
> После выполнения `npm link ../../` в директории `examples/script-tag/node_modules` папка `crypto-pro-js` станет ярлыком,
|
||||
> указывающим на папку содержащую локально собранный пакет.
|
||||
|
||||
<a name="tests-execution"></a>
|
||||
## Запуск тестов
|
||||
Тесты написаны с использованием [Jest](https://jestjs.io/docs/en/configuration#testpathignorepatterns-arraystring):
|
||||
```bash
|
||||
npm test
|
||||
```
|
||||
|
||||
<a name="final-check"></a>
|
||||
## Проверка пакета перед публикацией в NPM
|
||||
Необходимо протестировать работу в заявленных браузерах, сделав это на локально запакованной версии пакета.
|
||||
Для этого собираем пакет:
|
||||
```bash
|
||||
npm run package
|
||||
mv package ..
|
||||
```
|
||||
> Важно переместить папку `package` куда-нибудь выше для избежания конфликтов при линковке с текущим `package.json`.
|
||||
|
||||
Переходим в любую директорию с примером и создаем там ссылку на только что собранный пакет:
|
||||
```bash
|
||||
cd examples/script-tag
|
||||
npm link ../../../package
|
||||
```
|
||||
|
||||
Проверяем работу примеров в режимах разработки и продакшн.
|
||||
|
||||
После завершения экспериментов можно удалить глобальную ссылку из директории `../../../package` таким образом:
|
||||
```bash
|
||||
cd ../../../package
|
||||
npm unlink
|
||||
```
|
||||
|
||||
<a name="lisense"></a>
|
||||
# Лицензия
|
||||
### Лицензия
|
||||
[MIT](/LICENSE)
|
||||
|
||||
[license-url]: /LICENSE
|
||||
@ -212,5 +29,3 @@ npm unlink
|
||||
[npm-version-image]: https://img.shields.io/npm/v/crypto-pro-js.svg?style=flat
|
||||
[npm-downloads-image]: https://img.shields.io/npm/dm/crypto-pro-js.svg?style=flat
|
||||
[downloads-url]: https://npmcharts.com/compare/crypto-pro-js?minimal=true
|
||||
[actions-url]: https://github.com/webmasterskaya/crypto-pro-js/actions
|
||||
[actions-image]: https://img.shields.io/github/workflow/status/webmasterskaya/crypto-pro-js/test?event=push
|
||||
|
12035
package-lock.json
generated
12035
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "crypto-pro-js",
|
||||
"version": "2.3.3",
|
||||
"version": "0.1.0",
|
||||
"description": "Асинхронный JavaScript API для работы с КриптоПРО ЭЦП Browser Plug-In. Forked from https://github.com/vgoma/crypto-pro",
|
||||
"main": "./lib/crypto-pro-js.js",
|
||||
"types": "./lib/crypto-pro-js.d.ts",
|
||||
@ -36,11 +36,16 @@
|
||||
"url": "https://github.com/webmasterskaya/crypto-pro-js"
|
||||
},
|
||||
"author": {
|
||||
"name": "Artem Vasilev",
|
||||
"email": "kern.usr@gmail.com",
|
||||
"url": "https://github.com/kernusr"
|
||||
"name": "Serge Schekhovtsov",
|
||||
"email": "schekhovtsov@gmail.com",
|
||||
"url": "https://github.com/schekhovtsov"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Artem Vasilev",
|
||||
"email": "kern.usr@gmail.com",
|
||||
"url": "https://github.com/kernusr"
|
||||
},
|
||||
{
|
||||
"name": "Vitalii Goma",
|
||||
"email": "vgoma@yandex.ru",
|
||||
|
@ -4,16 +4,18 @@ import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErr
|
||||
import { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';
|
||||
import { _getCadesCert } from '../helpers/_getCadesCert';
|
||||
import { _getDateObj } from '../helpers/_getDateObj';
|
||||
import { SignType, getSignType } from '../helpers/getSignType';
|
||||
|
||||
/**
|
||||
* Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param signedMessage - подписанное сообщение
|
||||
* @returns подпись в формате PKCS#7
|
||||
* @param signType - тип подписи, может быть равен 'CAdES BES', 'CAdES-X Long Type 1', 'CAdES T', 'PKCS7'
|
||||
* @returns подпись в формате signType
|
||||
*/
|
||||
export const addAttachedSignature = _afterPluginsLoaded(
|
||||
async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise<string> => {
|
||||
async (thumbprint: string, signedMessage: string | ArrayBuffer, signType: SignType = 'PKCS7'): Promise<string> => {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = await _getCadesCert(thumbprint);
|
||||
|
||||
@ -70,10 +72,11 @@ export const addAttachedSignature = _afterPluginsLoaded(
|
||||
}
|
||||
|
||||
let signature: string;
|
||||
const signTypeConst = getSignType(cadesplugin, signType);
|
||||
|
||||
try {
|
||||
void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));
|
||||
signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, signTypeConst));
|
||||
signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, signTypeConst);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
|
@ -4,6 +4,7 @@ import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErr
|
||||
import { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';
|
||||
import { _getCadesCert } from '../helpers/_getCadesCert';
|
||||
import { _getDateObj } from '../helpers/_getDateObj';
|
||||
import { SignType, getSignType } from '../helpers/getSignType';
|
||||
|
||||
/**
|
||||
* Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата
|
||||
@ -11,10 +12,16 @@ import { _getDateObj } from '../helpers/_getDateObj';
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param signedMessage - подписанное сообщение
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит
|
||||
* @returns подпись в формате PKCS#7
|
||||
* @param signType - тип подписи, может быть равен 'CAdES BES', 'CAdES-X Long Type 1', 'CAdES T', 'PKCS7'
|
||||
* @returns подпись в формате signType
|
||||
*/
|
||||
export const addDetachedSignature = _afterPluginsLoaded(
|
||||
async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise<string> => {
|
||||
async (
|
||||
thumbprint: string,
|
||||
signedMessage: string | ArrayBuffer,
|
||||
messageHash: string,
|
||||
signType: SignType = 'PKCS7',
|
||||
): Promise<string> => {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = await _getCadesCert(thumbprint);
|
||||
|
||||
@ -73,15 +80,11 @@ export const addDetachedSignature = _afterPluginsLoaded(
|
||||
}
|
||||
|
||||
let signature: string;
|
||||
const signTypeConst = getSignType(cadesplugin, signType);
|
||||
|
||||
try {
|
||||
void (
|
||||
__cadesAsyncToken__ +
|
||||
cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)
|
||||
);
|
||||
signature =
|
||||
__cadesAsyncToken__ +
|
||||
cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
void (__cadesAsyncToken__ + cadesSignedData.VerifyHash(cadesHashedData, signedMessage, signTypeConst));
|
||||
signature = __cadesAsyncToken__ + cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, signTypeConst);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
|
@ -4,16 +4,22 @@ import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErr
|
||||
import { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';
|
||||
import { _getCadesCert } from '../helpers/_getCadesCert';
|
||||
import { _getDateObj } from '../helpers/_getDateObj';
|
||||
import { SignType, getSignType } from '../helpers/getSignType';
|
||||
|
||||
/**
|
||||
* Создает присоединенную подпись сообщения по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param message - подписываемое сообщение
|
||||
* @returns подпись в формате PKCS#7
|
||||
* @param signType - тип подписи, может быть равен 'CAdES BES', 'CAdES-X Long Type 1', 'CAdES T', 'PKCS7'
|
||||
* @returns подпись в формате signType
|
||||
*/
|
||||
export const createAttachedSignature = _afterPluginsLoaded(
|
||||
async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise<string> => {
|
||||
async (
|
||||
thumbprint: string,
|
||||
unencryptedMessage: string | ArrayBuffer,
|
||||
signType: SignType = 'PKCS7',
|
||||
): Promise<string> => {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = await _getCadesCert(thumbprint);
|
||||
|
||||
@ -70,9 +76,10 @@ export const createAttachedSignature = _afterPluginsLoaded(
|
||||
}
|
||||
|
||||
let signature: string;
|
||||
const signTypeConst = getSignType(cadesplugin, signType);
|
||||
|
||||
try {
|
||||
signature = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
signature = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, signTypeConst);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
|
@ -4,16 +4,19 @@ import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErr
|
||||
import { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';
|
||||
import { _getCadesCert } from '../helpers/_getCadesCert';
|
||||
import { _getDateObj } from '../helpers/_getDateObj';
|
||||
import { SignType, getSignType } from '../helpers/getSignType';
|
||||
|
||||
/**
|
||||
* Создает отсоединенную подпись хеша по отпечатку сертификата
|
||||
*
|
||||
* @param thumbprint - отпечаток сертификата
|
||||
* @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит
|
||||
* @returns подпись в формате PKCS#7
|
||||
* @param signType - тип подписи, может быть равен 'CAdES BES', 'CAdES-X Long Type 1', 'CAdES T', 'PKCS7'
|
||||
* @returns подпись в формате signType
|
||||
*/
|
||||
|
||||
export const createDetachedSignature = _afterPluginsLoaded(
|
||||
async (thumbprint: string, messageHash: string): Promise<string> => {
|
||||
async (thumbprint: string, messageHash: string, signType: SignType = 'PKCS7'): Promise<string> => {
|
||||
const { cadesplugin } = window;
|
||||
const cadesCertificate = await _getCadesCert(thumbprint);
|
||||
|
||||
@ -73,10 +76,12 @@ export const createDetachedSignature = _afterPluginsLoaded(
|
||||
|
||||
let signature: string;
|
||||
|
||||
const signTypeConst = getSignType(cadesplugin, signType);
|
||||
|
||||
try {
|
||||
signature =
|
||||
__cadesAsyncToken__ +
|
||||
cadesSignedData.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);
|
||||
cadesSignedData.SignHash(cadesHashedData, cadesSigner, signTypeConst);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
|
18
src/helpers/getSignType.ts
Normal file
18
src/helpers/getSignType.ts
Normal file
@ -0,0 +1,18 @@
|
||||
export type SignType = 'CAdES BES' | 'CAdES-X Long Type 1' | 'CAdES T' | 'PKCS7';
|
||||
|
||||
export const getSignType = (cadesplugin: any, signType: SignType) => {
|
||||
switch (signType) {
|
||||
case 'CAdES BES': {
|
||||
return cadesplugin.CADESCOM_CADES_BES
|
||||
};
|
||||
case 'CAdES-X Long Type 1': {
|
||||
return cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1;
|
||||
}
|
||||
case 'CAdES T': {
|
||||
return cadesplugin.CADESCOM_CADES_T;
|
||||
}
|
||||
case 'PKCS7': {
|
||||
return cadesplugin.CADESCOM_PKCS7_TYPE;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user