gnupg/common
Werner Koch b4345f7521
wkd: Fix client issue with leading or trailing spaces in user-ids.
* common/recsel.c (recsel_parse_expr): Add flag -t.
* common/stringhelp.c: Remove assert.h.
(strtokenize): Factor code out to do_strtokenize.
(strtokenize_nt): New.
(do_strtokenize): Add arg trim to support the strtokenize_nt.
* common/t-stringhelp.c (test_strtokenize_nt): New test cases.

* tools/wks-util.c (wks_list_key): Use strtokenize_nt and the recsel
flag -t.
--

This fixes a bug with user ids with leading spaces because:

wks-client lists all mail addresses from the key and matches them to the
requested mail address.

If there are several user-ids all with the same mail address
wks-client picks one of them and then extracts exactly that user id.
However, here it does not match by the mail address but by the full
user-id so that we can be sure that there will be only one user-id in
the final key.

The filter built expression unfortunately strips leading blanks but
requires a verbatim match.  Thus it won't find the user id again and
errors out.

The new -t flag and a non-trimming strtokenize solves the problem.

Signed-off-by: Werner Koch <wk@gnupg.org>
2021-08-20 09:18:22 +02:00
..
ChangeLog-2011 Fix typos 2015-10-28 10:20:17 +01:00
ChangeLog-2011.include Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
ChangeLog.jnlib common: Remove JNLIB from boiler plate (jnlib merge). 2015-04-24 16:42:28 +02:00
Makefile.am gpg,sm: Simplify keyserver spec parsing. 2021-06-16 12:03:13 +02:00
README common: Update README. 2016-03-02 14:27:30 +01:00
agent-opt.c agent: New OPTION pretend-request-origin 2018-03-23 08:37:14 +01:00
all-tests.scm tests: Make it possible to run all tests using our infrastructure. 2017-05-11 18:12:37 +02:00
asshelp.c keyboxd: Integrate into gpgconf. 2020-09-24 10:37:41 +02:00
asshelp.h Use only one copy of the warn_server_mismatch function. 2020-09-01 20:43:57 +02:00
asshelp2.c Use only one copy of the warn_server_mismatch function. 2020-09-01 20:43:57 +02:00
audit.c sm: Consider certificates w/o CRL DP as valid. 2020-03-27 21:16:07 +01:00
audit.h headers: fix spelling 2018-10-25 16:53:05 -04:00
b64dec.c g10, sm, dirmngr, common: Add comment for fall through. 2017-05-10 11:13:12 +09:00
b64enc.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
call-gpg.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
call-gpg.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ccparray.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ccparray.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
common-defs.h Support a history file in gpg-card and gpg-connect-agent. 2020-07-02 15:48:55 +02:00
comopt.c gpg,gpgsm: Move use-keyboxd to the new conf file common.conf 2021-04-19 11:33:19 +02:00
comopt.h gpg,gpgsm: Move use-keyboxd to the new conf file common.conf 2021-04-19 11:33:19 +02:00
compliance.c common: Allow for GCM decryption in de-vs mode. 2021-06-02 19:14:37 +02:00
compliance.h Include the library version in the compliance checks. 2021-01-28 15:48:08 +01:00
convert.c scd: Use a scdaemon internal key to protect the PIN cache IPC. 2020-01-09 12:00:50 +01:00
dotlock.c gpg,w32: Fix gnupg_remove. 2021-01-11 14:19:06 +01:00
dotlock.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
dynload.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
exaudit.awk Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
exechelp-posix.c common: Fix gnupg_wait_processes, by skipping invalid PID. 2021-04-08 11:26:58 +09:00
exechelp-w32.c common,w32: Replace log_debug by log_info for InProcessJobs 2021-08-18 10:34:05 +02:00
exechelp-w32ce.c doc: Update copyright notices for common/exechelp*. 2017-11-29 11:32:42 +01:00
exechelp.h common: New helper function gnupg_close_pipe. 2020-09-02 14:49:24 +02:00
exectool.c w32: Fix cast from intptr_t of _get_osfhandle. 2020-08-03 13:34:26 +09:00
exectool.h Spelling cleanup. 2020-02-18 18:07:46 -05:00
exstatus.awk Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
fwddecl.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gc-opt-flags.h gpgconf: Further simplify the gpgconf option processing. 2020-03-14 19:12:41 +01:00
get-passphrase.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
get-passphrase.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gettime.c w32: Fix strftime problem on Windows. 2020-11-03 19:32:11 +01:00
gettime.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gnupg.ico w32: Add icons and version information. 2013-05-07 21:35:48 +02:00
gpgrlhelp.c Support a history file in gpg-card and gpg-connect-agent. 2020-07-02 15:48:55 +02:00
helpfile.c Replace most of the remaining stdio calls by estream calls. 2020-10-20 12:15:56 +02:00
homedir.c w32: Move socketdir to LCOAL_APPDATA 2021-08-11 11:50:41 +02:00
host2net.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
i18n.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
i18n.h Fix typos found using codespell. 2015-11-17 12:50:22 +01:00
init.c w32: Always use Unicode for console input and output. 2021-03-05 15:33:40 +01:00
init.h Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
iobuf.c Replace most calls to open by a new wrapper. 2020-10-20 14:08:35 +02:00
iobuf.h build: Always use EXTERN_UNLESS_MAIN_MODULE pattern. 2020-02-10 16:50:47 +01:00
isascii.c common: Change license of isascii.c to all-premissive, 2015-12-14 16:21:19 +01:00
ksba-io-support.c sm: Remove left over debug output. 2020-02-17 11:36:43 +01:00
ksba-io-support.h common: Rename remaining symbols in ksba-io-support. 2017-02-16 17:21:05 +01:00
localename.c common: Fix warning for portability. 2017-03-07 10:42:46 +09:00
logging.h Require libgpg-error 1.29 and remove internal logging functions. 2018-06-12 13:46:00 +02:00
mapstrings.c tpm2d: Add tpm2daemon code 2021-03-10 12:33:08 +01:00
mbox-util.c common: Prepare for parsing mail sub-addresses. 2018-11-12 07:44:33 +01:00
mbox-util.h common: Prepare for parsing mail sub-addresses. 2018-11-12 07:44:33 +01:00
membuf.c Clean up word replication. 2017-02-21 13:11:46 -05:00
membuf.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
miscellaneous.c common: Add xreallocarray function. 2020-03-04 13:55:53 +01:00
mischelp.c common/mischelp: use platform memory zeroing function for wipememory 2018-12-01 13:43:09 +02:00
mischelp.h common/mischelp: use platform memory zeroing function for wipememory 2018-12-01 13:43:09 +02:00
mkdir_p.c Replace all calls to stat by gnupg_stat. 2020-10-20 16:38:06 +02:00
mkdir_p.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
mkerrors all: fix more spelling errors 2018-10-25 16:53:05 -04:00
mkerrtok all: fix more spelling errors 2018-10-25 16:53:05 -04:00
mkstrtable.awk common: Fix AWK portability. 2019-04-16 13:24:10 +09:00
name-value.c common: Avoid double-free 2021-05-20 14:31:23 +02:00
name-value.h common: New functions nvc_delete_named and nvc_get_string. 2019-05-07 11:09:09 +02:00
openpgp-fpr.c gpg: Partial fix for Unicode problem in output files. 2021-05-25 13:39:59 +02:00
openpgp-oid.c gpg: Support exporting Ed448 SSH key. 2021-03-22 16:57:18 +09:00
openpgp-s2k.c Fix a reference in comment. 2019-07-12 12:11:26 +09:00
openpgpdefs.h common: New module to compute openpgp fingerprints 2021-04-16 12:49:37 +02:00
percent.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
pkscreening.c gpg,sm: New option --with-key-screening. 2017-10-17 21:10:19 +02:00
pkscreening.h gpg,sm: New option --with-key-screening. 2017-10-17 21:10:19 +02:00
recsel.c wkd: Fix client issue with leading or trailing spaces in user-ids. 2021-08-20 09:18:22 +02:00
recsel.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
server-help.c common: New functions get_option_value and ascii_strupr. 2019-02-08 11:13:33 +01:00
server-help.h common: New functions get_option_value and ascii_strupr. 2019-02-08 11:13:33 +01:00
session-env.c common: Pass XDG_SESSION_TYPE and QT_QPA_PLATFORM envvars to pinentry 2021-08-02 17:19:45 +02:00
session-env.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
sexp-parse.h headers: fix spelling 2018-10-25 16:53:05 -04:00
sexputil.c common: New function to uncompress an ECC public key. 2021-03-26 14:30:58 +01:00
shareddefs.h agent: New OPTION pretend-request-origin 2018-03-23 08:37:14 +01:00
signal.c build: Update to newer autoconf constructs. 2020-11-18 14:12:51 +09:00
simple-pwquery.c all: fix spelling and typos 2018-10-24 15:56:18 -04:00
simple-pwquery.h Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
ssh-utils.c Fix use of strncpy, which is actually good to use memcpy. 2018-09-06 11:41:13 +09:00
ssh-utils.h common: Support different digest algorithms for ssh fingerprints. 2017-05-24 17:01:48 +02:00
status.c Use only one copy of the warn_server_mismatch function. 2020-09-01 20:43:57 +02:00
status.h gpg: Add canceled status message. 2020-11-05 11:19:15 -08:00
stringhelp.c wkd: Fix client issue with leading or trailing spaces in user-ids. 2021-08-20 09:18:22 +02:00
stringhelp.h wkd: Fix client issue with leading or trailing spaces in user-ids. 2021-08-20 09:18:22 +02:00
strlist.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
strlist.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
sysutils.c w32: Move socketdir to LCOAL_APPDATA 2021-08-11 11:50:41 +02:00
sysutils.h w32: Move socketdir to LCOAL_APPDATA 2021-08-11 11:50:41 +02:00
t-b64.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-ccparray.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-convert.c common: New function hex2fixedbuf. 2019-10-01 10:32:31 +02:00
t-dotlock.c w32: Allow Unicode filenames for dotlock 2020-10-20 13:38:11 +02:00
t-exechelp.c all: fix spelling and typos 2018-10-24 15:56:18 -04:00
t-exectool.c Replace all calls to access by gnupg_access 2020-10-20 12:15:55 +02:00
t-gettime.c tests: Fix t-gettime for a time_t of 64 and a long of 32 bit. 2017-01-12 10:39:19 +01:00
t-helpfile.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-iobuf.c Replace use of variable-length-arrays. 2017-01-02 13:29:18 +01:00
t-mapstrings.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-mbox-util.c tests: Add two user-id parsing test cases. 2019-09-17 16:19:28 +02:00
t-name-value.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
t-openpgp-oid.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
t-percent.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
t-recsel.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-session-env.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
t-sexputil.c tests: Cope with broken Libgcrypt versions 2021-06-22 12:30:46 +02:00
t-ssh-utils.c common: Correctly render SHA256-based ssh fingerprints. 2017-05-24 17:07:13 +02:00
t-stringhelp.c wkd: Fix client issue with leading or trailing spaces in user-ids. 2021-08-20 09:18:22 +02:00
t-strlist.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-support.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-support.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-sysutils.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-timestuff.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-w32-cmdline.c common,w32: Implement globing of command line args. 2021-03-04 16:59:21 +01:00
t-w32-reg.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-zb32.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
tlv-builder.c agent: Avoid memory leaks in error code paths. 2021-05-20 13:38:07 +02:00
tlv.c common: New function cmp_canon_sexp. 2020-09-11 15:23:22 +02:00
tlv.h common: Add an easy to use DER builder. 2020-04-24 15:37:48 +02:00
ttyio.c w32: Add fallback in case the Windows console can't cope with Unicode. 2021-06-22 11:12:28 +02:00
ttyio.h Support a history file in gpg-card and gpg-connect-agent. 2020-07-02 15:48:55 +02:00
types.h build: Use modern Autoconf check for types. 2020-11-18 13:36:30 +09:00
userids.c kbx: Fix keyboxd searching with multiple patterns. 2021-07-08 13:57:13 +02:00
userids.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
utf8conv.c common: Fix fallback handling to utf-8. 2020-08-28 15:18:00 +09:00
utf8conv.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
util.h w32: Move socketdir to LCOAL_APPDATA 2021-08-11 11:50:41 +02:00
utilproto.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
w32-cmdline.c common: Rename w32-misc.c to w32-cmdline.c 2021-03-04 17:14:02 +01:00
w32-reg.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
w32help.h common: Rename w32-misc.c to w32-cmdline.c 2021-03-04 17:14:02 +01:00
w32info-rc.h.in tools,w32: Add resource and manifest files to all binaries. 2021-02-21 12:38:55 +01:00
xasprintf.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
xreadline.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
yesno.c Clean up word replication. 2017-02-21 13:11:46 -05:00
zb32.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
zb32.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00

README

Common functionality used by all modules of GnuPG.