2013-10-15 3 views
-1

Мне нужно подписать документы с подписью CAdES-A и предоставить услугу, которая предоставляет это мне.Как открыть файл, подписанный с помощью CAdES?

Теперь, допустим, я подписываю файл GIF. То, что я получаю от службы подписи, если я получу ее правильно, представляет собой конверт, содержащий исходный документ, подпись и временную метку.

Моя проблема в том, что, по крайней мере, в тестах, которые я сделал, это больше не файл GIF, то есть я не могу открыть его с помощью средства просмотра изображений и посмотреть исходное изображение.

Итак, мой вопрос: как только я подпишу произвольный тип документа с использованием CAdES-A, как открыть его для доступа к его исходному содержимому?

Обратите внимание: моя проблема не проверяет подпись или временную метку (это прекрасно работает), это действительно «видя» исходный документ. Кроме того, я знаю, как делать вещи для PDF. Это вопрос «произвольного формата», который беспокоит меня.

Заранее спасибо.

ответ

0

В конце концов мне удалось получить исходный файл из конверта с помощью OpenSSL:

openssl smime -verify -in x-click-but04.p7s -inform DER -signer certificate.cer -noverify -out x.gif 

Где

  • Certificate.cer является сертификат, используемый для подписания
  • X-Click -but04.p7s - это огибающая подпись, содержащая подпись + исходный файл + timestamp
  • x.gif (выходной файл) является исходным файлом t шляпа извлекается из конверта
1

Как вы заметили, оберточная подпись скрывает исходный формат данных, делая данные «непригодными для использования». Библиотека или служба, которая проверяет подпись, также должны предоставлять доступ к исходным данным - просто перепроверить ее API. Или используйте другой API, если он недоступен.

Альтернативой является использование отдельных подписей - они хранятся и хранятся отдельно, и они не меняют оригинальный файл. Это будет работать, если ваш код создает и проверяет подписи (я думаю, что большинство сторонних организаций ожидали бы один подписанный блок данных, а не отдельную подпись).

Смежные вопросы