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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline KAS  
#1 Оставлено : 28 июня 2018 г. 20:33:26(UTC)
KAS

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Доброго времени суток!

Имеется несколько вопросов по подписи хеша pdf-файла.
На текущий момент реализована подпись pdf-файла с помощью iTextSharp и Browser plug-in:
1) Приложение на C# создает pdf-файл;
2) С помощью iTextSharp внедряется контейнер с пустой подписью и вычисляется хеш по алгоритму GOST3411;
3) С помощью Browser plug-in выполняется вычисление подписи на основании полученного хеша, записанного в виде строки шестнадцатеричных чисел;
4) С помощью iTextSharp в контейнер с пустой подписью внедряется вычисленная подпись.

Главный модуль:

Модуль подписи pdf с помощью iTextSharp:

Модуль подписи хеша с помощью Browser plug-in:

Такая реализация позволяет делать подпись pdf-файла, которая проходит валидацию с помощью Adobe Reader + КриптоПро PDF.
Но при реализации возникла пара вопросов:
1) Если в коде главного модуля преобразование хеша из массива байтов в строку шестнадцатиричных чисел:
Код:
string hashInHex = BitConverter.ToString(hash).Replace("-", string.Empty);

заменить на преобразование хеша из массива байтов в Base64-строку:
Код:
string hashBase64 = Convert.ToBase64String(hash);

а в коде модуля подписи хеша с помощью Browser plug-in добавить строку:
Код:
oHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);

перед строкой:
Код:
yield oHashedData.SetHashValue(dataToSign);

то возникает ошибка:
Цитата:
The data is invalid. (0x8007000D)

Почему такое происходит? На форуме были какие-то замечания о том что, Browser plug-in как-то по особенному работает с Base64, строка Base64 должна быть как-то развернута или что-то в этом роде...
Пробовал по разному крутить строку, но положительного результата не получил.
Где про это можно прочитать более подробно? И в чем ошибка?

2) Как можно подписать хеш pdf-файла, по аналогии с подписью Browser plug-in, но кодом на C# и/или с помощью КриптоПро .NET?
Пытался сделать следующим образом:
Но полученная подпись не проходит валидацию с помощью Adobe Reader + КриптоПро PDF.

Также попытался сделать подпись хеша через CAdESCOM:
Но полученная подпись также не проходит валидацию с помощью Adobe Reader + КриптоПро PDF.

Может я что-то упустил?

Заранее благодарю за помощь!

PS: Если добавил тему не в правильную ветку форма, то прошу переместить в правильно место.
thanks 1 пользователь поблагодарил KAS за этот пост.
Vadim_Pil оставлено 23.10.2019(UTC)
Offline Павел Смирнов  
#2 Оставлено : 29 июня 2018 г. 6:58:14(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Цитата по http://cpdn.cryptopro.ru/default.asp?url=content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_hashed_data_07be047e6eef9c03b6953718d8086ff5_107be047e6eef9c03b6953718d8086ff5.html:
{quote}Хэш-значение, которым следует проинициализировать объект. Должно быть представлено в виде строки шестнадцатеричных цифр.{quote}

Для данного свойства не предусмотрен способ задания значения в base64.
Техническую поддержку оказываем тут.
Наша база знаний.
thanks 2 пользователей поблагодарили Павел Смирнов за этот пост.
KAS оставлено 29.06.2018(UTC), ivar.mikhailovich оставлено 09.08.2018(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.