Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline pls  
#1 Оставлено : 27 февраля 2012 г. 20:09:40(UTC)
pls

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.10.2011(UTC)
Сообщений: 74
Откуда: Moscow

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Задача: имея подпись и документ, предоставить пользователю возможность просмотра данных о подписавших, используя КриптоПро ЭЦП Browser plug-in.

В документации (тут) сказано, что объекты класса CAdESCOM.CadesSignedData реализуют метод Display интерфейса ICPSignedData. Однако, если использовать JavaScript-API, предоставляемое браузерным плагином, то у объектов CadesSignedData нет метода Display.

Win 7, помимо плагина установлен КриптоПро ЭЦП SDK, от браузера не зависит.
1. Предоставляет ли JS API доступ к методу CadesSignedData.Display и если нет, то где посмотреть документацию именно по JS API?
2. Каким ещё способом можно решить поставленную задачу, т.е. получить из подписи перечень подписавших, чтобы показать его пользователю?

Примерный код на JS:

Код:
var store = createObject("CAPICOM.Store");
store.Open(2, "My", 2);
var certificates = store.Certificates.Find(1, subjectName);
var signer = createObject("CAdESCOM.CPSigner");
signer.Certificate = certificates.Item(1);
signer.TSAAddress = tsaUrl;
var signedData = createObject("CAdESCOM.CadesSignedData");
signedData.ContentEncoding = 0x01;
signedData.Content = documentData;
signedData.VerifyCades(signatureData, 0x5d, true);
var signedMessage = signedData.CoSignCades(signer, 0x5d, 0);
signedData.Display(null, "Title");
// Exception: TypeError: Object [object Object] has no method 'Display'

(Все используемые переменные определены валидными значениями, подписание проходит успешно.)
Offline Новожилова Елена  
#2 Оставлено : 28 февраля 2012 г. 16:10:01(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Методы Display объектов CadesSignedData и CPSigner доступны только в CAdESCOM (то есть только для IE). В КриптоПро ЭЦП Browser plug-in методы Display недоступны.

Делать поддержку методов CadesSignedData.Display и CPSigner.Display в плагине нецелесообразно, так как:
- Выкидывать окно с веб-страницы не принято.
- Сильно зависит от операционной системы.

Сведения о сертификате и прочих свойствах подписи можно получить через свойства объекта CPSigner.

Например:

CadesSignedData.Signers.Item(номер подписи).Certificate - сертификат (владелец, назначение, сроки действия и пр. - в свойствах объекта Certificate)
CadesSignedData.Signers.Item(номер подписи).SigningTimestampTime - время в штампе.
Offline alexeyng  
#3 Оставлено : 28 апреля 2012 г. 18:58:22(UTC)
alexeyng

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.04.2012(UTC)
Сообщений: 61

Новожилова Елена написал:

Например:

CadesSignedData.Signers.Item(номер подписи).Certificate - сертификат (владелец, назначение, сроки действия и пр. - в свойствах объекта Certificate)
CadesSignedData.Signers.Item(номер подписи).SigningTimestampTime - время в штампе.


Делаю
Цитата:

oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1);
alert(oSignedData.Signers.Item(0).Certificate.IsValid());
alert(oSignedData.Signers.Item(0).SigningTimestampTime);


VerifyCades отрабатывает успешно, а при обращении к сертификату или timestamp происходит ошибка и браузер закрывается. Как по подписанному сообщению можно узнать данные о подписанте или это не возможно?
Offline alexeyng  
#4 Оставлено : 3 мая 2012 г. 17:11:54(UTC)
alexeyng

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.04.2012(UTC)
Сообщений: 61

Заработало,

Нумерация должна быть с 1

oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1);
alert(oSignedData.Signers.Item(1).Certificate.IsValid());
alert(oSignedData.Signers.Item(1).SigningTimestampTime);
Online Андрей Писарев  
#5 Оставлено : 3 мая 2012 г. 17:18:48(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,320
Мужчина
Российская Федерация

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
alexeyng написал:
Заработало,

Нумерация должна быть с 1

oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1);
alert(oSignedData.Signers.Item(1).Certificate.IsValid());
alert(oSignedData.Signers.Item(1).SigningTimestampTime);


Так же и показано в примере Anxious
http://cpdn.cryptopro.ru...lugin-samples-attrs.html

Но явного "примечания" нет


Отредактировано пользователем 3 мая 2012 г. 17:26:44(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Новожилова Елена  
#6 Оставлено : 3 мая 2012 г. 19:05:28(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
По аналогии с CAPICOM - нумерация объектов в коллекциях начинается с единицы.

"Явное примечание" добавим - вопрос возникает не в первый раз :-)
Online Андрей Писарев  
#7 Оставлено : 3 мая 2012 г. 19:09:53(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,320
Мужчина
Российская Федерация

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
Новожилова Елена написал:
По аналогии с CAPICOM - нумерация объектов в коллекциях начинается с единицы.

"Явное примечание" добавим - вопрос возникает не в первый раз :-)


По аналогии с CAPICOM... это кто его "проходил".. знает...

а кто сразу с КриптоПро ЭЦП Browser plug-in начинает... не факт Anxious

Отредактировано пользователем 3 мая 2012 г. 19:10:50(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (9)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.