* keyserver.c (parse_keyserver_uri): If there is a path present, set the
[gnupg.git] / g10 / options.h
index 1051d9f..af5c6f7 100644 (file)
@@ -1,6 +1,6 @@
 /* options.h
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
- *               2004 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ *               2005 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -16,7 +16,8 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ * USA.
  */
 #ifndef G10_OPTIONS_H
 #define G10_OPTIONS_H
@@ -26,8 +27,6 @@
 #include "main.h"
 #include "packet.h"
 
-#undef ENABLE_COMMENT_PACKETS  /* don't create comment packets */
-
 #ifndef EXTERN_UNLESS_MAIN_MODULE
 /* Norcraft can't cope with common symbols */
 #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
@@ -50,7 +49,9 @@ struct
   int list_only;
   int textmode;
   int expert;
+  const char *def_sig_expire;
   int ask_sig_expire;
+  const char *def_cert_expire;
   int ask_cert_expire;
   int batch;       /* run in batch mode */
   int answer_yes; /* answer yes on most questions */
@@ -80,7 +81,6 @@ struct
   int def_cert_level;
   int min_cert_level;
   int ask_cert_level;
-  int sk_comments;
   int no_version;
   int marginals_needed;
   int completes_needed;
@@ -100,9 +100,11 @@ struct
      we started storing the trust model inside the trustdb. */
   enum
     {
-      TM_CLASSIC=0, TM_PGP=1, TM_EXTERNAL=2, TM_ALWAYS, TM_AUTO
+      TM_CLASSIC=0, TM_PGP=1, TM_EXTERNAL=2, TM_ALWAYS, TM_DIRECT, TM_AUTO
     } trust_model;
   int force_ownertrust;
