Расшифровать / извлечь содержимое файла smime.p7m (электронная почта со встроенными файлами) с помощью OpenSSL?

StackOverflow https://stackoverflow.com/questions/443580

  •  22-07-2019
  •  | 
  •  

Вопрос

У нас есть старый процесс (VBScript), который читает общий почтовый ящик и обрабатывает определенные электронные письма в базе данных.

В новых правилах все сообщения с вложениями теперь имеют цифровую подпись.

Теперь процесс извлекает только один файл (smime.p7m). Используя средство просмотра на основе графического интерфейса, я могу видеть встроенные файлы и извлекать их без проблем. Однако, что мне действительно нужно, это экстрактор на основе командной строки, который будет записывать встроенные файлы (PDF, DOC, XLS) - они не шифруются, а просто подписываются. Я проверил это с помощью ноутбука, у которого не было сертификатов, и просто открыл файл smime.p7m с помощью вышеупомянутого средства просмотра.

Похоже, что OpenSSL расшифрует / извлечет это, и кому-то удалось получить версию, скомпилированную в Windows. Тем не менее, многие пробные и ошибочные тесты исполняемого файла были разочаровывающими, потому что я не могу найти правильную комбинацию флагов, чтобы просто сказать "открыть файл smime.p7m и выписать все встроенные файлы, которые вы найдете". " openssl smime " всегда кажется, что хочет "cert.pem" после всех вариантов, и я не получил это.

Чего мне не хватает? Заранее спасибо.

Это было полезно?

Решение 2

Похоже, единственный доступный вариант - написать простую программу с использованием библиотеки Chilkat. Этот вариант стоит $ 149 или $ 289, в зависимости от того, какую лицензию для каждого разработчика, но, по крайней мере, он бесплатен.

Другие советы

Пробовали ли вы -noverify? опция openssl?

Для сообщения с подписью вы можете использовать   " openssl smime -verify -in -noverify -out / tmp / blob "

Затем вы можете использовать синтаксический анализатор, аналогичный RFC822, чтобы получить тело и вложения из этого "блоба". Это означает, что ваш синтаксический анализатор должен быть способен к кодировке, такой как quoted-printable и base64.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top