Расшифровать / извлечь содержимое файла smime.p7m (электронная почта со встроенными файлами) с помощью OpenSSL?
Вопрос
У нас есть старый процесс (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.