aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyserver.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2021-04-26 12:15:21 +0000
committerWerner Koch <[email protected]>2021-04-26 12:15:21 +0000
commit99db4b0c7fd128ea5b2e251fe854bd57f6322238 (patch)
tree8e6c56eb3c6c25d8883122d364b7435dee0e5183 /g10/keyserver.c
parentgpg: Auto import keys specified with --trusted-keys. (diff)
downloadgnupg-99db4b0c7fd128ea5b2e251fe854bd57f6322238.tar.gz
gnupg-99db4b0c7fd128ea5b2e251fe854bd57f6322238.zip
gpg: Do not use import-clean for LDAP keyserver imports.
* g10/options.h (opts): New field expl_import_only. * g10/import.c (parse_import_options): Set it. * g10/keyserver.c (keyserver_get_chunk): Add special options for LDAP. -- I can be assumed that configured LDAP servers are somehow curated and not affected by rogue key signatures as the HKP servers are. Thus we don't clean the key anymore so that key certifications are kept even if the public key has not yet been imported. See-commit: 6c26e593df51475921410ac97e9227df6b258618 GnuPG-bug-id: 5387
Diffstat (limited to 'g10/keyserver.c')
-rw-r--r--g10/keyserver.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 492ce0ce5..48033ab8d 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -1771,13 +1771,17 @@ keyserver_get_chunk (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
never accept or send them but we better protect against rogue
keyservers. */
- /* For LDAP servers we reset IMPORT_SELF_SIGS_ONLY unless it has
- * been set explicitly. */
+ /* For LDAP servers we reset IMPORT_SELF_SIGS_ONLY and
+ * IMPORT_CLEAN unless they have been set explicitly. */
options = (opt.keyserver_options.import_options | IMPORT_NO_SECKEY);
if (source && (!strncmp (source, "ldap:", 5)
- || !strncmp (source, "ldaps:", 6))
- && !opt.flags.expl_import_self_sigs_only)
- options &= ~IMPORT_SELF_SIGS_ONLY;
+ || !strncmp (source, "ldaps:", 6)))
+ {
+ if (!opt.flags.expl_import_self_sigs_only)
+ options &= ~IMPORT_SELF_SIGS_ONLY;
+ if (!opt.flags.expl_import_clean)
+ options &= ~IMPORT_CLEAN;
+ }
screenerarg.desc = desc;
screenerarg.ndesc = *r_ndesc_used;