mutt/2428: S/MIME opaque signed mails unverified or undisplayed
>Number: 2428
>Notify-List:
>Category: mutt
>Synopsis: S/MIME opaque signed mails unverified or undisplayed
>Confidential: no
>Severity: normal
>Priority: medium
>Responsible: mutt-dev
>State: open
>Keywords:
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Aug 18 17:21:10 +0200 2006
>Originator: Alain Bench <veronatif@xxxxxxx>
>Release: 1.5.13
>Organization:
>Environment:
>Description:
Hello ALL and others,
When displaying S/MIME opaque signed mails, of type
application/x-pkcs7-mime; smime-type=signed-data, Mutt 1.5.13 with
default smime.rc has one or the other of 2 problems:
| $ mutt-1.5.13-stock -nF ~/.mutt/smime.rc -Rf /tmp/smime-opaque.mbox
- If signature is GOOD: The mail text appears, but there is no OpenSSL
output, no uppercase "S" in index, Mutt errors "S/MIME signature could
NOT be verified.", and $beeps:
| [-- The following data is S/MIME signed --]
| test S/MIME opaque signature.
|
| [-- End of S/MIME signed data. --]
|
| S/MIME signature could NOT be verified.
- If signature is BAD (expired, lacking CA, whatever): The same hints
of error do appear, rightly. But there is still no OpenSSL output to
show the error reason, and the mail text does *not* appear.
| [-- The following data is S/MIME signed --]
|
| [-- End of S/MIME signed data. --]
|
| S/MIME signature could NOT be verified.
The attached smime-opaque.mbox contains 2 such signed mails, one
expired, and one valid. You'll also need the CAcert root certificate
from <URL:http://www.CAcert.org/>.
The default $smime_verify_opaque_command is "openssl smime -verify
-inform DER -in %s %C". Adding "-noverify" and removing "%C" displays
mail text always, but does not verify. I haven't found yet one command
that both verifies and always outputs text. Manual verifications:
| $ openssl smime -verify -in smime2.p7m -inform DER \
| -CAfile ~/.smime/ca-bundle.crt -text ; echo $?
| stdout> test S/MIME opaque signature.
| stderr> Verification successful
| return> 0
|
| $ openssl smime -verify -in smime1.p7m -inform DER \
| -CAfile ~/.smime/ca-bundle.crt -text ; echo $?
| stderr> Verification failure
| stderr> 29361:error:21075075:PKCS7 routines:PKCS7_verify:certificate \
| verify error:pk7_smime.c:222:Verify error:certificate has expired
| return> 4
...gives nothing to stdout when verification failed. Hum... The
following double call ugly hack always displays text, and verifies to
stderr. But Mutt doesn't display stderr...
| set smime_verify_opaque_command="\
| openssl smime -verify -inform DER -in %s %C ||\
| openssl smime -verify -inform DER -in %s -noverify 2>/dev/null"
Note this was already reported in a MU thread at 1.5.5.1 times:
| Date: Fri, 2 Jan 2004 13:03:33 +0100 (CET)
| From: Alain Bench <messtic@xxxxxxxxx>
| To: Mutt users ml <mutt-users@xxxxxxxx>
| Subject: S/MIME app/x-pkcs7-mime signed-data
| Message-ID: <20040102120332.GA18510@xxxxxxxxx>
The other problem discussed there, about Apple Mail 2.612, seem now
solved. And the old mailcap workaround can be updated to:
| # auto_view in pager: display mail's body, without header, and verification
status
| application/x-pkcs7-mime ;\
| ( openssl smime -verify -text -inform DER -in %s -CAfile
~/.smime/ca-bundle.crt ||\
| openssl smime -verify -text -inform DER -in %s -noverify 2>/dev/null ) |\
| fromdos ;\
| nametemplate=%s.p7m ;\
| test=test %{smime-type} == signed-data ;\
| copiousoutput
Bye! Alain.
>How-To-Repeat:
>Fix:
>Add-To-Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-gzip-compressed; name="smime-opaque.mbox.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime-opaque.mbox.gz"
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
9UzV74UmBPk/deF2H4M0AAA=