Make auto import from S/MIME keyserver default off
authorAndre Heinecke <aheinecke@intevation.de>
Tue, 9 Oct 2018 12:23:26 +0000 (14:23 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Tue, 9 Oct 2018 12:26:22 +0000 (14:26 +0200)
* src/common_indep.h (opt.search_smime_servers): New.
* src/main.c (read_options): Read it.
* src/keycache.cpp (do_locate): Respect it.

--
This also does not do an external search if there
was an OpenPGP certificate found for the recipient and
prefer_smime is not set.

src/common_indep.h
src/keycache.cpp
src/main.c

index 73910f4..fb693ef 100644 (file)
@@ -204,6 +204,8 @@ struct
   int prefer_smime;          /* S/MIME prefered when autoresolving */
   int smime_html_warn_shown; /* Flag to save if unsigned smime warning was shown */
   int autoretrieve;           /* Use --auto-key-retrieve. */
+  int search_smime_servers;  /* Search for S/MIME keys on all configured S/MIME keyservers
+                                for each new unknown mail */
 
   /* The forms revision number of the binary.  */
   int forms_revision;
index f885694..523ab31 100644 (file)
@@ -953,6 +953,8 @@ do_locate (LPVOID arg)
                  anonstr (k.primaryFingerprint()));
       KeyCache::instance ()->setPgpKey (addr, k);
     }
+  log_debug ("%s:%s pgp locate done",
+             SRCNAME, __func__);
 
   if (opt.enable_smime)
     {
@@ -966,6 +968,12 @@ do_locate (LPVOID arg)
           KeyCache::instance()->setSmimeKey (addr, candidate);
           TRETURN 0;
         }
+      if (!opt.search_smime_servers || (!k.isNull() && !opt.prefer_smime))
+        {
+          log_debug ("%s:%s Found no S/MIME key locally and external "
+                     "search is disabled.", SRCNAME, __func__);
+          TRETURN 0;
+        }
       /* Search for extern keys and import them */
       const auto externs = get_extern_smime_keys (addr, true);
       if (externs.empty())
index 73d8f04..50f5061 100644 (file)
@@ -321,6 +321,7 @@ read_options (void)
   opt.automation = get_conf_bool ("automation", 1);
   opt.autosecure = get_conf_bool ("autosecure", 1);
   opt.autotrust = get_conf_bool ("autotrust", 0);
+  opt.search_smime_servers = get_conf_bool ("searchSmimeServers", 0);
   opt.smime_html_warn_shown = get_conf_bool ("smimeHtmlWarnShown", 0);
 
   if (!opt.automation)