74cebe575b173120d266dfc20e6ee88f0f6e66cb
[gnupg.git] / g10 / options.h
1 /* options.h
2  * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * GnuPG is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * GnuPG is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19  */
20 #ifndef G10_OPTIONS_H
21 #define G10_OPTIONS_H
22
23 #include <types.h>
24 #include "main.h"
25 #include "packet.h"
26
27 #undef ENABLE_COMMENT_PACKETS  /* don't create comment packets */
28
29 #ifndef EXTERN_UNLESS_MAIN_MODULE
30 /* Norcraft can't cope with common symbols */
31  #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
32   #define EXTERN_UNLESS_MAIN_MODULE extern
33  #else
34   #define EXTERN_UNLESS_MAIN_MODULE 
35  #endif
36 #endif
37
38 EXTERN_UNLESS_MAIN_MODULE
39 struct {
40     int verbose;
41     int quiet;
42     unsigned debug;
43     int armor;
44     int compress;
45     char *outfile;
46     int dry_run;
47     int list_only;
48     int textmode;
49     int expert;
50     int ask_sig_expire;
51     int ask_cert_expire;
52     int batch;      /* run in batch mode */
53     int answer_yes; /* answer yes on most questions */
54     int answer_no;  /* answer no on most questions */
55     int check_sigs; /* check key signatures */
56     int with_colons;
57     int with_key_data;
58     int with_fingerprint; /* opt --with-fingerprint active */
59     int fingerprint; /* list fingerprints */
60     int list_sigs;   /* list signatures */
61     int no_armor;
62     int list_packets; /* list-packets mode: 1=normal, 2=invoked by command*/
63     int def_cipher_algo;
64     int force_v3_sigs;
65     int force_v4_certs;
66     int force_mdc;
67     int disable_mdc;
68     int def_digest_algo;
69     int cert_digest_algo;
70     int def_compress_algo;
71     const char *def_secret_key;
72     char *def_recipient;
73     int def_recipient_self;
74     int def_cert_check_level;
75     int sk_comments;
76     int no_version;
77     int marginals_needed;
78     int completes_needed;
79     int max_cert_depth;
80     const char *homedir;
81
82     char *display;      /* 5 options to be passed to the gpg-agent */
83     char *ttyname;     
84     char *ttytype;
85     char *lc_ctype;
86     char *lc_messages;
87
88     int skip_verify;
89     int compress_keys;
90     int compress_sigs;
91     int always_trust;
92     int pgp2;
93     int pgp6;
94     int pgp7; /* if we get any more of these, it's time to look at a
95                  special emulate_pgp variable... */
96     int rfc1991;
97     int rfc2440;
98     int pgp2_workarounds;
99     unsigned int emulate_bugs; /* bug emulation flags EMUBUG_xxxx */
100     int shm_coprocess;
101     const char *set_filename;
102     const char *comment_string;
103     int throw_keyid;
104     int show_photos;
105     const char *photo_viewer;
106     int s2k_mode;
107     int s2k_digest_algo;
108     int s2k_cipher_algo;
109     int simple_sk_checksum; /* create the deprecated rfc2440 secret
110                                key protection*/
111     int not_dash_escaped;
112     int escape_from;
113     int lock_once;
114     char *keyserver_scheme;
115     char *keyserver_host;
116     char *keyserver_port;
117     struct
118     {
119       int verbose;
120       int include_revoked;
121       int include_disabled;
122       int include_subkeys;
123       int honor_http_proxy;
124       int broken_http_proxy;
125       int use_temp_files;
126       int keep_temp_files;
127       int fake_v3_keyids;
128       int auto_key_retrieve;
129       STRLIST other;
130     } keyserver_options;
131     int exec_disable;
132     char *def_preference_list;
133     prefitem_t *personal_cipher_prefs,
134                *personal_digest_prefs,
135                *personal_compress_prefs;
136     int no_perm_warn;
137     char *temp_dir;
138     int no_encrypt_to;
139     int interactive;
140     STRLIST sig_notation_data;
141     STRLIST cert_notation_data;
142     int show_notation;
143     STRLIST sig_policy_url;
144     STRLIST cert_policy_url;
145     int show_policy_url;
146     int use_embedded_filename;
147     int allow_non_selfsigned_uid;
148     int allow_freeform_uid;
149     int no_literal;
150     ulong set_filesize;
151     int fast_list_mode;
152     int fixed_list_mode;
153     int ignore_time_conflict;
154     int ignore_valid_from;
155     int ignore_crc_error;
156     int command_fd;
157     const char *override_session_key;
158     int show_session_key;
159     int use_agent;
160     const char *gpg_agent_info;
161     int merge_only;
162     int try_all_secrets;
163     int no_expensive_trust_checks;
164     int no_sig_cache;
165     int no_sig_create_check;
166     int no_auto_check_trustdb;
167     int preserve_permissions;
168     int no_homedir_creation;
169     int show_keyring;
170     struct groupitem *grouplist;
171 } opt;
172
173
174 #define EMUBUG_GPGCHKSUM  1
175 #define EMUBUG_3DESS2K    2
176 #define EMUBUG_MDENCODE   4
177
178 #define DBG_PACKET_VALUE  1     /* debug packet reading/writing */
179 #define DBG_MPI_VALUE     2     /* debug mpi details */
180 #define DBG_CIPHER_VALUE  4     /* debug cipher handling */
181                                 /* (may reveal sensitive data) */
182 #define DBG_FILTER_VALUE  8     /* debug internal filter handling */
183 #define DBG_IOBUF_VALUE   16    /* debug iobuf stuff */
184 #define DBG_MEMORY_VALUE  32    /* debug memory allocation stuff */
185 #define DBG_CACHE_VALUE   64    /* debug the cacheing */
186 #define DBG_MEMSTAT_VALUE 128   /* show memory statistics */
187 #define DBG_TRUST_VALUE   256   /* debug the trustdb */
188 #define DBG_HASHING_VALUE 512   /* debug hashing operations */
189 #define DBG_EXTPROG_VALUE 1024  /* debug external program calls */
190
191
192 #define DBG_PACKET (opt.debug & DBG_PACKET_VALUE)
193 #define DBG_FILTER (opt.debug & DBG_FILTER_VALUE)
194 #define DBG_CACHE  (opt.debug & DBG_CACHE_VALUE)
195 #define DBG_TRUST  (opt.debug & DBG_TRUST_VALUE)
196 #define DBG_HASHING (opt.debug & DBG_HASHING_VALUE)
197 #define DBG_EXTPROG (opt.debug & DBG_EXTPROG_VALUE)
198
199
200 #endif /*G10_OPTIONS_H*/