aboutsummaryrefslogtreecommitdiffstats
path: root/sm/certchain.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-02-27 11:03:20 +0000
committerWerner Koch <[email protected]>2022-02-27 11:26:38 +0000
commit7c8c6060616ab91f5490e91a0fb9efc9aee9f58e (patch)
tree668b52ae34cf03c609fbd90ae086e99f693de110 /sm/certchain.c
parentdimngr: Do not check the self-signature of a root CA cert. (diff)
downloadgnupg-7c8c6060616ab91f5490e91a0fb9efc9aee9f58e.tar.gz
gnupg-7c8c6060616ab91f5490e91a0fb9efc9aee9f58e.zip
agent: New flag "qual" for the trustlist.txt.
* agent/trustlist.c (struct trustitem_s): Add flag "qual". (read_one_trustfile): Rename arg "allow_include" to "systrust" and change callers. Parse new flag "qual". (istrusted_internal): Print all flags. * sm/call-agent.c (istrusted_status_cb): Detect the "qual" flag. * sm/gpgsm.h (struct rootca_flags_s): Add flag "qualified". * sm/certchain.c (do_validate_chain): Take care of the qualified flag.
Diffstat (limited to 'sm/certchain.c')
-rw-r--r--sm/certchain.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sm/certchain.c b/sm/certchain.c
index ee17599d1..4050680e8 100644
--- a/sm/certchain.c
+++ b/sm/certchain.c
@@ -1715,8 +1715,12 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
else
{
/* Need to consult the list of root certificates for
- qualified signatures. */
- err = gpgsm_is_in_qualified_list (ctrl, subject_cert, NULL);
+ qualified signatures. But first we check the
+ modern way by looking at the root ca flag. */
+ if (rootca_flags->qualified)
+ err = 0;
+ else
+ err = gpgsm_is_in_qualified_list (ctrl, subject_cert, NULL);
if (!err)
is_qualified = 1;
else if ( gpg_err_code (err) == GPG_ERR_NOT_FOUND)
@@ -2113,7 +2117,7 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
do_validate_chain. This function is a wrapper to handle a root
certificate with the chain_model flag set. If RETFLAGS is not
NULL, flags indicating now the verification was done are stored
- there. The only defined vits for RETFLAGS are
+ there. The only defined bits for RETFLAGS are
VALIDATE_FLAG_CHAIN_MODEL and VALIDATE_FLAG_STEED.
If you are verifying a signature you should set CHECKTIME to the