1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-21 01:02:46 +02:00
gnupg/common
Werner Koch ce9906b008
gpg: First rough implementation of keyboxd access for key lookup.
* g10/Makefile.am: Add nPth flags.
* g10/gpg.c: Include npth.h.
(gpg_deinit_default_ctrl): Deinit call-keyboxd local data.
(main): Init nPth.
* g10/keydb-private.h (struct keydb_handle_s): Add field 'kbl' and
remove the search result and the assuan context.
* g10/call-keyboxd.c (struct keyboxd_local_s): Add more fields.
(lock_datastream, unlock_datastream): New.
(gpg_keyboxd_deinit_session_data): Adjust for changed data structures.
(prepare_data_pipe): New.
(open_context): Return kbl instead of an Assuan context.  Init mutexes
etc.
(close_context): Merge into ...
(keydb_release): here.  Adjust for changed data structures.
(datastream_thread): New.
(keydb_get_keyblock): Implement datastream stuff.
(keydb_search): Ditto.

* common/asshelp.c (wait_for_sock): Add arg connect_flags.
(start_new_service): Set FDPASSING flag for the keyboxd.
--

This code as a lot of rough edges, in particular it relies on a well
behaving keyboxd.  We need to add code to shutdown the datastream
reader thread in case of errors and to properly get it up again.  We
also need to make really sure that both threads run in lockstep so
that the datastream thread is only active while we are sending a
command to the keyboxd.

We should also see whether we can depend nPth initialization on the
--use-keyboxd option to avoid any problems with nPth.

And we need to test on Windows.

Signed-off-by: Werner Koch <wk@gnupg.org>
2019-09-10 16:05:54 +02: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
argparse.c all: fix spelling and typos 2018-10-24 15:56:18 -04:00
argparse.h Change license of argparse.c back to LGPLv2.1 2018-03-21 09:15:13 +01:00
asshelp.c gpg: First rough implementation of keyboxd access for key lookup. 2019-09-10 16:05:54 +02:00
asshelp.h tools: New option --keyboxd for gpg-connect-agent. 2019-08-06 14:57:07 +02:00
asshelp2.c common: Change yet unused status_printf function. 2019-08-02 13:10:29 +02:00
audit.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09: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
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
common-defs.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
compliance.c gpg: Remove PGP6 compliance mode. 2018-05-29 13:01:12 +02:00
compliance.h gpg: Remove PGP6 compliance mode. 2018-05-29 13:01:12 +02:00
convert.c all: fix spelling and typos 2018-10-24 15:56:18 -04:00
dotlock.c all: fix spelling and typos 2018-10-24 15:56:18 -04: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 doc: Update copyright notices for common/exechelp*. 2017-11-29 11:32:42 +01:00
exechelp-w32.c common,w32: Breakaway detached childs when in job 2019-04-29 08:54:39 +02:00
exechelp-w32ce.c doc: Update copyright notices for common/exechelp*. 2017-11-29 11:32:42 +01:00
exechelp.h doc: Update copyright notices for common/exechelp*. 2017-11-29 11:32:42 +01:00
exectool.c common: Add kludge to allow silencing gnupg_exec_tool_stream. 2019-01-30 14:38:37 +01:00
exectool.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01: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 gpg: Add option --dirmngr-program. 2014-03-12 18:35:36 +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 common: Accept the Z-suffix for yymmddThhmmssZ format. 2017-11-01 18:35:29 +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 Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
helpfile.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
homedir.c tools: New option --keyboxd for gpg-connect-agent. 2019-08-06 14:57:07 +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 Some preparations to eventuallt use gpgrt_argparse. 2018-06-12 16:11:19 +02:00
init.h Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
iobuf.c common: Allow a readlimit for iobuf_esopen. 2019-09-10 15:45:58 +02:00
iobuf.h common: Allow a readlimit for iobuf_esopen. 2019-09-10 15:45:58 +02:00
isascii.c common: Change license of isascii.c to all-premissive, 2015-12-14 16:21:19 +01:00
keyserver.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ksba-io-support.c common: Rename remaining symbols in ksba-io-support. 2017-02-16 17:21:05 +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
Makefile.am common: Fix AWK portability. 2019-04-16 13:24:10 +09:00
mapstrings.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +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: New function decode_c_string. 2019-01-30 08:28:56 +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 Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01: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: New functions nvc_delete_named and nvc_get_string. 2019-05-07 11:09:09 +02:00
name-value.h common: New functions nvc_delete_named and nvc_get_string. 2019-05-07 11:09:09 +02:00
openpgp-oid.c common: New helper functions for OpenPGP curve OIDs. 2019-01-29 18:19:05 +01:00
openpgp-s2k.c Fix a reference in comment. 2019-07-12 12:11:26 +09:00
openpgpdefs.h common: Provide some convenient OpenPGP related constants. 2019-01-29 18:20:34 +01:00
percent.c common: Extend function percent_data_escape. 2019-01-24 10:02:52 +01: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
README common: Update README. 2016-03-02 14:27:30 +01:00
recsel.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09: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 Clean up word replication. 2017-02-21 13:11:46 -05: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: Extend function pubkey_algo_string. 2019-04-02 18:50:55 +02:00
shareddefs.h agent: New OPTION pretend-request-origin 2018-03-23 08:37:14 +01:00
signal.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01: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 common: Add generic status print function. 2019-01-22 09:02:17 +01:00
status.h common: Add generic status print function. 2019-01-22 09:02:17 +01:00
stringhelp.c common: New functions get_option_value and ascii_strupr. 2019-02-08 11:13:33 +01:00
stringhelp.h common: New functions get_option_value and ascii_strupr. 2019-02-08 11:13:33 +01: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 common: Fix gnupg_reopen_std. 2018-10-02 14:22:24 +09:00
sysutils.h common: New functions gnupg_daemon_rootdir and gnupg_chdir. 2017-07-25 12:43:37 +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 Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-dotlock.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-exechelp.c all: fix spelling and typos 2018-10-24 15:56:18 -04:00
t-exectool.c tests: Avoid skipping exectool tests. 2016-12-20 18:39:30 +01: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 common: Prepare for parsing mail sub-addresses. 2018-11-12 07:44:33 +01:00
t-name-value.c common: New functions nvc_delete_named and nvc_get_string. 2019-05-07 11:09:09 +02:00
t-openpgp-oid.c common: New helper functions for OpenPGP curve OIDs. 2019-01-29 18:19:05 +01:00
t-percent.c common: Extend function percent_data_escape. 2019-01-24 10:02:52 +01: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 Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-ssh-utils.c common: Correctly render SHA256-based ssh fingerprints. 2017-05-24 17:07:13 +02:00
t-stringhelp.c common: New function split_fields_colon. 2017-07-17 15:53:16 +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-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.c Silence two -Wlogical-op warnings. 2017-01-05 20:43:40 +01:00
tlv.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ttyio.c common: Minor rework of tty_get. 2019-03-07 14:11:46 +01:00
ttyio.h common: Remove unused function tty_print_string. 2017-01-17 10:19:06 +01:00
types.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
userids.c gpg: Allow deletion of subkeys with --delete-[secret-]key. 2019-05-27 10:40:38 +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 Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
utf8conv.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
util.h tools: New option --keyboxd for gpg-connect-agent. 2019-08-06 14:57:07 +02:00
utilproto.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
w32-reg.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
w32help.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
w32info-rc.h.in Release 2.2.5 2018-02-22 15:32:36 +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

Common functionality used by all modules of GnuPG.