Статус: Новичок
Группы: Участники
Зарегистрирован: 04.03.2016(UTC) Сообщений: 2
|
Добрый день! Перечитал много информации, но так и не получилось реализовать проверку подписи. Хотелось бы посмотреть какой-нибудь пример наглядный.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.04.2015(UTC) Сообщений: 31  Откуда: Тирасполь Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
При проверке например конструкция
var numbersignatur = yield oSignedData.Signers.Count; alert(numbersignatur);
не возвращает количество подписей - пишет undefined
Полный код функции которую пытаемся использовать:
function VerifySignature_Async() { cadesplugin.async_spawn(function*(arg) { var dataToVerify = document.getElementById("DataToSignTxtBox").value; var sSignedMessage = document.getElementById("SignatureTxtBox").value; try { var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner"); } catch (err) { errormes = "Failed to create CAdESCOM.CPSigner: " + err.number; throw errormes; } try { var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData"); } catch (err) { alert('Failed to create CAdESCOM.CadesSignedData: ' + err.number); errormes = "Failed to create CAdESCOM.CadesSignedData: " + err.number; throw errormes; } try { yield oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN); yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY); // yield oSignedData.propset_DisplayData(1); yield oSignedData.propset_Content(dataToVerify);
yield oSignedData.VerifyCades(sSignedMessage, cadesplugin.CADESCOM_CADES_BES); var ul = document.getElementById("sertif2"); // очищаем елементы
var numbersignatur = yield oSignedData.Signers.Count; alert(numbersignatur); for(var numberSignature=1; numberSignature<=numbersignatur; numberSignature++){ var dan=Get_Podpisant((yield oSignedData.Signers.Item(numberSignature).Certificate.SubjectName))+ "\n"; var li = document.createElement("li"); li.appendChild(document.createTextNode(dan)); ul.appendChild(li); } } catch (err) { errormes = "Не удалось создать подпись из-за ошибки: " + GetErrorMessage(err); alert(errormes); throw errormes; } }); //cadesplugin.async_spawn
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.04.2015(UTC) Сообщений: 31  Откуда: Тирасполь Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
Автор: cross  Какие трудности возникают с проверкой? Мы на основе вашей страницы сделали следующую тестовую страницу: http://www.cryptopro.ru/...ge/cades_bes_sample.htmlУ нас возникли следующие проблемы: 1) В синхронном режиме созданная ранее подпись (не важно созданная в синхронном или асинхронном режиме) всегда проходит проверку, не зависимо от того изменено проверяемое сообщение или нет, кроме того даже в самой подписи удается изменять несколько символов, а проверка подписи продолжает осуществляться без ошибок. 2) В асинхронном режиме проверка подписи вообще не осуществляется, после выполнения команд yield oSignedData.propset_Content(dataToVerify); yield oSignedData.VerifyCades(sSignedMessage, cadesplugin.CADESCOM_CADES_BES); вывод console.log(yield oSignedData.Signers.Count); возвращает значение undefined Если есть готовые примеры как правильно следует проверять подпись, то нам было бы очень важно посмотреть на эти примеры.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Цитата:Мы на основе вашей страницы сделали следующую тестовую страницу: http://www.cryptopro.ru/...ge/cades_bes_sample.htmlУ нас возникли следующие проблемы: 1) В синхронном режиме созданная ранее подпись (не важно созданная в синхронном или асинхронном режиме) всегда проходит проверку, не зависимо от того изменено проверяемое сообщение или нет, кроме того даже в самой подписи удается изменять несколько символов, а проверка подписи продолжает осуществляться без ошибок. 2) В асинхронном режиме проверка подписи вообще не осуществляется, после выполнения команд yield oSignedData.propset_Content(dataToVerify); yield oSignedData.VerifyCades(sSignedMessage, cadesplugin.CADESCOM_CADES_BES); вывод console.log(yield oSignedData.Signers.Count); возвращает значение undefined Если есть готовые примеры как правильно следует проверять подпись, то нам было бы очень важно посмотреть на эти примеры. В асинхронной версии нельзя объеденять несколько вызовов подряд через "." без синхронизации. oSignedData.Signers.Count - вот так не будет работать. К моменту вызова Count объет Signers еще не создался. Можно вот так переписать. var Signers = yield oSignedData.Signers; console.log(yield Signers.Count); |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.04.2015(UTC) Сообщений: 31  Откуда: Тирасполь Сказал(а) «Спасибо»: 4 раз Поблагодарили: 2 раз в 2 постах
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close