Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
titleРасшифрование данных на клиенте:
// вызывается метод Promise. Переменные rutokenHandle и keyHandle должны быть во внешном блоке.
.then(function () {
    var options = {};
    return plugin.cmsDecrypt(rutokenHandle, keyHandle, cms, options);
})
.then(function(msg) {
    alert(msg);
}, handleError)

Работа со штампами времени

Последовательность действий для добавления метки времени следующая:

  1. Вызов plugin.sign() для получения CMS-подписи.
  2. Вызов plugin.createTsRequest(). Если на вход передается CMS,  data == DATA_FORMAT_BASE64
  3. Отправка запроса TSA по HTTP
    C TSА возможно взаимодействовать по HTTP, согласно RFC:  Time-Stamp Protocol via HTTP. Это обычный POST-запрос.
    Возможно, на TSA-cервере потребуется разрешить запросы с домена, откуда клиент будет посылать запрос, используя JS. Также нужно будет использовать CORS-заголовки.
  4. Получение ответа от TSA
  5. Вызов функции для проверки ответа TSA plugin.verifyTsResponse()
  6. Для добавления метки времени в CMS, мы предоставляем функцию в исходных кодах, использующую библиотеку PKIjs:
    cmsWithTimeStamp = asn1Utils.addTstToSignedCms(signedCms, tsResp);

Полезные ссылки


Данные ссылки могут быть полезны разработчикам инфосистем с поддержкой ЭП на базе Рутокен Плагин и OpenSSL:

Пример интеграции Рутокен Плагин в ДБО
Веб-сервис генерации ключей, формирования запросов, управления сертификатами
Документация по использованию утилиты OpenSSL с российскими криптоалгоритмами