gnupg/tools
Neal H. Walfield dde8ddffd3 agent: Backport changes from 2.1 to support an external password manager.
* agent/agent.h (agent_askpin): Add arguments keyinfo and cache_mode.
Update callers.
(agent_get_passphrase): Likewise.
(agent_clear_passphrase): New function.
(opt): Add field allow_external_cache.
* agent/call-pinentry.c (start_pinentry): Send "OPTION
allow-external-password-cache" to the pinentry.
(PINENTRY_STATUS_PASSWORD_FROM_CACHE): New constant.
(pinentry_status_cb): New function.
(agent_askpin): Add arguments keyinfo and cache_mode.  If KEYINFO and
CACHE_MODE describe a cachable key, then send SETKEYINFO to the
pinentry.  Pass PINENTRY_STATUS_CB to the "GETPIN" invocation.  If the
passphrase was incorrect and PINENTRY_STATUS_PASSWORD_FROM_CACHE is
set, decrement PININFO->FAILED_TRIES.
(agent_get_passphrase): Add arguments keyinfo and cache_mode.  If
KEYINFO and CACHE_MODE describe a cachable key, then send SETKEYINFO
to the pinentry.
(agent_clear_passphrase): New function.
* agent/call-pinentry.c (start_pinentry): Act upon new var,
allow_external_cache.
* agent/command.c (cmd_clear_passphrase): Call agent_clear_passphrase.
* agent/gpg-agent.c (oNoAllowExternalCache): New.
(opts): Add option --no-allow-external-cache.
(parse_rereadable_options): Set this option.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>

Based on commits:

3a9305439b
e201c20f25
d7293cb317
56b5c9f94f
d3b5cad234
2180845959
2015-05-19 15:32:54 +02:00
..
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-02 19:28:02 +01:00
Makefile.am Improve configure option --with-libgpg-error-prefix 2014-06-24 10:36:15 +02:00
Manifest * Manifest: New. 2004-01-05 09:28:27 +00:00
README.gpgconf Remove what is now in the texi docs. 2004-09-29 23:06:58 +00:00
addgnupghome * gpgsm.texi (Configuration Options): Add --log-file. 2004-09-29 16:16:47 +00:00
applygnupgdefaults Fix bug#1146 2009-12-18 16:27:05 +00:00
ccidmon.c Use inline functions to convert buffer data to scalars. 2015-02-12 20:34:44 +01:00
clean-sat.c Minor cleanups. 2008-11-11 08:22:06 +00:00
convert-from-106 Changed to GPLv3. 2007-07-04 19:49:40 +00:00
crlf.c Migrated more stuff to doc/ 2006-08-21 20:20:23 +00:00
der-to-pem Added a very simple tool. 2003-12-01 10:54:59 +00:00
gpg-check-pattern.c Make bug reporting address easier changeable. 2009-07-21 14:21:05 +00:00
gpg-connect-agent-w32info.rc w32: Add icons and version information. 2013-05-07 21:17:04 +02:00
gpg-connect-agent.c gpg-connect-agent: Fix quoting of internal percent+ function. 2015-05-11 19:40:19 +02:00
gpg-zip.in Changed to GPLv3. 2007-07-04 19:49:40 +00:00
gpgconf-comp.c agent: Backport changes from 2.1 to support an external password manager. 2015-05-19 15:32:54 +02:00
gpgconf.c Fix --check-options 2010-08-19 11:41:43 +00:00
gpgconf.h Add --reload command to gpgconf. 2009-03-03 09:02:58 +00:00
gpgkey2ssh.c gpgkey2ssh: clean up varargs 2015-01-13 10:52:21 +09:00
gpgparsemail.c Marked all unused args on non-W32 platforms. 2008-10-20 13:53:23 +00:00
gpgsm-gencert.sh Create a pkcs#10 request directly from a card. 2009-07-02 09:49:31 +00:00
gpgsplit.c Fix i18n bug. 2009-07-21 15:44:30 +00:00
gpgtar-create.c Add gpgtar backport 2011-01-11 19:35:05 +01:00
gpgtar-extract.c gpgtar: Fix extracting files with !(size % 512) 2015-03-17 12:03:36 +01:00
gpgtar-list.c Add gpgtar backport 2011-01-11 19:35:05 +01:00
gpgtar.c Add gpgtar backport 2011-01-11 19:35:05 +01:00
gpgtar.h Add gpgtar backport 2011-01-11 19:35:05 +01:00
lspgpot Migrated more stuff to doc/ 2006-08-21 20:20:23 +00:00
mail-signed-keys . 2006-11-11 14:17:09 +00:00
make-dns-cert.c Utilize new automake vars for proper installation into doc/. 2008-03-27 13:18:19 +00:00
mk-tdata.c Fix gpg-preset-passphrase bug. 2008-09-03 09:37:32 +00:00
no-libgcrypt.c Support PKA and SRV DNS lookups under w32 2009-12-07 17:11:59 +00:00
pgpgroup-to-gpggroup Changed to GPLv3. 2007-07-04 19:49:40 +00:00
rfc822parse.c gpgparsemail: Fix last commit (3f2bdac) 2015-04-15 16:08:32 +09:00
rfc822parse.h Changed to GPLv3. 2007-07-04 19:49:40 +00:00
sockprox.c Fix possible system freeze on Mac OS X. 2009-05-19 22:39:45 +00:00
symcryptrun.c Removed some set but unused variables. 2011-08-04 12:22:04 +02:00
watchgnupg.c Release 2.0.20 2013-05-10 15:54:31 +02:00

README.gpgconf

============
  GPG Conf
============

Main documentation for this tool can be found in doc/tools.texi.

BACKENDS
========

Backends should support the following commands:

Command --gpgconf-list
----------------------

List the location of the configuration file, and all default values of
all options.  The location of the configuration file must be an
absolute pathname.

The format of each line is:

NAME:FLAGS:DEFAULT:ARGDEF

NAME

This field contains a name tag for the group or option.  The name tag
is used to specify the group or option in all communication with
GPGConf.  The name tag is to be used verbatim.  It is not in any
escaped format.

FLAGS

The flags field contains an unsigned number.  Its value is the
OR-wise combination of the following flag values:

	16 default	If this flag is set, a default value is available.
	32 default desc If this flag is set, a (runtime) default is available.
			This and the "default" flag are mutually exclusive.
	64 no arg desc	If this flag is set, and the "optional arg" flag
			is set, then the option has a special meaning if no
			argument is given.

DEFAULT

This field is defined only for options.  Its format is that of an
option argument (see section Format Conventions for details).  If the
default value is empty, then no default is known.  Otherwise, the
value specifies the default value for this option.  Note that this
field is also meaningful if the option itself does not take a real
argument.

ARGDEF

This field is defined only for options for which the "optional arg"
flag is set.  If the "no arg desc" flag is not set, its format is that
of an option argument (see section Format Conventions for details).
If the default value is empty, then no default is known.  Otherwise,
the value specifies the default value for this option.  If the "no arg
desc" flag is set, the field is either empty or contains a description
of the effect of this option if no argument is given.  Note that this
field is also meaningful if the option itself does not take a real
argument.


Example:
$ dirmngr --gpgconf-list
gpgconf-config-file:/mnt/marcus/.gnupg/dirmngr.conf
ldapservers-file:/mnt/marcus/.gnupg/dirmngr_ldapservers.conf
add-servers:0
max-replies:10


TODO
----

* Implement --dry-run and --quiet.

* Extend the backend interface to include gettext domain and
description, if available, to avoid repeating this information in
gpgconf.