## CamelMultipartSigned CamelMultipartSigned |

## Functions

CamelMultipartSigned * | camel_multipart_signed_new ()
CamelStream * | camel_multipart_signed_get_content_stream ()
void | camel_multipart_signed_set_content_stream ()
void | camel_multipart_signed_set_signature ()

## Types and Values

struct | CamelMultipartSigned

## Object Hierarchy

        GObject
        ╰── CamelDataWrapper
            ╰── CamelMultipart
                ╰── CamelMultipartSigned

## Description

## Functions

### camel_multipart_signed_new ()

    CamelMultipartSigned *
    camel_multipart_signed_new (void);

Create a new CamelMultipartSigned object.

A MultipartSigned should be used to store and create parts of type "multipart/signed". This is because multipart/signed is entirely broken-by-design (tm) and uses completely different semantics to other mutlipart types. It must be treated as opaque data by any transport. See rfc 3156 for details.

There are 3 ways to create the part: Use construct_from_stream. If this is used, then you must set the mime_type appropriately to match the data uses, so that the multiple parts my be extracted.

Use construct_from_parser. The parser MUST be in the CAMEL_MIME_PARSER_STATE_HEADER state, and the current content_type MUST be "multipart/signed" with the appropriate boundary and it SHOULD include the appropriate protocol and hash specifiers.

Use sign_part. A signature part will automatically be created and the whole part may be written using write_to_stream to create a 'transport-safe' version (as safe as can be expected with such a broken specification).

#### Returns

a new CamelMultipartSigned object

### camel_multipart_signed_get_content_stream ()

    CamelStream *
    camel_multipart_signed_get_content_stream
                                   (CamelMultipartSigned *mps,
                                    GError **error);

Get the raw signed content stream of the multipart/signed MIME part suitable for use with verification of the signature.

#### Parameters

mps | a CamlMultipartSigned object |
error | return location for a GError, or `NULL` |

#### Returns

the signed content stream

### camel_multipart_signed_set_content_stream ()

    void
    camel_multipart_signed_set_content_stream
                                   (CamelMultipartSigned *mps,
                                    CamelStream *content_stream);

Explicits sets the raw signed content stream of the multipart/signed MIME part.

#### Parameters

mps | a CamelMultipartSigned |
content_stream | a CamelStream |

Since 3.12

### camel_multipart_signed_set_signature ()

    void
    camel_multipart_signed_set_signature (CamelMultipartSigned *mps,
                                          CamelMimePart *signature);

Explicitly sets the signature part of `mps` .

#### Parameters

mps | a CamelMultipartSigned |
signature | a CamelMimePart |

Since 3.12

## Types and Values

### struct CamelMultipartSigned

    struct CamelMultipartSigned;