## GMimeMultipartEncrypted GMimeMultipartEncrypted — Encrypted MIME multiparts |

## Synopsis

    struct              GMimeMultipartEncrypted;
    GMimeMultipartEncrypted * g_mime_multipart_encrypted_new
                                                            (void);
    int                 g_mime_multipart_encrypted_encrypt  (GMimeMultipartEncrypted *mpe,
                                                             GMimeObject *content,
                                                             GMimeCryptoContext *ctx,
                                                             gboolean sign,
                                                             const char *userid,
                                                             GMimeDigestAlgo digest,
                                                             GPtrArray *recipients,
                                                             GError **err);
    GMimeObject *       g_mime_multipart_encrypted_decrypt  (GMimeMultipartEncrypted *mpe,
                                                             GMimeCryptoContext *ctx,
                                                             GMimeDecryptResult **result,
                                                             GError **err);

## Object Hierarchy

      GObject
       +----GMimeObject
             +----GMimeMultipart
                   +----GMimeMultipartEncrypted

## Description

A GMimeMultipartEncrypted part is a special subclass of GMimeMultipart to make it easier to manipulate the multipart/encrypted MIME type.

## Details

### struct GMimeMultipartEncrypted

    struct GMimeMultipartEncrypted;

A multipart/encrypted MIME part.

### g_mime_multipart_encrypted_new ()

    GMimeMultipartEncrypted * g_mime_multipart_encrypted_new
                                                            (void);

Creates a new MIME multipart/encrypted object.

Returns : | an empty MIME multipart/encrypted object.

### g_mime_multipart_encrypted_encrypt ()

    int                 g_mime_multipart_encrypted_encrypt  (GMimeMultipartEncrypted *mpe,
                                                             GMimeObject *content,
                                                             GMimeCryptoContext *ctx,
                                                             gboolean sign,
                                                             const char *userid,
                                                             GMimeDigestAlgo digest,
                                                             GPtrArray *recipients,
                                                             GError **err);

Attempts to encrypt (and conditionally sign) the `content` MIME part to the public keys of `recipients` using the `ctx` encryption context. If successful, the encrypted GMimeObject is set as the encrypted part of the multipart/encrypted object `mpe`.

`mpe` : | multipart/encrypted object
`content` : | MIME part to encrypt
`ctx` : | encryption context
`sign` : | `TRUE` if the content should also be signed or `FALSE` otherwise
`userid` : | user id to use for signing (only used if `sign` is `TRUE`)
`digest` : | digest algorithm to use when signing
`recipients` : | an array of recipients to encrypt to. [element-type utf8]
`err` : | a GError
Returns : | `0` on success or `-1` on fail. If the encryption fails, an exception will be set on `err` to provide information as to why the failure occured.

### g_mime_multipart_encrypted_decrypt ()

    GMimeObject *       g_mime_multipart_encrypted_decrypt  (GMimeMultipartEncrypted *mpe,
                                                             GMimeCryptoContext *ctx,
                                                             GMimeDecryptResult **result,
                                                             GError **err);

Attempts to decrypt the encrypted MIME part contained within the multipart/encrypted object `mpe` using the `ctx` decryption context.

If `result` is non-`NULL`, then on a successful decrypt operation, it will be updated to point to a newly-allocated GMimeDecryptResult with signature status information as well as a list of recipients that the part was encrypted to.

`mpe` : | multipart/encrypted object
`ctx` : | decryption context
`result` : | a GMimeDecryptionResult
`err` : | a GError
Returns : | the decrypted MIME part on success or `NULL` on fail. If the decryption fails, an exception will be set on `err` to provide information as to why the failure occured. [transfer full]

## See Also

GMimeMultipart