OpenSSL обрабатывает smime-сообщение с Content-type 'Application / EDI' как текст и изменяет разрывы строк - PullRequest
0 голосов
/ 20 октября 2010

Я получаю смайм-сообщение с типом контента «Приложение / EDI».Это нестандартный тип MIME, а контент должен интерпретироваться как двоичный.Но OpenSSL во время проверки подписи обрабатывает его как текст и изменяет разрывы строк с '\ n' на '\ r \ n' (как того требует спецификация для типа содержимого 'text').Таким образом, дайджест становится неправильным, а проверка не проходит.

Есть ли способ заставить openssl ничего не менять в исходном сообщении?Аргумент '-binary' не работает ни в одной версии (я пробовал 0.9.7, 0.9.8, 1.0.0).

1 Ответ

4 голосов
/ 27 октября 2010

Хорошо, отвечаю на мой вопрос.

Я разделил входные данные на два отдельных файла с содержимым и подписью, удалив ненужные метаданные. После этого я изменил тип подписи mime на application/pkcs7-mime, и проверка прошла успешно с помощью этой команды:

openssl.exe smime -verify -inform SMIME -CAfile caCert.pem -certfile cert.pem -in signature.txt -content content.txt

Вариант с изменением -inform на PEM также работает, но подпись должна быть без Content-xxx заголовков

...