Я пишу и тестирую небольшой учебник для моих одногруппников, занимающихся домашним заданием openSSL. У нас есть куча PDF-файлов, я являюсь центром сертификации, и каждый должен прислать мне подписанный PDF-файл для проверки.
Я сказал им сделать следующее (и попытался сделать это сам)
- Запрос и получить сертификат (я пропущу эту часть)
- Создайте сообщение MIME с файлом PDF в нем.
makemime -c "text/pdf" -a "Content-Disposition: attachment; filename=”Elaborato.pdf" Elaborato.pdf > Elaborato.pdf.msg
Войти с помощью openSSL
openssl smime -sign -in Elaborato.pdf.msg -out Elaborato.pdf.p7m -certfile ca.pem -certfile nomegruppo.crt -inkey nomegruppo.key -signer nomegruppo.crt
Проверить с помощью
openssl smime -verify -in Elaborato.pdf.p7m -out Elaborato-verified.msg -CAfile ca.pem -signer nomegruppo.crt
- Извлечь вложение с помощью
munpack Elaborato-verified.msg
- Просмотр с помощью Acrobat Reader
Проблема в том, что даже если я получаю файл, который (по своему двоичному содержимому) напоминает файл PDF, мой текущий просмотрщик PDF в Ubuntu его не читает. XXXElaborato.pdf
извлеченный munpack, немного меньше оригинала.
В чем проблема с этой процедурой? Теоретически, они должны отправить мне подписанное сообщение S/MIME, и я смогу прочитать в нем PDF-файл. Почему я не могу восстановить исходное содержимое файла PDF?