diff options
| author | Werner Koch <[email protected]> | 2021-04-26 13:32:51 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2021-04-26 13:32:51 +0000 |
| commit | 4fcfac6feb2a6c2b14883ba406afc917e8d4be42 (patch) | |
| tree | ec4d6b9397db49f89da6a8f4d8af14857794852c /g10/keyserver.c | |
| parent | gpg: Do not use import-clean for LDAP keyserver imports. (diff) | |
| download | gnupg-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.c | 12 |
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); } |
