mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
support numeric debug levels.
This commit is contained in:
parent
edd95da365
commit
cb5491bfaf
6
NEWS
6
NEWS
@ -1,5 +1,5 @@
|
|||||||
Noteworthy changes in version 2.1 (under development)
|
Noteworthy changes in version 2.1.x (under development)
|
||||||
-------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
* Encrypted OpenPGP messages with trailing data (e.g. other OpenPGP
|
* Encrypted OpenPGP messages with trailing data (e.g. other OpenPGP
|
||||||
packets) are now correctly parsed.
|
packets) are now correctly parsed.
|
||||||
@ -8,6 +8,8 @@ Noteworthy changes in version 2.1 (under development)
|
|||||||
|
|
||||||
* The G13 tool for disk encryption key management has been added.
|
* The G13 tool for disk encryption key management has been added.
|
||||||
|
|
||||||
|
* Numerical values may now be used as an alternative to the
|
||||||
|
debug-level keywords.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 2.0.13 (2009-09-04)
|
Noteworthy changes in version 2.0.13 (2009-09-04)
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-12-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpg-agent.c (set_debug): Allow for numerical debug leveles. Print
|
||||||
|
active debug flags.
|
||||||
|
|
||||||
2009-12-02 Werner Koch <wk@g10code.com>
|
2009-12-02 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* trustlist.c (read_trustfiles): Store the pointer returned from
|
* trustlist.c (read_trustfiles): Store the pointer returned from
|
||||||
|
@ -361,19 +361,30 @@ my_strusage (int level)
|
|||||||
static void
|
static void
|
||||||
set_debug (void)
|
set_debug (void)
|
||||||
{
|
{
|
||||||
|
int numok = (debug_level && digitp (debug_level));
|
||||||
|
int numlvl = numok? atoi (debug_level) : 0;
|
||||||
|
|
||||||
if (!debug_level)
|
if (!debug_level)
|
||||||
;
|
;
|
||||||
else if (!strcmp (debug_level, "none"))
|
else if (!strcmp (debug_level, "none") || (numok && numlvl < 1))
|
||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
else if (!strcmp (debug_level, "basic"))
|
else if (!strcmp (debug_level, "basic") || (numok && numlvl <= 2))
|
||||||
opt.debug = DBG_ASSUAN_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE;
|
||||||
else if (!strcmp (debug_level, "advanced"))
|
else if (!strcmp (debug_level, "advanced") || (numok && numlvl <= 5))
|
||||||
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
|
||||||
else if (!strcmp (debug_level, "expert"))
|
else if (!strcmp (debug_level, "expert") || (numok && numlvl <= 8))
|
||||||
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|
||||||
|DBG_CACHE_VALUE);
|
|DBG_CACHE_VALUE);
|
||||||
else if (!strcmp (debug_level, "guru"))
|
else if (!strcmp (debug_level, "guru") || numok)
|
||||||
opt.debug = ~0;
|
{
|
||||||
|
opt.debug = ~0;
|
||||||
|
/* Unless the "guru" string has been used we don't want to allow
|
||||||
|
hashing debugging. The rationale is that people tend to
|
||||||
|
select the highest debug value and would then clutter their
|
||||||
|
disk with debug files which may reveal confidential data. */
|
||||||
|
if (numok)
|
||||||
|
opt.debug &= ~(DBG_HASHING_VALUE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
||||||
@ -391,6 +402,17 @@ set_debug (void)
|
|||||||
if (opt.debug & DBG_CRYPTO_VALUE )
|
if (opt.debug & DBG_CRYPTO_VALUE )
|
||||||
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
||||||
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
||||||
|
|
||||||
|
if (opt.debug)
|
||||||
|
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s\n",
|
||||||
|
(opt.debug & DBG_COMMAND_VALUE)? " command":"",
|
||||||
|
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
|
||||||
|
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
|
||||||
|
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
|
||||||
|
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
|
||||||
|
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
|
||||||
|
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
|
||||||
|
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -213,20 +213,26 @@ forth to @var{epoch} which is the number of seconds elapsed since the year
|
|||||||
@item --debug-level @var{level}
|
@item --debug-level @var{level}
|
||||||
@opindex debug-level
|
@opindex debug-level
|
||||||
Select the debug level for investigating problems. @var{level} may be
|
Select the debug level for investigating problems. @var{level} may be
|
||||||
one of:
|
a numeric value or a keyword:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item none
|
@item none
|
||||||
no debugging at all.
|
No debugging at all. A value of less than 1 may be used instead of
|
||||||
@item basic
|
the keyword.
|
||||||
some basic debug messages
|
@item basic
|
||||||
@item advanced
|
Some basic debug messages. A value between 1 and 2 may be used
|
||||||
more verbose debug messages
|
instead of the keyword.
|
||||||
@item expert
|
@item advanced
|
||||||
even more detailed messages
|
More verbose debug messages. A value between 3 and 5 may be used
|
||||||
@item guru
|
instead of the keyword.
|
||||||
all of the debug messages you can get
|
@item expert
|
||||||
@end table
|
Even more detailed messages. A value between 6 and 8 may be used
|
||||||
|
instead of the keyword.
|
||||||
|
@item guru
|
||||||
|
All of the debug messages you can get. A value greater than 8 may be
|
||||||
|
used instead of the keyword. The creation of hash tracing files is
|
||||||
|
only enabled if the keyword is used.
|
||||||
|
@end table
|
||||||
|
|
||||||
How these messages are mapped to the actual debugging flags is not
|
How these messages are mapped to the actual debugging flags is not
|
||||||
specified and may change with newer releases of this program. They are
|
specified and may change with newer releases of this program. They are
|
||||||
|
28
doc/gpg.texi
28
doc/gpg.texi
@ -2146,6 +2146,34 @@ therefore enables a fast listing of the encryption keys.
|
|||||||
@opindex interactive
|
@opindex interactive
|
||||||
Prompt before overwriting any files.
|
Prompt before overwriting any files.
|
||||||
|
|
||||||
|
@item --debug-level @var{level}
|
||||||
|
@opindex debug-level
|
||||||
|
Select the debug level for investigating problems. @var{level} may be
|
||||||
|
a numeric value or by a keyword:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item none
|
||||||
|
No debugging at all. A value of less than 1 may be used instead of
|
||||||
|
the keyword.
|
||||||
|
@item basic
|
||||||
|
Some basic debug messages. A value between 1 and 2 may be used
|
||||||
|
instead of the keyword.
|
||||||
|
@item advanced
|
||||||
|
More verbose debug messages. A value between 3 and 5 may be used
|
||||||
|
instead of the keyword.
|
||||||
|
@item expert
|
||||||
|
Even more detailed messages. A value between 6 and 8 may be used
|
||||||
|
instead of the keyword.
|
||||||
|
@item guru
|
||||||
|
All of the debug messages you can get. A value greater than 8 may be
|
||||||
|
used instead of the keyword. The creation of hash tracing files is
|
||||||
|
only enabled if the keyword is used.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
How these messages are mapped to the actual debugging flags is not
|
||||||
|
specified and may change with newer releases of this program. They are
|
||||||
|
however carefully selected to best aid in debugging.
|
||||||
|
|
||||||
@item --debug @var{flags}
|
@item --debug @var{flags}
|
||||||
@opindex debug
|
@opindex debug
|
||||||
Set debugging flags. All flags are or-ed and @var{flags} may
|
Set debugging flags. All flags are or-ed and @var{flags} may
|
||||||
|
@ -617,19 +617,25 @@ is given as fingerprint or keygrip.
|
|||||||
@item --debug-level @var{level}
|
@item --debug-level @var{level}
|
||||||
@opindex debug-level
|
@opindex debug-level
|
||||||
Select the debug level for investigating problems. @var{level} may be
|
Select the debug level for investigating problems. @var{level} may be
|
||||||
one of:
|
a numeric value or by a keyword:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item none
|
@item none
|
||||||
no debugging at all.
|
No debugging at all. A value of less than 1 may be used instead of
|
||||||
|
the keyword.
|
||||||
@item basic
|
@item basic
|
||||||
some basic debug messages
|
Some basic debug messages. A value between 1 and 2 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item advanced
|
@item advanced
|
||||||
more verbose debug messages
|
More verbose debug messages. A value between 3 and 5 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item expert
|
@item expert
|
||||||
even more detailed messages
|
Even more detailed messages. A value between 6 and 8 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item guru
|
@item guru
|
||||||
all of the debug messages you can get
|
All of the debug messages you can get. A value greater than 8 may be
|
||||||
|
used instead of the keyword. The creation of hash tracing files is
|
||||||
|
only enabled if the keyword is used.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
How these messages are mapped to the actual debugging flags is not
|
How these messages are mapped to the actual debugging flags is not
|
||||||
|
@ -123,20 +123,26 @@ verbose commands to @command{gpgsm}, such as @samp{-vv}.
|
|||||||
|
|
||||||
@item --debug-level @var{level}
|
@item --debug-level @var{level}
|
||||||
@opindex debug-level
|
@opindex debug-level
|
||||||
Select the debug level for investigating problems. @var{level} may be
|
Select the debug level for investigating problems. @var{level} may be
|
||||||
one of:
|
a numeric value or a keyword:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item none
|
@item none
|
||||||
no debugging at all.
|
No debugging at all. A value of less than 1 may be used instead of
|
||||||
|
the keyword.
|
||||||
@item basic
|
@item basic
|
||||||
some basic debug messages
|
Some basic debug messages. A value between 1 and 2 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item advanced
|
@item advanced
|
||||||
more verbose debug messages
|
More verbose debug messages. A value between 3 and 5 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item expert
|
@item expert
|
||||||
even more detailed messages
|
Even more detailed messages. A value between 6 and 8 may be used
|
||||||
|
instead of the keyword.
|
||||||
@item guru
|
@item guru
|
||||||
all of the debug messages you can get
|
All of the debug messages you can get. A value greater than 8 may be
|
||||||
|
used instead of the keyword. The creation of hash tracing files is
|
||||||
|
only enabled if the keyword is used.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
How these messages are mapped to the actual debugging flags is not
|
How these messages are mapped to the actual debugging flags is not
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-12-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpg.c (set_debug): Allow for numerical debug leveles. Print
|
||||||
|
active debug flags.
|
||||||
|
|
||||||
2009-11-27 Werner Koch <wk@g10code.com>
|
2009-11-27 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* keyedit.c (cmds, keyedit_menu): New command "checkbkupkey".
|
* keyedit.c (cmds, keyedit_menu): New command "checkbkupkey".
|
||||||
|
39
g10/gpg.c
39
g10/gpg.c
@ -976,19 +976,30 @@ set_opt_session_env (const char *name, const char *value)
|
|||||||
static void
|
static void
|
||||||
set_debug (const char *level)
|
set_debug (const char *level)
|
||||||
{
|
{
|
||||||
|
int numok = (level && digitp (level));
|
||||||
|
int numlvl = numok? atoi (level) : 0;
|
||||||
|
|
||||||
if (!level)
|
if (!level)
|
||||||
;
|
;
|
||||||
else if (!strcmp (level, "none"))
|
else if (!strcmp (level, "none") || (numok && numlvl < 1))
|
||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
else if (!strcmp (level, "basic"))
|
else if (!strcmp (level, "basic") || (numok && numlvl <= 2))
|
||||||
opt.debug = DBG_MEMSTAT_VALUE;
|
opt.debug = DBG_MEMSTAT_VALUE;
|
||||||
else if (!strcmp (level, "advanced"))
|
else if (!strcmp (level, "advanced") || (numok && numlvl <= 5))
|
||||||
opt.debug = DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE;
|
opt.debug = DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE;
|
||||||
else if (!strcmp (level, "expert"))
|
else if (!strcmp (level, "expert") || (numok && numlvl <= 8))
|
||||||
opt.debug = (DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE
|
opt.debug = (DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE
|
||||||
|DBG_CACHE_VALUE|DBG_FILTER_VALUE|DBG_PACKET_VALUE);
|
|DBG_CACHE_VALUE|DBG_FILTER_VALUE|DBG_PACKET_VALUE);
|
||||||
else if (!strcmp (level, "guru"))
|
else if (!strcmp (level, "guru") || numok)
|
||||||
opt.debug = ~0;
|
{
|
||||||
|
opt.debug = ~0;
|
||||||
|
/* Unless the "guru" string has been used we don't want to allow
|
||||||
|
hashing debugging. The rationale is that people tend to
|
||||||
|
select the highest debug value and would then clutter their
|
||||||
|
disk with debug files which may reveal confidential data. */
|
||||||
|
if (numok)
|
||||||
|
opt.debug &= ~(DBG_HASHING_VALUE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_error (_("invalid debug-level `%s' given\n"), level);
|
log_error (_("invalid debug-level `%s' given\n"), level);
|
||||||
@ -1006,6 +1017,22 @@ set_debug (const char *level)
|
|||||||
if (opt.debug & DBG_IOBUF_VALUE )
|
if (opt.debug & DBG_IOBUF_VALUE )
|
||||||
iobuf_debug_mode = 1;
|
iobuf_debug_mode = 1;
|
||||||
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
||||||
|
|
||||||
|
if (opt.debug)
|
||||||
|
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
|
||||||
|
(opt.debug & DBG_PACKET_VALUE )? " packet":"",
|
||||||
|
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
|
||||||
|
(opt.debug & DBG_CIPHER_VALUE )? " cipher":"",
|
||||||
|
(opt.debug & DBG_FILTER_VALUE )? " filter":"",
|
||||||
|
(opt.debug & DBG_IOBUF_VALUE )? " iobuf":"",
|
||||||
|
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
|
||||||
|
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
|
||||||
|
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
|
||||||
|
(opt.debug & DBG_TRUST_VALUE )? " trust":"",
|
||||||
|
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
|
||||||
|
(opt.debug & DBG_EXTPROG_VALUE)? " extprog":"",
|
||||||
|
(opt.debug & DBG_CARD_IO_VALUE)? " cardio":"",
|
||||||
|
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
27
g13/g13.c
27
g13/g13.c
@ -258,18 +258,25 @@ wrong_args (const char *text)
|
|||||||
static void
|
static void
|
||||||
set_debug (void)
|
set_debug (void)
|
||||||
{
|
{
|
||||||
|
int numok = (debug_level && digitp (debug_level));
|
||||||
|
int numlvl = numok? atoi (debug_level) : 0;
|
||||||
|
|
||||||
if (!debug_level)
|
if (!debug_level)
|
||||||
;
|
;
|
||||||
else if (!strcmp (debug_level, "none"))
|
else if (!strcmp (debug_level, "none") || (numok && numlvl < 1))
|
||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
else if (!strcmp (debug_level, "basic"))
|
else if (!strcmp (debug_level, "basic") || (numok && numlvl <= 2))
|
||||||
opt.debug = DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE;
|
||||||
else if (!strcmp (debug_level, "advanced"))
|
else if (!strcmp (debug_level, "advanced") || (numok && numlvl <= 5))
|
||||||
opt.debug = DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE;
|
||||||
else if (!strcmp (debug_level, "expert"))
|
else if (!strcmp (debug_level, "expert") || (numok && numlvl <= 8))
|
||||||
opt.debug = (DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE|DBG_CRYPTO_VALUE);
|
opt.debug = (DBG_ASSUAN_VALUE|DBG_MOUNT_VALUE|DBG_CRYPTO_VALUE);
|
||||||
else if (!strcmp (debug_level, "guru"))
|
else if (!strcmp (debug_level, "guru") || numok)
|
||||||
opt.debug = ~0;
|
{
|
||||||
|
opt.debug = ~0;
|
||||||
|
/* if (numok) */
|
||||||
|
/* opt.debug &= ~(DBG_HASHING_VALUE); */
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
||||||
@ -286,6 +293,14 @@ set_debug (void)
|
|||||||
if (opt.debug & DBG_CRYPTO_VALUE )
|
if (opt.debug & DBG_CRYPTO_VALUE )
|
||||||
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
||||||
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
||||||
|
|
||||||
|
if (opt.debug)
|
||||||
|
log_info ("enabled debug flags:%s%s%s%s%s\n",
|
||||||
|
(opt.debug & DBG_MOUNT_VALUE )? " mount":"",
|
||||||
|
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
|
||||||
|
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
|
||||||
|
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
|
||||||
|
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-12-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* scdaemon.c (set_debug): Allow for numerical debug leveles. Print
|
||||||
|
active debug flags.
|
||||||
|
|
||||||
2009-11-25 Marcus Brinkmann <marcus@g10code.de>
|
2009-11-25 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* command.c (scd_command_handler): Use assuan_fd_t and
|
* command.c (scd_command_handler): Use assuan_fd_t and
|
||||||
|
@ -289,19 +289,30 @@ tid_log_callback (void)
|
|||||||
static void
|
static void
|
||||||
set_debug (const char *level)
|
set_debug (const char *level)
|
||||||
{
|
{
|
||||||
|
int numok = (level && digitp (level));
|
||||||
|
int numlvl = numok? atoi (level) : 0;
|
||||||
|
|
||||||
if (!level)
|
if (!level)
|
||||||
;
|
;
|
||||||
else if (!strcmp (level, "none"))
|
else if (!strcmp (level, "none") || (numok && numlvl < 1))
|
||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
else if (!strcmp (level, "basic"))
|
else if (!strcmp (level, "basic") || (numok && numlvl <= 2))
|
||||||
opt.debug = DBG_ASSUAN_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE;
|
||||||
else if (!strcmp (level, "advanced"))
|
else if (!strcmp (level, "advanced") || (numok && numlvl <= 5))
|
||||||
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
|
||||||
else if (!strcmp (level, "expert"))
|
else if (!strcmp (level, "expert") || (numok && numlvl <= 8))
|
||||||
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|
||||||
|DBG_CACHE_VALUE|DBG_CARD_IO_VALUE);
|
|DBG_CACHE_VALUE|DBG_CARD_IO_VALUE);
|
||||||
else if (!strcmp (level, "guru"))
|
else if (!strcmp (level, "guru") || numok)
|
||||||
opt.debug = ~0;
|
{
|
||||||
|
opt.debug = ~0;
|
||||||
|
/* Unless the "guru" string has been used we don't want to allow
|
||||||
|
hashing debugging. The rationale is that people tend to
|
||||||
|
select the highest debug value and would then clutter their
|
||||||
|
disk with debug files which may reveal confidential data. */
|
||||||
|
if (numok)
|
||||||
|
opt.debug &= ~(DBG_HASHING_VALUE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_error (_("invalid debug-level `%s' given\n"), level);
|
log_error (_("invalid debug-level `%s' given\n"), level);
|
||||||
@ -319,6 +330,18 @@ set_debug (const char *level)
|
|||||||
if (opt.debug & DBG_CRYPTO_VALUE )
|
if (opt.debug & DBG_CRYPTO_VALUE )
|
||||||
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
||||||
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
||||||
|
|
||||||
|
if (opt.debug)
|
||||||
|
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s%s\n",
|
||||||
|
(opt.debug & DBG_COMMAND_VALUE)? " command":"",
|
||||||
|
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
|
||||||
|
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
|
||||||
|
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
|
||||||
|
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
|
||||||
|
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
|
||||||
|
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
|
||||||
|
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"",
|
||||||
|
(opt.debug & DBG_CARD_IO_VALUE)? " cardio":"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-12-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* gpgsm.c (set_debug): Allow for numerical debug leveles. Print
|
||||||
|
active debug flags.
|
||||||
|
|
||||||
2009-12-02 Werner Koch <wk@g10code.com>
|
2009-12-02 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* verify.c (gpgsm_verify): Add audit info on hash algorithms.
|
* verify.c (gpgsm_verify): Add audit info on hash algorithms.
|
||||||
|
36
sm/gpgsm.c
36
sm/gpgsm.c
@ -648,23 +648,34 @@ set_opt_session_env (const char *name, const char *value)
|
|||||||
static void
|
static void
|
||||||
set_debug (void)
|
set_debug (void)
|
||||||
{
|
{
|
||||||
|
int numok = (debug_level && digitp (debug_level));
|
||||||
|
int numlvl = numok? atoi (debug_level) : 0;
|
||||||
|
|
||||||
if (!debug_level)
|
if (!debug_level)
|
||||||
;
|
;
|
||||||
else if (!strcmp (debug_level, "none"))
|
else if (!strcmp (debug_level, "none") || (numok && numlvl < 1))
|
||||||
opt.debug = 0;
|
opt.debug = 0;
|
||||||
else if (!strcmp (debug_level, "basic"))
|
else if (!strcmp (debug_level, "basic") || (numok && numlvl <= 2))
|
||||||
opt.debug = DBG_ASSUAN_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE;
|
||||||
else if (!strcmp (debug_level, "advanced"))
|
else if (!strcmp (debug_level, "advanced") || (numok && numlvl <= 5))
|
||||||
opt.debug = DBG_ASSUAN_VALUE|DBG_X509_VALUE;
|
opt.debug = DBG_ASSUAN_VALUE|DBG_X509_VALUE;
|
||||||
else if (!strcmp (debug_level, "expert"))
|
else if (!strcmp (debug_level, "expert") || (numok && numlvl <= 8))
|
||||||
opt.debug = (DBG_ASSUAN_VALUE|DBG_X509_VALUE
|
opt.debug = (DBG_ASSUAN_VALUE|DBG_X509_VALUE
|
||||||
|DBG_CACHE_VALUE|DBG_CRYPTO_VALUE);
|
|DBG_CACHE_VALUE|DBG_CRYPTO_VALUE);
|
||||||
else if (!strcmp (debug_level, "guru"))
|
else if (!strcmp (debug_level, "guru") || numok)
|
||||||
opt.debug = ~0;
|
{
|
||||||
|
opt.debug = ~0;
|
||||||
|
/* Unless the "guru" string has been used we don't want to allow
|
||||||
|
hashing debugging. The rationale is that people tend to
|
||||||
|
select the highest debug value and would then clutter their
|
||||||
|
disk with debug files which may reveal confidential data. */
|
||||||
|
if (numok)
|
||||||
|
opt.debug &= ~(DBG_HASHING_VALUE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
log_error (_("invalid debug-level `%s' given\n"), debug_level);
|
||||||
gpgsm_exit(2);
|
gpgsm_exit (2);
|
||||||
}
|
}
|
||||||
|
|
||||||
opt.debug |= debug_value;
|
opt.debug |= debug_value;
|
||||||
@ -679,6 +690,17 @@ set_debug (void)
|
|||||||
if (opt.debug & DBG_CRYPTO_VALUE )
|
if (opt.debug & DBG_CRYPTO_VALUE )
|
||||||
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
|
||||||
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
|
||||||
|
|
||||||
|
if (opt.debug)
|
||||||
|
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s\n",
|
||||||
|
(opt.debug & DBG_X509_VALUE )? " x509":"",
|
||||||
|
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
|
||||||
|
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
|
||||||
|
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
|
||||||
|
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
|
||||||
|
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
|
||||||
|
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
|
||||||
|
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user