]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-client.h
cli: new crypto structure to store crypto contexts and parameters, and functions...
[notmuch] / notmuch-client.h
index f9fc0a673668f94866ade22b3ab2ccf7648a1a50..6664075aee5123a252df92821ba0c9d5ae158aff 100644 (file)
@@ -36,6 +36,9 @@
  * these to check the version number. */
 #ifdef GMIME_MAJOR_VERSION
 #define GMIME_ATLEAST_26
+typedef GMimeCryptoContext notmuch_crypto_context_t;
+#else
+typedef GMimeCipherContext notmuch_crypto_context_t;
 #endif
 
 #include "notmuch.h"
@@ -70,43 +73,21 @@ typedef struct notmuch_show_format {
     notmuch_status_t (*part) (const void *ctx,
                              struct mime_node *node, int indent,
                              const struct notmuch_show_params *params);
-    const char *message_start;
-    void (*message) (const void *ctx,
-                    notmuch_message_t *message,
-                    int indent);
-    const char *header_start;
-    void (*header) (const void *ctx,
-                   notmuch_message_t *message);
-    void (*header_message_part) (GMimeMessage *message);
-    const char *header_end;
-    const char *body_start;
-    void (*part_start) (GMimeObject *part,
-                       int *part_count);
-    void (*part_encstatus) (int status);
-#ifdef GMIME_ATLEAST_26
-    void (*part_sigstatus) (GMimeSignatureList* siglist);
-#else
-    void (*part_sigstatus) (const GMimeSignatureValidity* validity);
-#endif
-    void (*part_content) (GMimeObject *part);
-    void (*part_end) (GMimeObject *part);
-    const char *part_sep;
-    const char *body_end;
-    const char *message_end;
     const char *message_set_sep;
     const char *message_set_end;
 } notmuch_show_format_t;
 
+typedef struct notmuch_crypto {
+    notmuch_crypto_context_t* gpgctx;
+    notmuch_bool_t decrypt;
+} notmuch_crypto_t;
+
 typedef struct notmuch_show_params {
     notmuch_bool_t entire_thread;
     notmuch_bool_t omit_excluded;
     notmuch_bool_t raw;
     int part;
-#ifdef GMIME_ATLEAST_26
-    GMimeCryptoContext* cryptoctx;
-#else
-    GMimeCipherContext* cryptoctx;
-#endif
+    notmuch_crypto_context_t* cryptoctx;
     notmuch_bool_t decrypt;
 } notmuch_show_params_t;
 
@@ -136,6 +117,12 @@ chomp_newline (char *str)
        str[strlen(str)-1] = '\0';
 }
 
+notmuch_crypto_context_t *
+notmuch_crypto_get_context (notmuch_crypto_t *crypto, const char *protocol);
+
+int
+notmuch_crypto_cleanup (notmuch_crypto_t *crypto);
+
 int
 notmuch_count_command (void *ctx, int argc, char *argv[]);
 
@@ -378,11 +365,7 @@ struct mime_node {
  */
 notmuch_status_t
 mime_node_open (const void *ctx, notmuch_message_t *message,
-#ifdef GMIME_ATLEAST_26
-               GMimeCryptoContext *cryptoctx,
-#else
-               GMimeCipherContext *cryptoctx,
-#endif
+               notmuch_crypto_context_t *cryptoctx,
                notmuch_bool_t decrypt, mime_node_t **node_out);
 
 /* Return a new MIME node for the requested child part of parent.