Реализация прикрепленной подписи документов на основе КриптоПро ЭЦП browser plug-in, с использованием асинхронных обьектов cadesplugin.CreateObjectAsync("CAPICOM.Store")
- КриптоПро ЦСП 4.0
- КриптоПро browser plug-in 2.0
- генерируем тестовый сертификат и импортируем его в хранилище
- генерируем сертификат тестового атестационного центра
- проверяем работает ли сам плагин
- добавляем в
Настройки КриптоПро ЭЦП Browser Plug-in
(для Chrome: chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/trusted_sites.html) хосты: https://*.cryptopro.ru, http://localhost:8000 - проверка подписанного документа
git clone git@github.com:krecu/cryptopro-async-plugin.git
cd ./cryptopro-async-plugin
php -S localhost:8000
Получение списка доступных сертификатов Результат:
- Массив вида: [{}, {}, ...], где
{
_id: integer, # идентификатор сертификата в CAPICOM.Store.Certificates
_instance: {}, # обьект CAPICOM.Store.Certificates
_valid: boolean, # действителен ли сертификат по дате завершения его действия
_date: Date, # дата окончания действия сертификата
_info: [] # информация о владельце (CN - фио владельца...)
Вызов:
CryptoPro.getCertsList().then(function(certs){ console.log(certs) });
Создание прикрепленной подписи контента в base64 кодировке Параметры:
- cert - ФИО владельца сертификата
- data - контент в base64 кодировке
Результат:
- строка в base64
Вызов:
CryptoPro.signCreate(cert, data).then(function(hash){ console.log(hash) });;