diff options
Diffstat (limited to 'sm/certpath.c')
-rw-r--r-- | sm/certpath.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sm/certpath.c b/sm/certpath.c index f155cfb2d..9ef862643 100644 --- a/sm/certpath.c +++ b/sm/certpath.c @@ -38,7 +38,9 @@ static int unknown_criticals (KsbaCert cert) { static const char *known[] = { + "2.5.29.15", /* keyUsage */ "2.5.29.19", /* basic Constraints */ + "2.5.29.32", /* certificatePolicies */ NULL }; int rc = 0, i, idx, crit; @@ -232,7 +234,14 @@ gpgsm_validate_path (KsbaCert cert) rc = keydb_search_subject (kh, issuer); if (rc) { - log_error ("failed to find issuer's certificate: rc=%d\n", rc); + if (rc == -1) + { + log_info ("issuer certificate ("); + gpgsm_dump_string (issuer); + log_printf (") not found\n"); + } + else + log_error ("failed to find issuer's certificate: rc=%d\n", rc); rc = GNUPG_Missing_Certificate; goto leave; } @@ -340,7 +349,14 @@ gpgsm_basic_cert_check (KsbaCert cert) rc = keydb_search_subject (kh, issuer); if (rc) { - log_error ("failed to find issuer's certificate: rc=%d\n", rc); + if (rc == -1) + { + log_info ("issuer certificate ("); + gpgsm_dump_string (issuer); + log_printf (") not found\n"); + } + else + log_error ("failed to find issuer's certificate: rc=%d\n", rc); rc = GNUPG_Missing_Certificate; goto leave; } |