crypto-pro-browser
v1.1.0
Published
API для взаимодействия с КриптоПро
Maintainers
Readme
crypto-pro-browser
Единое, асинхронное API для взаимодействия с КриптоПРО ЭЦП Browser Plug-In
Предварительные требования
Для работы библиотеки необходимо установить:
- КриптоПРО CSP (v4.0+)
- КриптоПРО ЭЦП browser plug-in (v2.0.12438+)
Установка
| npm | yarn | pnpm |
| --- | ---- | ---- |
| npm install crypto-pro-browser | yarn add crypto-pro-browser | pnpm add crypto-pro-browser |
Подключение пакета как UMD модуля через тэг script:
<script src="crypto-pro-browser/dist/crypto-pro-browser.umd.js"></script>
<script>
window.cryptoPro.getUserCertificates()
.then(function (certificates) {
//...
})
.catch(function (error) {
//...
});
</script>Подключение пакета как ES модуля с Typescript или JavaScript:
import { getUserCertificates, Certificate } from 'crypto-pro-browser';
(async () => {
let certificates: Certificate[];
try {
certificates = await getUserCertificates();
} catch(error) {
// ...
}
})();API
Методы объекта cryptoPro
- getUserCertificates - возвращает список сертификатов, доступных пользователю в системе
- getCertificate - возвращает сертификат по отпечатку
- createAttachedSignature - создает совмещенную (присоединенную) подпись сообщения
- createDetachedSignature - создает отсоединенную (открепленную) подпись сообщения
- createXMLSignature - создает XML подпись для документа в формате XML
- createHash - создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит
- getSystemInfo - возвращает информацию о CSP и плагине
- isValidSystemSetup - возвращает флаг корректности настроек ЭП на машине
- execute - выполняет переданный колбэк, предоставляя доступ к объекту
cadespluginи вспомогательным утилитам
Методы объекта сертификата
Сертификат предоставляет следущее API:
- isValid - возвращает флаг действительности сертификата
- getCadesProp - возвращает указанное внутренее свойство у сертификата в формате Cades
- exportBase64 - возвращает сертификат в формате base64
- getAlgorithm - возвращает информацию об алгоритме сертификата
- getOwnerInfo - возвращает расшифрованную информацию о владельце сертификата
- getIssuerInfo - возвращает расшифрованную информацию об издателе сертификата
- getExtendedKeyUsage - возвращает ОИД'ы сертификата
- getDecodedExtendedKeyUsage - возвращает расшифрованные ОИД'ы
- hasExtendedKeyUsage - проверяет наличие ОИД'а (ОИД'ов) у сертификата
Поддерживаемые СКЗИ
КриптоПРО CSP (v4.0+) рекомендуется использование только сертифицированных версий.
КриптоПРО ЭЦП browser plug-in (v2.0.12438+).
Примеры
Для их запуска необходим NodeJS версии, указанной в .nvmrc.
Тэг script (UMD)
cd examples/script-tag
npm i
npm startAngular (ES Modules + Typescript)
cd examples/angular
npm iЗапуск в режиме разработки:
npm startЗапуск в продакшн режиме:
npm run build
npm run serveReact (ES Modules + JavaScript)
cd examples/react
npm iЗапуск в режиме разработки:
npm startЗапуск в продакшн режиме:
npm run build
npm run serveТем, кто хочет помочь
Буду благодарен за расширение/улучшение/доработку API. Вам будут полезны примеры, предоставляемые Крипто ПРО.
Необходима NodeJS версии, указанной в .nvmrc.
Запуск режима разработки
Устанавливаем зависимости:
npm iВо время работы с кодом необходим запущенный сборщик:
npm run devЗапуск тестов
Тесты написаны с использованием Vitest:
npm testЛицензия
MIT
