Releases: Aleksandr-ru/RusCryptoJS
Расширенная информация в списке сертификатов
Для всех СКЗИ добавлена дополнительная информация при посторении списка сертификатов:
- Объект DN со всеми полями из Subject;
- Даты валидности сертификата.
Подробное описание для Крипто-ПРО, JaCarta-2 ГОСТ, RuToken ЭЦП 2.0 и 3.0. Возвращаемые значения унифицированы.
Тормоза Крипто-ПРО
В связи с сокращением количества аккредитованных удостоверяющих центров, выпускающих сертификаты ЭП в РФ, резко возрос объем данных списков отзывов (CRL) у некоторых УЦ. Это, в свою очередь, привело к медленной загрузке информации о сертификатах при использовании Крипто-ПРО, поскольку в рамках этого процесса проводилась проверка валидности сертификата через механизмы СКЗИ, которая могла занимать около 2 минут и более для сертификатов.
Данная проблема так же имеет место быть и в приложении СКЗИ при запросе информации о сертификате.
В качестве решения, теперь по-умолчанию валидность сертификата в Крипто-ПРО определяется по сроку его действия (так же как и в других СКЗИ), но может быть включена проверка через механизмы СКЗИ. Подробнее в документации.
Больше типизации!
Добавлено описание интерфейсов модуля (.d.ts
) для упрощения использования библиотеки в TypeScript проектах.
Унифицирована генерация запросов на сертификат (CSR) между разными СКЗИ.
Обратная несовместимость
Начиная с этой версии функции generateCSR
не имеют обратной совместимости с предыдущими версиями:
- generateCSR унифицированы входные параметры для Crypto-PRO
- generateCSR унифицированы входные параметры для JaCarta
- generateCSR унифицированы входные параметры для RuToken
ИНН юридического лица
В соответствии с изменениями приказа ФСБ РФ от 27 декабря 2011 г. N 795 "Об утверждении Требований к форме квалифицированного сертификата ключа проверки электронной подписи", вступающими в силу с 1 сентября 2021 г., добавлена поддержка ИНН ЮЛ (INNLE, OID 1.2.643.100.4) при разборе информации о сертификатах.
3) INN (ИНН физического лица).
Значением атрибута INN является строка, состоящая из 12 цифр и представляющая ИНН владельца квалифицированного сертификата - физического лица. Объектный идентификатор типа атрибута INN имеет вид 1.2.643.3.131.1.1, тип атрибута INN описывается следующим образом:
INN ::= NUMERIC STRING SIZE 12;
4) INNLE (ИНН юридического лица).
Значением атрибута INNLE является строка, состоящая из 10 цифр и представляющая ИНН владельца квалифицированного сертификата - юридического лица. Объектный идентификатор типа атрибута INNLE имеет вид 1.2.643.100.4, тип атрибута INNLE описывается следующим образом:
INNLE ::= NUMERIC STRING SIZE 10;
Теперь в выпускаемых сертификатах юридических лиц ИНН должен находится в поле INNLE (OID 1.2.643.100.4) вместо INN (OID 1.2.643.3.131.1.1).
Для крипто-про корректная работа с новым полем доступна начиная с CSP версии 5.0. Для JaCarta-2 и RuToken проблем с совместимостью не замечено.
При формировании запроса на сертификат рекомендуется указывать указывать OID 1.2.643.100.4 вместо "INNLE".
Большое обновление JaCarta-2
Проведен большой рефакторинг кода части библиотеки, отвечающего за работу с JaCarta, результатом которого стало:
- Корректное вычисление SHA-1 в информации о сертификате;
- Синхронизация асинхронного режима выполнения команд внутри библиотеки, теперь больше не нужно заботиться о последовательном выполнении, как описано в руководстве JC-WebClient SDK;
- Поддержка новшеств JC-WebClient SDK 4.3 (отсутствие встроенного метода isAsyncOperationInProgress и измененные параметры в encryptData).
Присоединенная подпись
Для выполнения требований ЦРПТ и прочих, идущих поперек здравого смысла организаций, требующих прикрепленную подпись в веб, для всех СКЗИ (за исключением устаревшей JaCarta) добавлен функционал создания и проверки прикрепленной подписи.
Тип создаваемой и проверяемой подписи можно задать в параметрах соответствующих функций, подробнее смотрите в документации. Примеры так же дополнены прикрепленной подписью.
Обратная несовместимость
Начиная с этой версии часть специфических функций Крипто-ПРО не имеют обратной совместимости с предыдущими версиями:
Сертификаты на внешних носителях 🎄️
Для Крипто-ПРО теперь доступна возможность работы с сертификатами на внешних носителях, например на USB-токенах, без их установки в хранилище.
Теперь нет необходимости абсорбировать сертификат со внешнего носителя в ваше локальное хранилище сертификатов перед его использованием. Просто подключите токен или другой носитель, и сертификаты, находящиеся на нем, будут доступны в списке сертификатов вместе с локальными.
Данный функционал будет работать если у вас КриптоПро ЭЦП Browser plug-in версии 2.0.13292 или новее.
Шифрование данных
Добавлена возможность шифрования и расшифровки данных в формате CMS для Крипто-ПРО, JaCarta-2 ГОСТ и RuToken. Подробности и примеры использования описаны в документации.
Модуль для работы с JaCarta Web Client 3.x объявлен устаревшим и не рекомендуется к использованию, функционал шифрования и расшифровки в него не добавлен, предлагается вместо него использовать JaCarta-2 ГОСТ.
В RuToken помимо шифрования добавлен функционал проверки электронной подписи.
Общедоступные УЦ
В примерах для всех СКЗИ сделана возможность использования любого УЦ (взамен УЦ со строго определенным интерфейсом), теперь тестовые сертификаты можно выпускать на любом носителе прямо из документации (см. инструкцию).
Исправлены проблемы со списком сертификатов и очисткой токена для JaCarta-2 ГОСТ (см. #3).
webpack
Универсальная библиотека со всеми возможностями в одном файле.
Поддержка JaCarta-2 (ГОСТ Р 34.10-2012).
Общие требования к среде выполнения
ES2015 (поддерживается всеми современными браузерами)