## GMimeMultipartEncrypted GMimeMultipartEncrypted — Encrypted MIME multiparts |

## Functions

GMimeMultipartEncrypted * | g_mime_multipart_encrypted_new ()
int | g_mime_multipart_encrypted_encrypt ()
GMimeObject * | g_mime_multipart_encrypted_decrypt ()
GMimeObject * | g_mime_multipart_encrypted_decrypt_session ()

## Types and Values

struct | GMimeMultipartEncrypted

## 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.

## Functions

### 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` .

#### Parameters

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.

#### Parameters

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]

### g_mime_multipart_encrypted_decrypt_session ()

    GMimeObject *
    g_mime_multipart_encrypted_decrypt_session
                                   (GMimeMultipartEncrypted *mpe,
                                    GMimeCryptoContext *ctx,
                                    const char *session_key,
                                    GMimeDecryptResult **result,
                                    GError **err);

Attempts to decrypt the encrypted MIME part contained within the multipart/encrypted object `mpe` using the `ctx` decryption context trying only the supplied session key. If `session_key` is non-`NULL`, but is not valid for the ciphertext, the decryption will fail even if other available secret key material may have been able to decrypt it. If `session_key` is `NULL`, this does the same thing as `g_mime_multipart_encrypted_decrypt()`.

When non-`NULL`, `session_key` should be a `NULL`-terminated string, such as the one returned by `g_mime_decrypt_result_get_session_key()` from a previous decryption.

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.

#### Parameters

mpe | multipart/encrypted object |
ctx | decryption context |
session_key | session key to use |
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]

## Types and Values

### struct GMimeMultipartEncrypted

    struct GMimeMultipartEncrypted;

A multipart/encrypted MIME part.

#### Members

## See Also

GMimeMultipart