* gpgsm.c (main): Set the prefixes for assuan logging.
[gnupg.git] / sm / keylist.c
index 96a8469..7b7402f 100644 (file)
@@ -1,5 +1,5 @@
 /* keylist.c
- * Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
 #include <time.h>
 #include <assert.h>
 
+#include "gpgsm.h"
+
 #include <gcrypt.h>
 #include <ksba.h>
 
-#include "gpgsm.h"
 #include "keydb.h"
 #include "i18n.h"
 
@@ -67,7 +68,7 @@ print_capabilities (KsbaCert cert, FILE *fp)
   unsigned int use;
 
   err = ksba_cert_get_key_usage (cert, &use);
-  if (err == KSBA_No_Data)
+  if (gpg_err_code (err) == GPG_ERR_NO_DATA)
     {
       putc ('e', fp);
       putc ('s', fp);
@@ -80,7 +81,7 @@ print_capabilities (KsbaCert cert, FILE *fp)
   if (err)
     { 
       log_error (_("error getting key usage information: %s\n"),
-                 ksba_strerror (err));
+                 gpg_strerror (err));
       return;
     } 
 
@@ -100,14 +101,12 @@ print_capabilities (KsbaCert cert, FILE *fp)
 
 
 static void
-print_time (time_t t, FILE *fp)
+print_time (gnupg_isotime_t t, FILE *fp)
 {
-  if (!t)
+  if (!t || !*t)
     ;
-  else if ( t == (time_t)(-1) )
-    putc ('?', fp);
-  else
-    fprintf (fp, "%lu", (unsigned long)t);
+  else 
+    fputs (t, fp);
 }
 
 
@@ -152,6 +151,7 @@ list_cert_colon (KsbaCert cert, FILE *fp, int have_secret)
   char *p;
   KsbaSexp sexp;
   char *fpr;
+  ksba_isotime_t t;
 
   fputs (have_secret? "crs:":"crt:", fp);
   trustletter = 0;
@@ -176,9 +176,11 @@ list_cert_colon (KsbaCert cert, FILE *fp, int have_secret)
            fpr+24);
 
   /* we assume --fixed-list-mode for gpgsm */
-  print_time ( ksba_cert_get_validity (cert, 0), fp);
+  ksba_cert_get_validity (cert, 0, t);
+  print_time (t, fp);
   putc (':', fp);
-  print_time ( ksba_cert_get_validity (cert, 1), fp);
+  ksba_cert_get_validity (cert, 1, t);
+  print_time ( t, fp);
   putc (':', fp);
   /* field 8, serial number: */
   if ((sexp = ksba_cert_get_serial (cert)))
@@ -279,7 +281,7 @@ list_cert_std (KsbaCert cert, FILE *fp, int have_secret)
   KsbaError kerr;
   KsbaSexp sexp;
   char *dn;
-  time_t t;
+  ksba_isotime_t t;
   int idx;
   int is_ca, chainlen;
   unsigned int kusage;
@@ -317,20 +319,20 @@ list_cert_std (KsbaCert cert, FILE *fp, int have_secret)
       putc ('\n', fp);
     }
 
-  t = ksba_cert_get_validity (cert, 0);
+  ksba_cert_get_validity (cert, 0, t);
   fputs ("     validity: ", fp);
   gpgsm_print_time (fp, t);
   fputs (" through ", fp);
-  t = ksba_cert_get_validity (cert, 1);
+  ksba_cert_get_validity (cert, 1, t);
   gpgsm_print_time (fp, t);
   putc ('\n', fp);
 
   kerr = ksba_cert_get_key_usage (cert, &kusage);
-  if (kerr != KSBA_No_Data)
+  if (gpg_err_code (kerr) != GPG_ERR_NO_DATA)
     {
       fputs ("    key usage:", fp);
       if (kerr)
-        fprintf (fp, " [error: %s]", ksba_strerror (kerr));
+        fprintf (fp, " [error: %s]", gpg_strerror (kerr));
       else
         {
           if ( (kusage & KSBA_KEYUSAGE_DIGITAL_SIGNATURE))
@@ -356,11 +358,11 @@ list_cert_std (KsbaCert cert, FILE *fp, int have_secret)
     }
 
   kerr = ksba_cert_get_cert_policies (cert, &string);
-  if (kerr != KSBA_No_Data)
+  if (gpg_err_code (kerr) != GPG_ERR_NO_DATA)
     {
       fputs ("     policies: ", fp);
       if (kerr)
-        fprintf (fp, "[error: %s]", ksba_strerror (kerr));
+        fprintf (fp, "[error: %s]", gpg_strerror (kerr));
       else
         {
           for (p=string; *p; p++)
@@ -379,7 +381,7 @@ list_cert_std (KsbaCert cert, FILE *fp, int have_secret)
     {
       fputs (" chain length: ", fp);
       if (kerr)
-        fprintf (fp, "[error: %s]", ksba_strerror (kerr));
+        fprintf (fp, "[error: %s]", gpg_strerror (kerr));
       else if (chainlen == -1)
         fputs ("unlimited", fp);
       else
@@ -460,7 +462,7 @@ list_internal_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode)
           if (rc)
             {
               log_error ("key `%s' not found: %s\n",
-                         sl->d, gnupg_strerror (rc));
+                         sl->d, gpg_strerror (rc));
               rc = 0;
             }
           else
@@ -485,7 +487,7 @@ list_internal_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode)
       rc = keydb_get_cert (hd, &cert);
       if (rc) 
         {
-          log_error ("keydb_get_cert failed: %s\n", gnupg_strerror (rc));
+          log_error ("keydb_get_cert failed: %s\n", gpg_strerror (rc));
           goto leave;
         }
       
@@ -535,7 +537,7 @@ list_internal_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode)
       cert = NULL;
     }
   if (rc && rc != -1)
-    log_error ("keydb_search failed: %s\n", gnupg_strerror (rc));
+    log_error ("keydb_search failed: %s\n", gpg_strerror (rc));
   
  leave:
   ksba_cert_release (cert);
@@ -593,7 +595,7 @@ list_external_keys (CTRL ctrl, STRLIST names, FILE *fp)
 
   rc = gpgsm_dirmngr_lookup (ctrl, names, list_external_cb, &parm);
   if (rc)
-    log_error ("listing external keys failed: %s\n", gnupg_strerror (rc));
+    log_error ("listing external keys failed: %s\n", gpg_strerror (rc));
 }
 
 /* List all keys or just the key given as NAMES.