• Страница:
  • 1
  • 2

ТЕМА: Мануалы

Re: Мануалы 4 года, 9 мес. назад #1281

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Так точно!
Как раз таки, PDF и подпадает под описание файловых "кусков", состоящий из блоков. Подписав простую картинку - ее не откроешь больше, а с PDF - проблем нет. Смотрел в сторону XML, но, т.к. придется передавать документы в сторонние организации, боюсь использовать XML в виду неосведомленности простых пользователей работы с ним. А PDF знают все, открыть и проверить его смогут кто угодно...

Re: Мануалы 4 года, 9 мес. назад #1282

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

Для получения подписи в BASE64 установите флаг CF_OUT_BASE64.
Флаги передаются в параметре OperFlags функции SignData2.

Пример:
OperFlags: IOLACOM_OPERFLAGS;
OperFlags := OperFlags or CF_OUT_BASE64;
redt_SignedData.Text := IolaTest.SignData2( ComboBox1.Items[ComboBox1.ItemIndex], OperFlags, redt_data.Text, '');
Модератор

Re: Мануалы 4 года, 9 мес. назад #1283

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Файлы PDF подписываю функцией SignData.
Файл PDF является бинарным, поэтому устанавливать галочку CF_OUT_BASE64 никак нельзя. В противном случае - файл будет невозможно открыть штатными средствами открытия PDF.
Без установки галочки CF_OUT_BASE64, PDF подписываются, и открываются штатно.

Но, установленную подпись, мне необходимо так же продублировать в "нормальной" читабельной кодировке, для формирования QR-кода. И тут два варианта:
1) получить текстовый ДУБЛИКАТ подписи, во время проведения подписи оригинального файла
2) прочесть оригинальный ПОДПИСАННЫЙ файл, и считать подпись оттуда

Есть ли возможность такой реализации?

Re: Мануалы 4 года, 9 мес. назад #1288

  • ugotbug
  • Завсегдатай
  • Постов: 225
  • Репутация: 14
Очень много вы тут написали...
Давайте все разложим по полочкам.
Вы хотите отображать пользователю электронный подписанный документ в "человекочитаемом" формате. Для
этого как нельзя лучше подходит формат PDF. И тут есть два способа подписания:

1) Встроить подпись внутрь самого документа.
2) Иметь отделенную подпись на этот документ.

В первом случае необходимо иметь соответствующие инструменты, это может быть и Adobe Acrobat Professional или какое-либо другое ПО, поддерживающее спецификацию PDF. Мы, к сожалению, не поставляем такого специализированного программного обеспечения. Для возможности подписания документа в AAP необходимо инсталлировать в ОС Windows соответствующие крипотбиблиотеки (соответствующие спецификации MS CryptoAPI), либо подгрузить их через AAP (PKCS#11), для платформ отличных от Windows. И в данном случае у нас пока нет таких библиотек для AAP. К сожалению. Работа с чистым "PDF" - проблема.

Во втором случае наш COM объект может вам помочь. Он позволяет подписывать внешние документы. Подпись на выходе можете быть в формате PKCS#7, XML или сырой подписи.

В ваше случае, было бы правильное использовать в качестве контейнера XML, в котором будет тег содержащий ссылку (file://*.pdf или website.no/*.pdf) на документ, а также можно добавлять любые другие атрибуты.
Могущественный обладатель кольца Знаний
Изменено: 4 года, 9 мес. назад от ugotbug.

Re: Мануалы 4 года, 9 мес. назад #1289

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Пооонял....я примерно и подозревал, что чистая работа с PDF - это проблема.
А что если будет третий вариант:
1) Пользователь подписывает PDF документ своей подписью методом SingData
2) Система, получает БИНАРНУЮ подпись пользователя, и подписывает ее СВОЕЙ (сервисной) подписью, но уже в человеческом формате
3) С помощью человеческого формата сервисной подписи будет формироваться QR-код.

В таком случае юридическая сила ЭЦП сохранится же?

Re: Мануалы 4 года, 9 мес. назад #1290

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Ребят! Спасибо ОГРОМНОЕ!
Послушаюсь Вашего совета, сделаю следующее.
Буду на основе PDF-ки генерировать XML
:pinch: ВНИМАНИЕ: СПОЙЛЕР!

Тупо программно перевел бинарный файл PDF в текстовый BASE64.
И с помощью совсем нехитрого декодера, можно скопировать текстовый BASE код и получить на выходе PDF!
И подпись в файле, и овцы целы

Вот полный пример во вложении

Вложенный файл:

Имя файла: 2.PDF
Размер файла: 1,420 KB
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba