Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ 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 Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.