...
Code Block | ||||
---|---|---|---|---|
| ||||
// вызывается метод Promise. Переменные rutokenHandle и keyHandle должны быть во внешном блоке. .then(function () { var options = {}; return plugin.cmsDecrypt(rutokenHandle, keyHandle, cms, options); }) .then(function(msg) { alert(msg); }, handleError) |
Работа со штампами времени
Последовательность действий для добавления метки времени следующая:
- Вызов plugin.sign() для получения CMS-подписи.
- Вызов plugin.createTsRequest(). Если на вход передается CMS, data == DATA_FORMAT_BASE64
- Отправка запроса TSA по HTTP
C TSА возможно взаимодействовать по HTTP, согласно RFC: Time-Stamp Protocol via HTTP. Это обычный POST-запрос.
Возможно, на TSA-cервере потребуется разрешить запросы с домена, откуда клиент будет посылать запрос, используя JS. Также нужно будет использовать CORS-заголовки. - Получение ответа от TSA
- Вызов функции для проверки ответа TSA plugin.verifyTsResponse()
- Для добавления метки времени в CMS, мы предоставляем функцию в исходных кодах, использующую библиотеку PKIjs:
cmsWithTimeStamp = asn1Utils.addTstToSignedCms(signedCms, tsResp);
Полезные ссылки
Данные ссылки могут быть полезны разработчикам инфосистем с поддержкой ЭП на базе Рутокен Плагин и OpenSSL:
Пример интеграции Рутокен Плагин в ДБО
Веб-сервис генерации ключей, формирования запросов, управления сертификатами
Документация по использованию утилиты OpenSSL с российскими криптоалгоритмами