mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
5f2832ae21
We will use this centralized function to consolidate the awkward behavior around different gmime versions. It's only invoked from two places: mime-node.c's node_decrypt_and_verify() and lib/index.cc's _index_encrypted_mime_part(). However, those two places have some markedly distinct logic, so the interface for this _notmuch_crypto_decrypt function is going to get a little bit clunky. It's worthwhile, though, for the sake of keeping these #if directives reasonably well-contained.
34 lines
749 B
C
34 lines
749 B
C
#ifndef _CRYPTO_H
|
|
#define _CRYPTO_H
|
|
|
|
#include <stdbool.h>
|
|
#include "gmime-extra.h"
|
|
#include "notmuch.h"
|
|
|
|
typedef struct _notmuch_crypto {
|
|
bool verify;
|
|
bool decrypt;
|
|
#if (GMIME_MAJOR_VERSION < 3)
|
|
GMimeCryptoContext* gpgctx;
|
|
GMimeCryptoContext* pkcs7ctx;
|
|
const char *gpgpath;
|
|
#endif
|
|
} _notmuch_crypto_t;
|
|
|
|
GMimeObject *
|
|
_notmuch_crypto_decrypt (GMimeCryptoContext* crypto_ctx,
|
|
GMimeMultipartEncrypted *part,
|
|
GMimeDecryptResult **decrypt_result,
|
|
GError **err);
|
|
|
|
#if (GMIME_MAJOR_VERSION < 3)
|
|
notmuch_status_t
|
|
_notmuch_crypto_get_gmime_ctx_for_protocol (_notmuch_crypto_t *crypto,
|
|
const char *protocol,
|
|
GMimeCryptoContext **ctx);
|
|
#endif
|
|
|
|
void
|
|
_notmuch_crypto_cleanup (_notmuch_crypto_t *crypto);
|
|
|
|
#endif
|