1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-09-21 15:01:41 +02:00

gpg: New option --proc-all-sigs

* g10/options.h (flags): Add proc_all_sigs.
* g10/mainproc.c (check_sig_and_print): Do not stop signature checking
if this new option is used.
* g10/gpg.c (oProcAllSigs): New.
(opts): Add "proc-all-sigs".
(main): Set it.
--

GnuPG-bug-id: 7261
Backported-from-master: 1eb382fb1f
This commit is contained in:
Werner Koch 2024-08-23 11:27:58 +02:00
parent 92667aa8c2
commit cb739bb2a5
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
5 changed files with 22 additions and 1 deletions

2
NEWS
View File

@ -20,6 +20,8 @@ Noteworthy changes in version 2.4.6 (unreleased)
* gpg: ADSKs are now configurable for new keys. [T6882]
* gpg: New option --proc-all-sigs. [T7261]
* gpgsm: Emit user IDs with an empty Subject also in colon mode.
[T7171]

View File

@ -264,6 +264,11 @@ out the actual signed data, but there are other pitfalls with this
format as well. It is suggested to avoid cleartext signatures in
favor of detached signatures.
Note: With option @option{--batch} he verification of signatures stops
at the first bad signature. This is a safe default for unattended
processing but sometimes a status for all signatures is needed. To
override this early bailout use the option @option{--proc-all-sigs}.
Note: To check whether a file was signed by a certain key the option
@option{--assert-signer} can be used. As an alternative the
@command{gpgv} tool can be used. @command{gpgv} is designed to
@ -1371,6 +1376,12 @@ Assume "yes" on most questions. Should not be used in an option file.
Assume "no" on most questions. Should not be used in an option file.
@item --proc-all-sigs
@opindex proc-all-sigs
This option overrides the behaviour of the @option{--batch} option to
stop signature verification at the first bad signatures.
@item --list-filter @{select=@var{expr}@}
@opindex list-filter
A list filter can be used to output only certain keys during key

View File

@ -455,6 +455,7 @@ enum cmd_and_opt_values
oAssertSigner,
oAssertPubkeyAlgo,
oKbxBufferSize,
oProcAllSigs,
oNoop
};
@ -902,6 +903,7 @@ static gpgrt_opt_t opts[] = {
ARGPARSE_s_n (oBatch, "batch", "@"),
ARGPARSE_s_n (oNoBatch, "no-batch", "@"),
ARGPARSE_s_n (oProcAllSigs, "proc-all-sigs", "@"),
ARGPARSE_s_n (oAnswerYes, "yes", "@"),
ARGPARSE_s_n (oAnswerNo, "no", "@"),
ARGPARSE_s_i (oStatusFD, "status-fd", "@"),
@ -2802,6 +2804,10 @@ main (int argc, char **argv)
nogreeting = 1;
break;
case oProcAllSigs:
opt.flags.proc_all_sigs = 1;
break;
case oUseAgent: /* Dummy. */
break;

View File

@ -2549,7 +2549,7 @@ check_sig_and_print (CTX c, kbnode_t node)
release_kbnode( keyblock );
if (rc)
g10_errors_seen = 1;
if (opt.batch && rc)
if (opt.batch && rc && !opt.flags.proc_all_sigs)
g10_exit (1);
}
else /* Error checking the signature. (neither Good nor Bad). */

View File

@ -305,6 +305,8 @@ struct
/* Fail if an operation can't be done in the requested compliance
* mode. */
unsigned int require_compliance:1;
/* Process all signatures even in batch mode. */
unsigned int proc_all_sigs:1;
} flags;
/* Linked list of ways to find a key if the key isn't on the local