Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Автор: vorh Как оказалось не один из доступных способов в js то же не может декодировать подпись - все валятся с ошибкой
Можно ли изменить чтобы CAdESCOM.CPSigner подпись сразу выдавал в бинарном формате ? Какая цель? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Автор: vorh Иногда удается нормально декодировать , но подпись не открывается как .p7b
В чем может быть проблема ? Зачем это всё делается? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
После подписание документа , надо сохранить подпись на сервере , чтобы потом дать возможность юзерам скачать ее в личном кабинете на сайте и затем зайти на гос портал проверить ее.
Т.е. это планировал сделать как : подпись отправляется на сервер в Base64 - декодируется и затем сохраняется в бд
Если я что то делаю не так , можете подсказать другой способ или указать на мои ошибки.
Пытался декодировать с помощью js на стороне клиента - получил вот такую строку:
0⇒\u0006\t*戆獁\u0007\u0002ð⇿\u0002\u0001\u00011\f0\n\u0006\u0006*僂\u0002\t\u0005
Что с ней делать то же не понятно
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.12.2016(UTC) Сообщений: 114 Сказал «Спасибо»: 26 раз
|
Автор: Андрей * Это получается, нужно скачать файл. Запустить проверку. И только потом я смогу получить данные сертификата. А без нее никак? Если я и так уверен что подпись от нужного файла.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2035 раз в 1579 постах
|
Можно и без файлов, "на вход" же не файл подается, а данные. И инициализировать можно некорректными данными и запросить проверку. |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.12.2016(UTC) Сообщений: 114 Сказал «Спасибо»: 26 раз
|
Автор: Андрей * Можно и без файлов, "на вход" же не файл подается, а данные. И инициализировать можно некорректными данными и запросить проверку. Спасибо большое буду пробывать.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.12.2016(UTC) Сообщений: 114 Сказал «Спасибо»: 26 раз
|
Автор: 4eIIIupKo Автор: Андрей * Можно и без файлов, "на вход" же не файл подается, а данные. И инициализировать можно некорректными данными и запросить проверку. Спасибо большое буду пробывать. Код: cadesplugin.async_spawn(function*(arg){
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try{
yield oSignedData.propset_ContentEncoding(1);
yield oSignedData.propset_Content(dataToVerify);
yield oSignedData.VerifyCades(sSignedMessage.replace(/(\r\n|\n|\r)/gm," "),CADESCOM_CADES_BES,true);
}catch(err){
error_eds("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
return false;
}
console.log(yield oSignedData.Signers.Item(1).Certificate.SigningTimestampTime);
//$('#eds_status').modal('hide');
});
Не работает. Вылетает с ошибкой Uncaught (in promise) TypeError: oSignedData.Signers.Item is not a function. Как отловить?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.12.2016(UTC) Сообщений: 114 Сказал «Спасибо»: 26 раз
|
Проблема была в синхронности. Вдруг кому-то пригодится. Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try{
yield oSignedData.propset_ContentEncoding(1);
yield oSignedData.propset_Content(sBase64Data);
yield oSignedData.VerifyCades(eds.replace(/(\r\n|\n|\r)/gm," "),CADESCOM_CADES_BES,true);
}catch(err){
error_eds("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
return false;
}
var Signers = yield oSignedData.Signers;
console.log(yield Signers.Count);
var Item = yield Signers.Item(1);
console.log(yield Signers.Item(1));
var Certificate = yield Item.Certificate;
console.log(yield Item.Certificate);
AddCertInfoForEDS_Async(Certificate);
А еще вопрос как выдрать СНИЛС и другие данные с сертификата? Отредактировано пользователем 25 июля 2017 г. 13:00:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Данные сертификата можно получить через метод GetInfo() с нужными параметрами. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.05.2021(UTC) Сообщений: 49 Откуда: NN Сказал(а) «Спасибо»: 15 раз
|
Автор: Андрей * Андрей, можете сориентировать, какие еще методы кроме Certificate, есть у свойства Signers.Item? Хотелось бы знать, что еще можно извлечь, например, у SignedData.Signers.Item[n]?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close