take more cruft to the bin
[apps/madmutt.git] / lib-crypt / crypt-gpgme.h
index 45f9145..4c4e021 100644 (file)
 
 #include <lib-crypt/crypt.h>
 
-void pgp_gpgme_init (void);
-void smime_gpgme_init (void);
+/* {{{ cruft */
 
-char *pgp_gpgme_findkeys (address_t * to, address_t * cc, address_t * bcc);
-char *smime_gpgme_findkeys (address_t * to, address_t * cc, address_t * bcc);
+/* Type defintions for crypto module functions. */
+typedef int (*crypt_func_encrypted_handler_t) (BODY * m, STATE * s);
 
-BODY *pgp_gpgme_encrypt_message (BODY * a, char *keylist, int sign);
-BODY *smime_gpgme_build_smime_entity (BODY * a, char *keylist);
+typedef void (*crypt_func_pgp_invoke_getkeys_t) (address_t * addr);
+typedef BODY *(*crypt_func_pgp_make_key_attachment_t) (char *tempf);
+typedef int (*crypt_func_send_menu_t) (HEADER * msg, int *redraw);
 
-int pgp_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
-                            BODY ** cur);
-int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
-                              BODY ** cur);
+ /* (SMIME) */
+typedef void (*crypt_func_smime_getkeys_t) (ENVELOPE * env);
+typedef BODY *(*crypt_func_smime_build_smime_entity_t) (BODY * a,
+                                                        char *certlist);
 
-int pgp_gpgme_check_traditional (FILE * fp, BODY * b, int tagged_only);
+typedef struct crypt_module_specs {
+    /* Common/General functions.  */
+    crypt_func_encrypted_handler_t encrypted_handler;
 
-int pgp_gpgme_application_handler (BODY * m, STATE * s);
-int smime_gpgme_application_handler (BODY * a, STATE * s);
-int pgp_gpgme_encrypted_handler (BODY * a, STATE * s);
+    /* PGP specific functions.  */
+    crypt_func_pgp_make_key_attachment_t pgp_make_key_attachment;
+    crypt_func_pgp_invoke_getkeys_t pgp_invoke_getkeys;
 
-BODY *pgp_gpgme_make_key_attachment (char *tempf);
+    /* S/MIME specific functions.  */
+    crypt_func_smime_getkeys_t smime_getkeys;
+    crypt_func_smime_build_smime_entity_t smime_build_smime_entity;
+} crypt_module_specs_t;
 
-BODY *pgp_gpgme_sign_message (BODY * a);
-BODY *smime_gpgme_sign_message (BODY * a);
+extern struct crypt_module_specs crypt_mod_SMIME_gpgme;
+extern struct crypt_module_specs crypt_mod_PGP_gpgme;
 
-int pgp_gpgme_verify_one (BODY * sigbdy, STATE * s, const char *tempfile);
-int smime_gpgme_verify_one (BODY * sigbdy, STATE * s, const char *tempfile);
+/* }}} */
 
-int smime_gpgme_verify_sender (HEADER* h);
+BODY *pgp_gpgme_encrypt_message (BODY * a, char *keylist, int sign);
+BODY *smime_gpgme_build_smime_entity (BODY * a, char *keylist);
 
-int pgp_gpgme_send_menu (HEADER * msg, int *redraw);
-int smime_gpgme_send_menu (HEADER * msg, int *redraw);
-void pgp_gpgme_invoke_import(const char *fname);
-void pgp_gpgme_from_attachment_list (FILE * fp, int tag, BODY * top);
+int pgp_gpgme_check_traditional (FILE * fp, BODY * b, int tagged_only);
+int pgp_gpgme_encrypted_handler (BODY * a, STATE * s);
+BODY *pgp_gpgme_make_key_attachment (char *tempf);
 
 #endif