aboutsummaryrefslogtreecommitdiffstats
path: root/sm/certpath.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sm/certpath.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sm/certpath.c b/sm/certpath.c
index 0b2d8b4fc..01696fc27 100644
--- a/sm/certpath.c
+++ b/sm/certpath.c
@@ -308,7 +308,7 @@ gpgsm_is_root_cert (KsbaCert cert)
/* Validate a path and optionally return the nearest expiration time
in R_EXPTIME */
int
-gpgsm_validate_path (KsbaCert cert, time_t *r_exptime)
+gpgsm_validate_path (CTRL ctrl, KsbaCert cert, time_t *r_exptime)
{
int rc = 0, depth = 0, maxdepth;
char *issuer = NULL;
@@ -551,6 +551,14 @@ gpgsm_validate_path (KsbaCert cert, time_t *r_exptime)
}
}
+ rc = gpgsm_cert_use_cert_p (issuer_cert);
+ if (rc)
+ {
+ gpgsm_status2 (ctrl, STATUS_ERROR, "certpath.issuer.keyusage",
+ gnupg_error_token (rc), NULL);
+ rc = 0;
+ }
+
if (opt.verbose)
log_info ("certificate is good\n");