]> granicus.if.org Git - neomutt/commitdiff
smime: factor out context
authorRichard Russon <rich@flatcap.org>
Thu, 18 Jul 2019 13:02:48 +0000 (14:02 +0100)
committerRichard Russon <rich@flatcap.org>
Thu, 18 Jul 2019 15:12:59 +0000 (16:12 +0100)
commands.c
ncrypt/crypt.c
ncrypt/crypt_gpgme.c
ncrypt/crypt_gpgme.h
ncrypt/crypt_mod.h
ncrypt/cryptglue.c
ncrypt/ncrypt.h
ncrypt/smime.c
ncrypt/smime.h

index 4b238d74b232026bf55b39e56b8c3d755466ecdd..3f5f79e05b83ab19bdcd13b5baca67fd543b62ed 100644 (file)
@@ -311,7 +311,7 @@ int mutt_display_message(struct Email *e)
     {
       if (e->security & SEC_GOODSIGN)
       {
-        if (crypt_smime_verify_sender(e) == 0)
+        if (crypt_smime_verify_sender(Context->mailbox, e) == 0)
           mutt_message(_("S/MIME signature successfully verified"));
         else
           mutt_error(_("S/MIME certificate owner does not match sender"));
index 89f7a4aa6d20e6a75c65bebbc4387ce577bdce8c..96df17fe8d9ec9c279fa49f944f8f907e91bc481 100644 (file)
@@ -44,7 +44,6 @@
 #include "email/lib.h"
 #include "mutt.h"
 #include "alias.h"
-#include "context.h"
 #include "copy.h"
 #include "cryptglue.h"
 #include "curs_lib.h"
@@ -60,6 +59,8 @@
 #include "sendlib.h"
 #include "state.h"
 
+struct Mailbox;
+
 /* These Config Variables are only used in ncrypt/crypt.c */
 bool C_CryptTimestamp; ///< Config: Add a timestamp to PGP or SMIME output to prevent spoofing
 unsigned char C_PgpEncryptSelf;
index 6f4e6eef968d7bf4757c45c4eaa711bc9322e084..af7e9f163146679a9b653140f0094791700e4e24 100644 (file)
@@ -5654,7 +5654,7 @@ static bool verify_sender(struct Email *e)
 /**
  * smime_gpgme_verify_sender - Implements CryptModuleSpecs::smime_verify_sender()
  */
-int smime_gpgme_verify_sender(struct Email *e)
+int smime_gpgme_verify_sender(struct Mailbox *m, struct Email *e)
 {
   return verify_sender(e);
 }
index 843c46aabfa49c7e8e63ab5f96850496d1474e48..3d3306238a0d0b9f8920f29e615991488fb9cb78 100644 (file)
@@ -30,6 +30,7 @@
 struct AddressList;
 struct Body;
 struct Email;
+struct Mailbox;
 struct State;
 
 void         pgp_gpgme_set_sender(const char *sender);
@@ -55,7 +56,7 @@ void         smime_gpgme_init(void);
 int          smime_gpgme_send_menu(struct Email *e);
 struct Body *smime_gpgme_sign_message(struct Body *a);
 int          smime_gpgme_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile);
-int          smime_gpgme_verify_sender(struct Email *e);
+int          smime_gpgme_verify_sender(struct Mailbox *m, struct Email *e);
 
 const char  *mutt_gpgme_print_version(void);
 
index e6aada2a16a192f3e19c4ffb41b4c69c7d9ed1ee..11fc34f0b96f76ef7f7dd6701b792c8b117adab2 100644 (file)
@@ -185,11 +185,12 @@ struct CryptModuleSpecs
   void         (*smime_getkeys)(struct Envelope *env);
   /**
    * smime_verify_sender - Does the sender match the certificate?
+   * @param m Mailbox
    * @param e Email
    * @retval 0 Success
    * @retval 1 Failure
    */
-  int          (*smime_verify_sender)(struct Email *e);
+  int          (*smime_verify_sender)(struct Mailbox *m, struct Email *e);
   /**
    * smime_build_smime_entity - Encrypt the email body to all recipients
    * @param a        Body of email
index b0e12ab029019dbc93f3d352026b2a5dcf9559ac..09d0da2e6bc570b88ed608b92f927af36afac12c 100644 (file)
@@ -413,10 +413,10 @@ void crypt_smime_getkeys(struct Envelope *env)
 /**
  * crypt_smime_verify_sender - Wrapper for CryptModuleSpecs::smime_verify_sender()
  */
-int crypt_smime_verify_sender(struct Email *e)
+int crypt_smime_verify_sender(struct Mailbox *m, struct Email *e)
 {
   if (CRYPT_MOD_CALL_CHECK(SMIME, smime_verify_sender))
-    return CRYPT_MOD_CALL(SMIME, smime_verify_sender)(e);
+    return CRYPT_MOD_CALL(SMIME, smime_verify_sender)(m, e);
 
   return 1;
 }
index 354efcd3776f0ac4939740cd0b73b8bc12d475ee..1f37eae4ac6986227c4e7aace80e710230e18b87 100644 (file)
@@ -216,7 +216,7 @@ int          crypt_smime_application_handler(struct Body *m, struct State *s);
 int          crypt_smime_decrypt_mime(FILE *fp_in, FILE **fp_out, struct Body *b, struct Body **cur);
 void         crypt_smime_getkeys(struct Envelope *env);
 int          crypt_smime_send_menu(struct Email *e);
-int          crypt_smime_verify_sender(struct Email *e);
+int          crypt_smime_verify_sender(struct Mailbox *m, struct Email *e);
 
 /* crypt_mod.c */
 void crypto_module_free(void);
index f5179f198b86dfe28fe7ec880597d929c8cdd3ad..59004dcfef66d9f70666909de9c99252aebf098e 100644 (file)
@@ -42,7 +42,6 @@
 #include "email/lib.h"
 #include "mutt.h"
 #include "alias.h"
-#include "context.h"
 #include "copy.h"
 #include "crypt.h"
 #include "cryptglue.h"
@@ -1414,7 +1413,7 @@ void smime_class_invoke_import(char *infile, char *mailbox)
 /**
  * smime_class_verify_sender - Implements CryptModuleSpecs::smime_verify_sender()
  */
-int smime_class_verify_sender(struct Email *e)
+int smime_class_verify_sender(struct Mailbox *m, struct Email *e)
 {
   char *mbox = NULL, *certfile = NULL;
   char tempfname[PATH_MAX];
@@ -1430,11 +1429,11 @@ int smime_class_verify_sender(struct Email *e)
 
   if (e->security & SEC_ENCRYPT)
   {
-    mutt_copy_message(fp_out, Context->mailbox, e, MUTT_CM_DECODE_CRYPT & MUTT_CM_DECODE_SMIME,
+    mutt_copy_message(fp_out, m, e, MUTT_CM_DECODE_CRYPT & MUTT_CM_DECODE_SMIME,
                       CH_MIME | CH_WEED | CH_NONEWLINE);
   }
   else
-    mutt_copy_message(fp_out, Context->mailbox, e, MUTT_CM_NO_FLAGS, CH_NO_FLAGS);
+    mutt_copy_message(fp_out, m, e, MUTT_CM_NO_FLAGS, CH_NO_FLAGS);
 
   fflush(fp_out);
   mutt_file_fclose(&fp_out);
index fa1af9b5eb142b2d3ccf13ec215b173e1200470a..24eab8a9b661f688de9a1e8c24d7659c70caad61 100644 (file)
@@ -31,8 +31,9 @@
 
 struct AddressList;
 struct Body;
-struct Envelope;
 struct Email;
+struct Envelope;
+struct Mailbox;
 struct State;
 
 /**
@@ -59,7 +60,7 @@ int          smime_class_send_menu(struct Email *e);
 struct Body *smime_class_sign_message(struct Body *a);
 bool         smime_class_valid_passphrase(void);
 int          smime_class_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile);
-int          smime_class_verify_sender(struct Email *e);
+int          smime_class_verify_sender(struct Mailbox *m, struct Email *e);
 void         smime_class_void_passphrase(void);
 
 #endif /* MUTT_NCRYPT_SMIME_H */