Print status of CRL checks in the audit log.
[gnupg.git] / sm / certchain.c
index f975175..e9a1aad 100644 (file)
@@ -539,6 +539,8 @@ find_up_dirmngr (ctrl_t ctrl, KEYDB_HANDLE kh,
   strlist_t names = NULL;
   int count = 0;
   char *pattern;
+
+  (void)kh;
       
   if (opt.verbose)
     log_info (_("looking up issuer from the Dirmngr cache\n"));
@@ -596,9 +598,9 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
         {
           rc = keydb_search_issuer_sn (kh, s, authidno);
           if (rc)
-              keydb_search_reset (kh);
+            keydb_search_reset (kh);
           
-          /* In case of an error, try to get the certifcate from the
+          /* In case of an error, try to get the certificate from the
              dirmngr.  That is done by trying to put that certifcate
              into the ephemeral DB and let the code below do the
              actual retrieve.  Thus there is no error checking.
@@ -702,12 +704,14 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
     rc = keydb_search_subject (kh, issuer);
   if (rc == -1 && !find_next)
     {
+      int old;
+
       /* Also try to get it from the Dirmngr cache.  The function
          merely puts it into the ephemeral database.  */
       find_up_dirmngr (ctrl, kh, NULL, issuer, 0);
 
       /* Not found, let us see whether we have one in the ephemeral key DB. */
-      int old = keydb_set_ephemeral (kh, 1);
+      old = keydb_set_ephemeral (kh, 1);
       if (!old)
         {
           keydb_search_reset (kh);
@@ -885,11 +889,17 @@ is_cert_still_valid (ctrl_t ctrl, int force_ocsp, int lm, estream_t fp,
   gpg_error_t err;
 
   if (opt.no_crl_check && !ctrl->use_ocsp)
-    return 0;
+    {
+      audit_log_ok (ctrl->audit, AUDIT_CRL_CHECK, 
+                    gpg_error (GPG_ERR_NOT_ENABLED));
+      return 0;
+    }
 
   err = gpgsm_dirmngr_isvalid (ctrl,
                                subject_cert, issuer_cert, 
                                force_ocsp? 2 : !!ctrl->use_ocsp);
+  audit_log_ok (ctrl->audit, AUDIT_CRL_CHECK, err);
+
   if (err)
     {
       if (!lm)
@@ -975,7 +985,7 @@ check_validity_period (ksba_isotime_t current_time,
       if (!listmode)
         {
           log_info ("  (valid from ");
-          gpgsm_dump_time (not_before);
+          dump_isotime (not_before);
           log_printf (")\n");
         }
       return gpg_error (GPG_ERR_CERT_TOO_YOUNG);
@@ -990,7 +1000,7 @@ check_validity_period (ksba_isotime_t current_time,
       if (!listmode)
         {
           log_info ("  (expired at ");
-          gpgsm_dump_time (not_after);
+          dump_isotime (not_after);
           log_printf (")\n");
         }
       if (opt.ignore_expiration)
@@ -1039,9 +1049,9 @@ check_validity_period_cm (ksba_isotime_t current_time,
       do_list (1, listmode, listfp,
                _("certificate with invalid validity"));
       log_info ("  (valid from ");
-      gpgsm_dump_time (not_before);
+      dump_isotime (not_before);
       log_printf (" expired at ");
-      gpgsm_dump_time (not_after);
+      dump_isotime (not_after);
       log_printf (")\n");
       return gpg_error (GPG_ERR_BAD_CERT);
     }
@@ -1060,7 +1070,7 @@ check_validity_period_cm (ksba_isotime_t current_time,
       if (!listmode)
         {
           log_info ("  (valid from ");
-          gpgsm_dump_time (not_before);
+          dump_isotime (not_before);
           log_printf (")\n");
         }
       return gpg_error (GPG_ERR_CERT_TOO_YOUNG);
@@ -1083,13 +1093,13 @@ check_validity_period_cm (ksba_isotime_t current_time,
         {
           log_info (depth== 0? _("  (  signature created at ") :
                     /* */      _("  (certificate created at ") );
-          gpgsm_dump_time (check_time);
+          dump_isotime (check_time);
           log_printf (")\n");
           log_info (depth==0? _("  (certificate valid from ") :
                     /* */     _("  (     issuer valid from ") );
-          gpgsm_dump_time (not_before);
+          dump_isotime (not_before);
           log_info (" to ");
-          gpgsm_dump_time (not_after);
+          dump_isotime (not_after);
           log_printf (")\n");
         }
       if (opt.ignore_expiration)
@@ -1280,7 +1290,7 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
              We used to do this only later but changed it to call the
              check right here so that we can access special flags
              associated with that specific root certificate.  */
-          istrusted_rc = gpgsm_agent_istrusted (ctrl, subject_cert,
+          istrusted_rc = gpgsm_agent_istrusted (ctrl, subject_cert, NULL,
                                                 rootca_flags);
           audit_log_cert (ctrl->audit, AUDIT_ROOT_TRUSTED,
                           subject_cert, istrusted_rc);
@@ -1561,7 +1571,7 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
                performance reasons. */
             if (is_root)
               {
-                istrusted_rc = gpgsm_agent_istrusted (ctrl, issuer_cert,
+                istrusted_rc = gpgsm_agent_istrusted (ctrl, issuer_cert, NULL,
                                                       rootca_flags);
                 if (!istrusted_rc && rootca_flags->relax)
                   {