dirmngr: Use system provided root CAs with KS_FETCH.
[gnupg.git] / dirmngr / dirmngr.h
index de243ee..6078884 100644 (file)
@@ -1,15 +1,16 @@
 /* dirmngr.h - Common definitions for the dirmngr
- *     Copyright (C) 2002 Klarälvdalens Datakonsult AB
- *     Copyright (C) 2004 g10 Code GmbH
+ * Copyright (C) 2002 Klarälvdalens Datakonsult AB
+ * Copyright (C) 2004, 2015 g10 Code GmbH
+ * Copyright (C) 2014 Werner Koch
  *
- * This file is part of DirMngr.
+ * This file is part of GnuPG.
  *
- * DirMngr is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
- * DirMngr is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -32,7 +33,7 @@
 #include "../common/membuf.h"
 #include "../common/sysutils.h" /* (gnupg_fd_t) */
 #include "../common/i18n.h"
-#include "../common/http.h"     /* (parsed_uri_t) */
+#include "http.h"     /* (parsed_uri_t) */
 
 /* This objects keeps information about a particular LDAP server and
    is used as item of a single linked list of servers. */
@@ -79,7 +80,6 @@ struct
   int dry_run;        /* don't change any persistent data */
   int batch;          /* batch mode */
   const char *homedir;      /* Configuration directory name */
-  const char *homedir_data; /* Ditto for data files (/usr/share/dirmngr).  */
   const char *homedir_cache; /* Ditto for cache files (/var/cache/dirmngr).  */
 
   char *config_filename;     /* Name of a config file, which will be
@@ -93,13 +93,14 @@ struct
   int system_service;   /* We are running as W32 service (implies daemon).  */
   int system_daemon;    /* We are running in system daemon mode.  */
   int running_detached; /* We are running in detached mode.  */
+  int use_tor;          /* Tor mode has been enabled.  */
 
   int force;          /* Force loading outdated CRLs. */
 
   int disable_http;       /* Do not use HTTP at all.  */
   int disable_ldap;       /* Do not use LDAP at all.  */
   int honor_http_proxy;   /* Honor the http_proxy env variable. */
-  const char *http_proxy; /* Use given HTTP proxy.  */
+  const char *http_proxy; /* The default HTTP proxy.  */
   const char *ldap_proxy; /* Use given LDAP proxy.  */
   int only_ldap_proxy;    /* Only use the LDAP proxy; no fallback.  */
   int ignore_http_dp;     /* Ignore HTTP CRL distribution points.  */
@@ -129,25 +130,27 @@ struct
                                        considered valid after thisUpdate. */
   unsigned int ocsp_current_period; /* Seconds a response is considered
                                        current after nextUpdate. */
+
+  strlist_t keyserver;              /* List of default keyservers.  */
 } opt;
 
 
 #define DBG_X509_VALUE    1    /* debug x.509 parsing */
-#define DBG_LOOKUP_VALUE  2    /* debug lookup details */
 #define DBG_CRYPTO_VALUE  4    /* debug low level crypto */
 #define DBG_MEMORY_VALUE  32   /* debug memory allocation stuff */
 #define DBG_CACHE_VALUE   64   /* debug the caching */
 #define DBG_MEMSTAT_VALUE 128  /* show memory statistics */
 #define DBG_HASHING_VALUE 512  /* debug hashing operations */
-#define DBG_ASSUAN_VALUE  1024  /* debug assuan communication */
+#define DBG_IPC_VALUE     1024  /* debug assuan communication */
+#define DBG_LOOKUP_VALUE  8192  /* debug lookup details */
 
 #define DBG_X509    (opt.debug & DBG_X509_VALUE)
-#define DBG_LOOKUP  (opt.debug & DBG_LOOKUP_VALUE)
 #define DBG_CRYPTO  (opt.debug & DBG_CRYPTO_VALUE)
 #define DBG_MEMORY  (opt.debug & DBG_MEMORY_VALUE)
 #define DBG_CACHE   (opt.debug & DBG_CACHE_VALUE)
 #define DBG_HASHING (opt.debug & DBG_HASHING_VALUE)
-#define DBG_ASSUAN   (opt.debug & DBG_ASSUAN_VALUE)
+#define DBG_IPC     (opt.debug & DBG_IPC_VALUE)
+#define DBG_LOOKUP  (opt.debug & DBG_LOOKUP_VALUE)
 
 /* A simple list of certificate references. */
 struct cert_ref_s
@@ -174,15 +177,21 @@ struct server_control_s
                             response. */
 
   int audit_events;  /* Send audit events to client.  */
-  uri_item_t keyservers; /* List of keyservers.  */
+  char *http_proxy;  /* The used http_proxy or NULL.  */
 };
 
 
 /*-- dirmngr.c --*/
 void dirmngr_exit( int );  /* Wrapper for exit() */
 void dirmngr_init_default_ctrl (ctrl_t ctrl);
+void dirmngr_deinit_default_ctrl (ctrl_t ctrl);
 void dirmngr_sighup_action (void);
 
+
+/*-- Various housekeeping functions.  --*/
+void ks_hkp_housekeeping (time_t curtime);
+
+
 /*-- server.c --*/
 ldap_server_t get_ldapservers_from_ctrl (ctrl_t ctrl);
 ksba_cert_t get_cert_local (ctrl_t ctrl, const char *issuer);
@@ -192,7 +201,9 @@ ksba_cert_t get_cert_local_ski (ctrl_t ctrl,
 gpg_error_t get_istrusted_from_client (ctrl_t ctrl, const char *hexfpr);
 void start_command_handler (gnupg_fd_t fd);
 gpg_error_t dirmngr_status (ctrl_t ctrl, const char *keyword, ...);
+gpg_error_t dirmngr_status_help (ctrl_t ctrl, const char *text);
 gpg_error_t dirmngr_tick (ctrl_t ctrl);
 
 
+
 #endif /*DIRMNGR_H*/