Статус: Участник
Группы: Участники
Зарегистрирован: 11.06.2021(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день! Подскажите, пожалуйста, можно ли с помощью интерфейса КриптоПро ЭЦП Browser plug-in на JavaScript реализовать отделение файла от присоединённой подписи, чтобы можно было просмотреть файл в исходном формате. Если можно, то подскажите, какие функции или компоненты CAdESCOM для этого нужно использовать?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
Здравствуйте.
После выполнения проверки подписи, запросите Content |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
Клим оставлено 11.06.2021(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.06.2021(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Запросил Content, но он состоит из иероглифов. Нужно использовать ещё что-то чтобы его расшифровать?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
Автор: Клим Никитский Запросил Content, но он состоит из иероглифов. Нужно использовать ещё что-то чтобы его расшифровать? А что было подписано? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.06.2021(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Андрей * Автор: Клим Никитский Запросил Content, но он состоит из иероглифов. Нужно использовать ещё что-то чтобы его расшифровать? А что было подписано? Я подписал файлы txt, jpg и doc. Для txt получился вот такой Content: 瑨灴⼺氯捯污潨瑳眯扥灟条獥振摡獥搯歶挮浯眯污㤲㘴㠶㘷ㅟㄹ Для jpg: �က䙊䙉Āā怀怀 Для doc: 䭐Ѓ Проверил подписи с помощью КриптоАРМ, используя операцию "Снять и проверить ЭП", подписи были проверены успешно и файлы отсоединены корректно.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
Покажите, как смотрите... |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.06.2021(UTC) Сообщений: 12 Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Андрей * Покажите, как смотрите... Сначала проверяю подпись, потом получаю содержимое подписи и создаю файл с этим содержимым. Но если initialData сразу после получения вывести в консоль или посмотреть с помощью alert, то там уже будут иероглифы. fileSignName - это имя файла присоединённой подписи, у которого было убрано расширение sig. Код:...
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.VerifyCades(signature, signType, signDetached);
var initialData = yield oSignedData.Content;
CreateFile(initialData, fileSignName);
...
Код:function CreateFile(data, filename)
{
var file = new Blob([data], {type: ""});
var a = document.createElement("a"), url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
Может нужно до или после получения содержимого, преобразовать его из бинарного массива в base64? При создании подписи я использовал: Код:yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
Да, установить ContentEncoding, проверить, получить и декодировать из base64. Код:
var oSignedData2 = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData2.propset_ContentEncoding(1); //CADESCOM_BASE64_TO_BINARY
yield oSignedData2.VerifyCades(Signature, CADES_BES, detached);
var initialData = yield oSignedData2.Content;
var oMyBlob = new Blob([Base64Binary.decode(initialData)], {type:'application/octet-stream'});
window.open(URL.createObjectURL(oMyBlob));
Base64Binary.zip (2kb) загружен 3 раз(а). |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
Об этом написано в документацииЦитата:Особенности работы с бинарными данными
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,718 Сказал «Спасибо»: 500 раз Поблагодарили: 2053 раз в 1593 постах
|
т.е. в исходном - подключить Base64Binary.js и внести 2 правки: Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(1); //CADESCOM_BASE64_TO_BINARY
yield oSignedData.VerifyCades(signature, signType, signDetached);
var initialData = yield oSignedData.Content;
CreateFile(Base64Binary.decode(initialData), fileSignName);
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
Клим оставлено 15.06.2021(UTC)
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close