ruscryptojs
Version:
Simplified library for Russian GOST crypto providers.
88 lines (68 loc) • 7.29 kB
Markdown
# [RusCryptoJS](https://aleksandr-ru.github.io/RusCryptoJS/)
JS для Российской криптографии (ГОСТ).
[](https://www.npmjs.com/package/ruscryptojs)
[](https://www.npmjs.com/package/ruscryptojs)
### Общие требования
- Окружение с поддержкой ES2015
## Крипто-ПРО
Для работы с [КриптоПро ЭЦП Browser plug-in 2.x](https://www.cryptopro.ru/products/cades/plugin) (cades plugin)
### Возможности
- Электронная подпись (открепленная и прикрепленная)
- Совместная подпись двумя сертификатами (CoSign)
- Добавление подписи к существующей
- Проверка подписи
- Шифрование/дешифрование данных
- Получение списка всех сертификатов
- Выпуск сертификата (ГОСТ Р 34.10-2001, ГОСТ Р 34.10-2012)
- Получение информации об установленном сертификате
- Экспорт установленного сертификата
Примеры использования см. в [документации](https://aleksandr-ru.github.io/RusCryptoJS/cryptopro.html).
### Известные проблемы
- Тестирование функций в синхронном режиме (IE) производилось по остаточному принципу, поэтому возможны неожиданные проблемы;
- В синхронном режиме (IE) не поддерживается задание пин-кода при выпуске сертификата и создании подписей, всегда выдается диалог крипто-про для ввода;
- В синхронном режиме (IE) может не работать режим кеширования ПИН-кодов при подписании (bind);
- Дешифрование может не работать при использовании сертификатов ГОСТ Р 34.10-2012 под macOS;
- Поддержка ИНН ЮЛ (INNLE, OID 1.2.643.100.4) доступна начиная с СSP 5.0 и выше;
- Проверка валидности сертификата может занимать продолжительное время для сертификатов, выданных УЦ с большим количеством данных в CRL (по-умолчанию отключено начиная с версии 2.7);
- КриптоПро ЭЦП Browser plug-in не работает в свежих версиях браузеров на основе Chromium (за исключением ГОСТ и Яндекс), а так же само расширение удалено из магазина. Лечится по [официальной инструкции](https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/467/12/ustnovk-rsshirenija-dlja-plgin-iz-fjjl#chrome);
- Manifest V3 (новое расширение [Extension for CAdES Browser Plug-in](https://chromewebstore.google.com/detail/extension-for-cades-brows/pfhgbfnnjiafkhfdkmpiflachepdcjod)) поддерживается начиная с версии 2.8.1 и КриптоПро ЭЦП Browser plug-in 2.0.15400, подробнее [тут](https://support.cryptopro.ru/index.php?/News/NewsItem/View/24/o-perekhode-rsshirenijj-dlja-bruzerov-n-bze-google-chrome-n-manifest-v3);
- Установка СКЗИ в Arch Linux (Manjaro и т.д.) - используйте пакет [cryptopro-csp-k1](https://aur.archlinux.org/packages/cryptopro-csp-k1).
## JaCarta ГОСТ
Для работы с [JaCarta Web Client 3.x](https://www.aladdin-rd.ru/catalog/jcwebclient)
**Считается устаревшим и не рекомендуется к использованию, вместо него используйте JaCarta-2 ГОСТ**
### Возможности
- Электронная подпись (только открепленная)
- Получение списка всех сертификатов
- Выпуск сертификата (ГОСТ Р 34.10-2001)
- Получение информации об установленном сертификате
- Экспорт установленного сертификата
- Очистка токена от контейнеров
Примеры использования см. в [документации](https://aleksandr-ru.github.io/RusCryptoJS/jacarta.html).
## JaCarta-2 ГОСТ
Для работы с [JaCarta Web Client 4.x](https://www.aladdin-rd.ru/catalog/jcwebclient)
### Возможности
- Электронная подпись (открепленная и прикрепленная)
- Шифрование/дешифрование данных
- Получение списка всех сертификатов
- Выпуск сертификата (ГОСТ Р 34.10-2001, ГОСТ Р 34.10-2012)
- Получение информации об установленном сертификате
- Экспорт установленного сертификата
- Очистка токена от контейнеров
Примеры использования см. в [документации](https://aleksandr-ru.github.io/RusCryptoJS/jacarta2.html).
## RuToken ЭЦП 2.0 и 3.0
Для работы с [Рутокен Плагин](https://www.rutoken.ru/products/all/rutoken-plugin/) (не путать с RuToken Lite и др.)
### Возможности
- Электронная подпись (открепленная и прикрепленная)
- Добавление подписи к существующей
- Шифрование/дешифрование данных
- Получение списка всех сертификатов
- Выпуск сертификата (ГОСТ Р 34.10-2001, ГОСТ Р 34.10-2012)
- Получение информации об установленном сертификате
- Экспорт установленного сертификата
- Очистка токена
Примеры использования см. в [документации](https://aleksandr-ru.github.io/RusCryptoJS/rutoken.html).
### Известные проблемы
- В Linux старые версии рутокен плагин работает только в Firefox 52 (тк использует устаревший NPAPI), информацию о том, как установить и совместно использовать старый FF вместе с новым см. [здесь](http://aleksandr.ru/blog/neskolko_versiy_firefox_v_linux_odnovremenno/);
- В Linux свежие версии рутокен плагин не работают в Сhrome (но работают в Opera).
## Поддержка
Проекту требуется поддержка для дальнейшего развития, если вы можете чем-то помочь, [свяжитесь со мной](https://aleksandr.ru/contacts).