+  int pka_trust_increase;  /* Valid PKA information increases the trust. */
+  int allow_pka_lookup;    /* PKA lookups are only done if this is set. */
   enum
     {
       CO_GNUPG=0, CO_RFC2440, CO_RFC1991, CO_PGP2, CO_PGP6, CO_PGP7, CO_PGP8
@@ -125,22 +127,23 @@ struct
   int not_dash_escaped;
   int escape_from;
   int lock_once;
-  char *keyserver_uri;
-  char *keyserver_scheme;
-  char *keyserver_host;
-  char *keyserver_port;
-  char *keyserver_opaque;
+  struct keyserver_spec
+  {
+    char *uri;
+    char *scheme;
+    char *auth;
+    char *host;
+    char *port;
+    char *path;
+    char *opaque;
+    struct
+    {
+      unsigned int direct_uri:1;
+    } flags;
+  } *keyserver;
   struct
   {
-    int verbose;
-    int include_revoked;
-    int include_disabled;
-    int include_subkeys;
-    int use_temp_files;
-    int keep_temp_files;
-    int fake_v3_keyids;
-    int auto_key_retrieve;
-    int try_dns_srv;
+    unsigned int options;
     unsigned int import_options;
     unsigned int export_options;
     STRLIST other;
@@ -165,6 +168,8 @@ struct
   STRLIST sig_policy_url;
   STRLIST cert_policy_url;
   STRLIST sig_keyserver_url;
+  STRLIST cert_subpackets;
+  STRLIST sig_subpackets;
   int use_embedded_filename;
   int allow_non_selfsigned_uid;
   int allow_freeform_uid;
@@ -190,10 +195,19 @@ struct
   int no_homedir_creation;
   struct groupitem *grouplist;
   int strict;
-  int mangle_dos_filenames; 
+  int mangle_dos_filenames;
   int enable_progress_filter;
-  int screen_columns;
-  int screen_lines;
+  unsigned int screen_columns;
+  unsigned int screen_lines;
+  byte *show_subpackets;
+  int rfc2440_text;
+
+  /* If true, let write failures on the status-fd exit the process. */
+  int exit_on_status_write_error;
+
+  /* If > 0, limit the number of card insertion prompts to this
+     value. */
+  int limit_card_insert_tries; 
 
 #ifdef ENABLE_CARD_SUPPORT
   const char *ctapi_driver; /* Library to access the ctAPI. */
@@ -201,8 +215,22 @@ struct
   int disable_ccid;    /* Disable the use of the internal CCID driver. */
 #endif /*ENABLE_CARD_SUPPORT*/
 
+  /* If set, require an 0x19 backsig to be present on signatures made
+     by signing subkeys.  If not set, a missing backsig is not an
+     error (but an invalid backsig still is). */
+  int require_backsigs;
+
 } opt;
 
+/* CTRL is used to keep some global variables we currently can't
+   avoid.  Future concurrent versions of gpg will put it into a per
+   request structure CTRL. */
+EXTERN_UNLESS_MAIN_MODULE
+struct {
+  int in_auto_key_retrieve; /* True if we are doing an
+                               auto_key_retrieve. */
+} glo_ctrl;
+
 #define DBG_PACKET_VALUE  1    /* debug packet reading/writing */
 #define DBG_MPI_VALUE    2     /* debug mpi details */
 #define DBG_CIPHER_VALUE  4    /* debug cipher handling */
@@ -215,7 +243,7 @@ struct
 #define DBG_TRUST_VALUE   256  /* debug the trustdb */
 #define DBG_HASHING_VALUE 512  /* debug hashing operations */
 #define DBG_EXTPROG_VALUE 1024  /* debug external program calls */
-#define DBG_CARD_IO_VALUE 2048
+#define DBG_CARD_IO_VALUE 2048  /* debug smart card I/O.  */
 
 #define DBG_PACKET (opt.debug & DBG_PACKET_VALUE)
 #define DBG_FILTER (opt.debug & DBG_FILTER_VALUE)
@@ -234,33 +262,56 @@ struct
 #define PGP7    (opt.compliance==CO_PGP7)
 #define PGP8    (opt.compliance==CO_PGP8)
 
-/* Various option flags */
+/* Various option flags.  Note that there should be no common string
+   names between the IMPORT_ and EXPORT_ flags as they can be mixed in
+   the keyserver-options option. */
 
-#define IMPORT_ALLOW_LOCAL_SIGS          (1<<0)
+#define IMPORT_LOCAL_SIGS                (1<<0)
 #define IMPORT_REPAIR_PKS_SUBKEY_BUG     (1<<1)
-#define IMPORT_FAST_IMPORT               (1<<2)
+#define IMPORT_FAST                      (1<<2)
 #define IMPORT_SK2PK                     (1<<3)
 #define IMPORT_MERGE_ONLY                (1<<4)
+#define IMPORT_MINIMAL                   (1<<5)
+#define IMPORT_CLEAN                     (1<<6)
 
-#define EXPORT_INCLUDE_LOCAL_SIGS        (1<<0)
-#define EXPORT_INCLUDE_ATTRIBUTES        (1<<1)
-#define EXPORT_INCLUDE_SENSITIVE_REVKEYS (1<<2)
+#define EXPORT_LOCAL_SIGS                (1<<0)
+#define EXPORT_ATTRIBUTES                (1<<1)
+#define EXPORT_SENSITIVE_REVKEYS         (1<<2)
+#define EXPORT_RESET_SUBKEY_PASSWD       (1<<3)
+#define EXPORT_MINIMAL                   (1<<4)
+#define EXPORT_CLEAN                     (1<<5)
 
 #define LIST_SHOW_PHOTOS                 (1<<0)
 #define LIST_SHOW_POLICY_URLS            (1<<1)
-#define LIST_SHOW_NOTATIONS              (1<<2)
-#define LIST_SHOW_KEYSERVER_URLS         (1<<3)
-#define LIST_SHOW_VALIDITY               (1<<4)
-#define LIST_SHOW_UNUSABLE_UIDS          (1<<5)
-#define LIST_SHOW_UNUSABLE_SUBKEYS       (1<<6)
-#define LIST_SHOW_KEYRING                (1<<7)
-#define LIST_SHOW_SIG_EXPIRE             (1<<8)
+#define LIST_SHOW_STD_NOTATIONS          (1<<2)
+#define LIST_SHOW_USER_NOTATIONS         (1<<3)
+#define LIST_SHOW_NOTATIONS (LIST_SHOW_STD_NOTATIONS|LIST_SHOW_USER_NOTATIONS)
+#define LIST_SHOW_KEYSERVER_URLS         (1<<4)
+#define LIST_SHOW_UID_VALIDITY           (1<<5)
+#define LIST_SHOW_UNUSABLE_UIDS          (1<<6)
+#define LIST_SHOW_UNUSABLE_SUBKEYS       (1<<7)
+#define LIST_SHOW_KEYRING                (1<<8)
+#define LIST_SHOW_SIG_EXPIRE             (1<<9)
+#define LIST_SHOW_SIG_SUBPACKETS         (1<<10)
 
 #define VERIFY_SHOW_PHOTOS               (1<<0)
 #define VERIFY_SHOW_POLICY_URLS          (1<<1)
-#define VERIFY_SHOW_NOTATIONS            (1<<2)
-#define VERIFY_SHOW_KEYSERVER_URLS       (1<<3)
-#define VERIFY_SHOW_VALIDITY             (1<<4)
-#define VERIFY_SHOW_UNUSABLE_UIDS        (1<<5)
+#define VERIFY_SHOW_STD_NOTATIONS        (1<<2)
+#define VERIFY_SHOW_USER_NOTATIONS       (1<<3)
+#define VERIFY_SHOW_NOTATIONS (VERIFY_SHOW_STD_NOTATIONS|VERIFY_SHOW_USER_NOTATIONS)
+#define VERIFY_SHOW_KEYSERVER_URLS       (1<<4)
+#define VERIFY_SHOW_UID_VALIDITY         (1<<5)
+#define VERIFY_SHOW_UNUSABLE_UIDS        (1<<6)
+
+#define KEYSERVER_INCLUDE_REVOKED        (1<<0)
+#define KEYSERVER_INCLUDE_SUBKEYS        (1<<1)
+#define KEYSERVER_USE_TEMP_FILES         (1<<2)
+#define KEYSERVER_KEEP_TEMP_FILES        (1<<3)
+#define KEYSERVER_ADD_FAKE_V3            (1<<4)
+#define KEYSERVER_AUTO_KEY_RETRIEVE      (1<<5)
+#define KEYSERVER_TRY_DNS_SRV            (1<<6)
+#define KEYSERVER_HONOR_KEYSERVER_URL    (1<<7)
+#define KEYSERVER_AUTO_PKA_RETRIEVE      (1<<8)
+#define KEYSERVER_AUTO_CERT_RETRIEVE     (1<<9)
 
 #endif /*G10_OPTIONS_H*/