aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyserver.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2021-04-26 13:32:51 +0000
committerWerner Koch <[email protected]>2021-04-26 13:32:51 +0000
commit4fcfac6feb2a6c2b14883ba406afc917e8d4be42 (patch)
treeec4d6b9397db49f89da6a8f4d8af14857794852c /g10/keyserver.c
parentgpg: Do not use import-clean for LDAP keyserver imports. (diff)
downloadgnupg-4fcfac6feb2a6c2b14883ba406afc917e8d4be42.tar.gz
gnupg-4fcfac6feb2a6c2b14883ba406afc917e8d4be42.zip
gpg: Fix mailbox based search via AKL keyserver method.
* g10/keyserver.c (keyserver_import_name): Rename to ... (keyserver_import_mbox): this. And use mail search mode. * g10/getkey.c (get_pubkey_byname): Change the two callers. -- In contrast to a search via keyserver_import_ntds the older keyserver_import_name used a full match of the provided name despite that it is only called with an addr-spec (mbox). Due to the mode the pattern send to dirmngr was prefixed with a '=' and thus dirmngr used an exact search;. This did only work for provided user ids like "[email protected]" but not for "<[email protected]>" or "Foo <[email protected]>". The old code dates back to 2010. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/keyserver.c')
-rw-r--r--g10/keyserver.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 48033ab8d..c56021691 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -1122,18 +1122,16 @@ keyserver_any_configured (ctrl_t ctrl)
}
-/* Import all keys that exactly match NAME */
+/* Import all keys that exactly match MBOX */
int
-keyserver_import_name (ctrl_t ctrl, const char *name,
+keyserver_import_mbox (ctrl_t ctrl, const char *mbox,
unsigned char **fpr, size_t *fprlen,
struct keyserver_spec *keyserver)
{
- KEYDB_SEARCH_DESC desc;
-
- memset (&desc, 0, sizeof desc);
+ KEYDB_SEARCH_DESC desc = { 0 };
- desc.mode = KEYDB_SEARCH_MODE_EXACT;
- desc.u.name = name;
+ desc.mode = KEYDB_SEARCH_MODE_MAIL;
+ desc.u.name = mbox;
return keyserver_get (ctrl, &desc, 1, keyserver, 0, fpr, fprlen);
}