Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Цитата:А вот в ie не работает, пишет "Плагин не загружен". Или на тестовой версии так и должно быть? IE 11, в доверенные узлы сайт www.cryptopro.ru добавлен. В IE в ближайшее время эта страница и не будет работать. Она предназначена только для Chromium based браузеров. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2011(UTC) Сообщений: 78
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 5 раз в 2 постах
|
Автор: cross  Цитата:А вот в ie не работает, пишет "Плагин не загружен". Или на тестовой версии так и должно быть? IE 11, в доверенные узлы сайт www.cryptopro.ru добавлен. В IE в ближайшее время эта страница и не будет работать. Она предназначена только для Chromium based браузеров. OK Просто в коде я увидел проверки на IE и подумал, что в ie тоже будет работать
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2011(UTC) Сообщений: 78
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 5 раз в 2 постах
|
Вопрос по использованию нового плагина. Вот у вас есть следующая строчка https://www.cryptopro.ru.../demopage/async_code.js, строка 279 Код:
}, certListBoxId); //cadesplugin.async_spawn
Не совсем понятно этот certListBoxId передаётся в сам плагин? Просто у нас на странице нет никаких списков выбора сертификатов. Отпечаток сертификата уже известен при открытии страницы. Вот исправленная ф-ия SignCadesBES под наши нужды Код:
function sign(dataToSign) {
cadesplugin.async_spawn(function*(arg) {
var PluginObject;
//var e = document.getElementById(arg[0]);
//var selectedCertID = e.selectedIndex;
//if (selectedCertID == -1) {
// alert("Select certificate");
// return;
//}
var thumbprint = 'a145929a81885726e8ddfe73d6ae4fd5429b734d';//e.options[selectedCertID].value.split(" ").reverse().join("").replace(/\s/g, "").toUpperCase();
try {
PluginObject = yield cpcsp_chrome_nmcades.CreatePluginObject();
var oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.store");
yield oStore.Open();
} catch (err) {
alert('Failed to create CAPICOM.store: ' + err.number);
return;
}
var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
var all_certs = yield oStore.Certificates;
var oCerts = yield all_certs.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
if (yield oCerts.Count == 0) {
alert("Certificate not found");
return;
}
var certificate = yield oCerts.Item(1);
var dataToSign = dataToSign;// document.getElementById("DataToSignTxtBox").value;
var SignatureFieldTitle = document.getElementsByName("SignatureTitle");
var Signature;
try
{
//FillCertInfo(certificate);
var errormes = "";
try {
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
} catch (err) {
errormes = "Failed to create CAdESCOM.CPSigner: " + err.number;
throw errormes;
}
var oSigningTimeAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
var CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;
yield oSigningTimeAttr.propset_Name(CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
var oTimeNow = new Date();
yield oSigningTimeAttr.propset_Value(oTimeNow);
var attr = yield oSigner.AuthenticatedAttributes2;
yield attr.Add(oSigningTimeAttr);
var oDocumentNameAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
var CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;
oDocumentNameAttr.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME);
oDocumentNameAttr.propset_Value("Document Name");
yield attr.Add(oDocumentNameAttr);
if (oSigner) {
oSigner.propset_Certificate(certificate);
}
else {
errormes = "Failed to create CAdESCOM.CPSigner";
throw errormes;
}
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
var CADES_BES = 1;
if (dataToSign) {
// Данные на подпись ввели
oSignedData.propset_Content(dataToSign);
oSigner.propset_Options(1); //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
try {
Signature = yield oSignedData.SignCades(oSigner, CADES_BES);
}
catch (err) {
errormes = "Не удалось создать подпись из-за ошибки: " + GetErrorMessage(err);
throw errormes;
}
}
//document.getElementById("SignatureTxtBox").innerHTML = Signature;
alert(Signature);
//SignatureFieldTitle[0].innerHTML = "Подпись сформирована успешно:";
}
catch(err)
{
//SignatureFieldTitle[0].innerHTML = "Возникла ошибка:";
//document.getElementById("SignatureTxtBox").innerHTML = err;
alert('err2:' + err);
}
}, certListBoxId); //cadesplugin.async_spawn
}
Естественно, что ругается на certListBoxId, т.к. он не объявлен. Как быть? Что туда передавать в нашем случае? Все необходимые исходные данные есть - данные для подписи dataToSign и отпечаток для подписи thumbprint И непонятно, что в нашем случае передавать вместо certListBoxId. Отредактировано пользователем 26 августа 2015 г. 15:14:33(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
certListBox попадает в arg[0] внутрь function*(arg). Если он вам не нужен, то уберите его полностью. Если вы вызываете Код:cadesplugin.CreateObjectAsync("CAPICOM.store");
то вот это Код:PluginObject = yield cpcsp_chrome_nmcades.CreatePluginObject();
вам не нужно. Оно происходит внутри обьекта cadesplugin |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.05.2015(UTC) Сообщений: 32  Поблагодарили: 3 раз в 3 постах
|
Автор: cross  Где обновили? Откуда брать?Cкачиваю плагин со страницы примера https://www.cryptopro.ru...cts/cades/plugin/get_2_0скачивается та же версия, что была на прошлой неделе. Скачиваю из последнего поста cross #25 https://www.cryptopro.ru...c_plugin/cadesplugin.exeтам версия 2.0.12225 Устанавливаю 2.0.12225 с опцией -cadesargs "CHROME_EXTENSION=1" предварительно удалив стоявшую версию. Расширение из магазина приложений ставится "CryptoPro Extension for CAdES Browser Plug-in 1.0.9" На демостранице без фрейма работает (написано "Плагин загружен. Версия плагина: 2.0.12225"). На демостранице внутри фрейма написано "Плагин не доступен". Пожалуйста, в сообщениях о появлении новой версии сразу в сообщении давайте проверенные ссылки на всё необходимое (плагин, расширение, cadesplugin_api.js, демо) и указывайте номера этих новых версий!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.05.2015(UTC) Сообщений: 32  Поблагодарили: 3 раз в 3 постах
|
Уточнения относительно (не)работы во фрейме (плагин 2.0.12225, chrome 44.0.2403.157, win7) Странные манипуляции: 1. Открываю новую вкладку в chrome, в адресную строку вставляю ссылку http://www.cryptopro.ru/.../iframe_async_test.html, нажимаю Enter результат - "Плагин не доступен" 2. Ставлю курсор в адресную строку, адрес не меняю, просто нажимаю Enter результат - "Плагин загружен", подпись работает 3. Нажимаю Ctrl+R или кнопку "Обновить" результат - "Плагин не доступен" по обновить никогда не работает, даже подряд после 2 шага. То есть больше не работает, чем работает :( Если страницу iframe_async_test.html положить на другой (свой) домен (ссылку в iframe не трогаем) - "Плагин не загружен" что ни делай. В нашем приложении во фрейме тоже не работает.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 34   Сказал «Спасибо»: 1 раз
|
Автор: cross  Сравнил файл cadesplugin_api.js ваш и тот что я качал несколько дней назад, они идентичны. Где свежий брать?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.09.2012(UTC) Сообщений: 34   Сказал «Спасибо»: 1 раз
|
Автор: Смирнов  Автор: cross  Это еще бета-версия, перед тем как рекомендовать ее пользователям проверьте на вашем приложении. Дополню коллегу. Не рекомендуется распространять эту версию пользователям. Релизная версия, скорее всего, не сможет корректно обновить эту бета-версию. Что это значит? Нельзя будет удалить через панель управления? Сейчас все равно так же делаем.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Автор: paradoxm  Автор: cross  Сравнил файл cadesplugin_api.js ваш и тот что я качал несколько дней назад, они идентичны. Где свежий брать? На сайте лежит свежий (https://www.cryptopro.ru/sites/default/files/products/cades/cadesplugin_api.js) Попробуйте еще раз скачать, может закешировался браузером или еще кем |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close