1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00
Werner Koch 7c45a69eb9
agent: New option --check-sym-passphrase-pattern.
* agent/gpg-agent.c (oCheckSymPassphrasePattern): New.
(opts): Add --check-sym-passphrase-pattern.
(parse_rereadable_options): Set option.
(main): Return option info.
* tools/gpgconf-comp.c: Add new option.
* agent/agent.h (opt): Add var check_sym_passphrase_pattern.
(struct pin_entry_info_s): Add var constraints_flags.
(CHECK_CONSTRAINTS_NOT_EMPTY): New to replace a hardwired 1.
(CHECK_CONSTRAINTS_NEW_SYMKEY): New.
* agent/genkey.c (check_passphrase_pattern): Rename to ...
(do_check_passphrase_pattern): this to make code reading
easier. Handle the --check-sym-passphrase-pattern option.
(check_passphrase_constraints): Replace arg no_empty by a generic
flags arg.  Also handle --check-sym-passphrase-pattern here.
* agent/command.c (cmd_get_passphrase): In --newsymkey mode pass
CHECK_CONSTRAINTS_NEW_SYMKEY flag.
* agent/call-pinentry.c (struct entry_parm_s): Add constraints_flags.
(struct inq_cb_parm_s): New.
(inq_cb): Use new struct for parameter passing.  Pass flags to teh
constraints checking.
(do_getpin): Pass constraints flag down.
(agent_askpin): Take constrainst flag from the supplied pinentry
struct.
--

Requirements for a passphrase to protect a private key and for a
passphrase used for symmetric encryption are different.  Thus a
the use of a different pattern file will be useful.  Note that a
pattern file can be used to replace the other passphrase constraints
options and thus we don't need to duplicate them for symmetric
encryption.

GnuPG-bug-id: 5517
Signed-off-by: Werner Koch <wk@gnupg.org>
2021-08-13 13:42:31 +02:00
..
2021-06-25 09:55:52 +02:00
2007-07-04 19:49:40 +00:00
2006-08-21 20:20:23 +00:00
2003-12-01 10:54:59 +00:00
2021-06-12 18:33:32 +02:00
2021-08-11 11:50:41 +02:00
2021-03-10 12:33:08 +01:00
2021-04-13 14:26:15 +09:00
2019-03-06 17:46:40 +01:00
2006-08-21 20:20:23 +00:00
2004-01-05 09:28:27 +00:00
2020-02-18 18:07:46 -05:00
2018-10-24 15:56:18 -04:00
2007-07-04 19:49:40 +00:00

============
  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.