The multipart/signed MIME Type

The multipart/signed MIME type is used by both OpenPGP and S/MIME to structure a digital signature and the content that it signs as a MIME entity.

There are two parts to a multipart/signed entity: the first contains the information to be signed, and the second contains the digital signature itself. The second part is known as the control information.

The information to be encrypted must be in the form of a MIME entity. The MIME headers are used along with the data when creating the digital signature.

The multipart/signed type takes three parameters: boundary (the MIME boundary string), protocol (the MIME type of the digital signature), and micalg (the algorithm used to generate the digital signature, or Message Integrity Check). All three of these parameters are mandatory.

A MIME entity that uses this type would look something like this:

Content-Type: multipart/signed; protocol="TYPE/STYPE";
              micalg="MICALG"; boundary="Signed Boundary"

--Signed Boundary
Content-Type: <content type/stype>; <content parameters>

<Content goes here>

--Signed Boundary
Content-Type: TYPE/STYPE

<Control information goes here>

--Signed Boundary--

Values for each of these elements may vary greatly based on the security protocol used. Examples of both OpenPGP and S/MIME messages using this structure are given later in this chapter.

Since the signed part can be any MIME entity, it could therefore be a multipart/encrypted body part that holds encrypted data. This, however, is not how ...

Get Programming Internet Email now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.