ietf-smime
[Top] [All Lists]

multipart/signed interoperability

2001-04-12 01:37:13
Hi all,

Thanks for all responses regarding my multipart/signed questions. Some of the problems I encountered were problems related to our own PKCS7 module.

Still I have found some interoperability problems when signing/verifying MIME multipart bodies. Attached are four different S/MIME messages. The two files ending in _fail could not be verified by openssl. These two files are the two non _fail files modified with an extra CRLF added (see below). However both _fail files could be verified by Outlook Express 5.0.

The two files starting with signed... were created by OE while the ones named openssl... were created by (surprise!) openssl.

My conclusions are the following:

OE verifies:
----------------------------------------
Content-Type multipart/signed boundary=outer

--outer
Content-Type: multipart/something boundary=inner //Signature starts on C
...
--inner
Content-Type: text/plain
...
--inner
Content-Type: text/html
...
--inner--
<CRLF> //Signature stops on first CRLF after ending inner boundary
<CRLF>
<CRLF>
<CRLF>
--outer
...



Openssl verifies:
-----------------------------------------
Content-Type multipart/signed boundary=outer

--outer
Content-Type: multipart/something boundary=inner //Signature starts on C
...
--inner
Content-Type: text/plain
...
--inner
Content-Type: text/html
...
--inner--
<CRLF>
<CRLF>
<CRLF> //Signature stops at the second to last CRLF before the outer boundary.
<CRLF>
--outer
...

-------------------------------------------------------

When seperating the inner multipart and the outer boundary with TWO boundarys, OE and Openssl will verify the same data. Else one of them will fail depending on who signed the data.

Signing and verifying a simple Mime body is interoperable.

/Peter

Attachment: signed_multi.eml
Description: Text document

Attachment: signed_multi_fail.eml
Description: Text document

Attachment: openssl_multi_sign_sent.eml
Description: Text document

Attachment: openssl_multi_sign_sent_fail.eml
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>