9917a4a616ef5e10d45caa5ff2acd0842dd2da49
[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     enum {TM_OPENPGP, TM_CLASSIC, TM_ALWAYS} trust_model;
92     unsigned int force_ownertrust;
93     int pgp2;
94     int pgp6;
95     int pgp7;
96     int pgp8;
97     int rfc1991;
98     int rfc2440;
99     int pgp2_workarounds;
100     unsigned int emulate_bugs; /* bug emulation flags EMUBUG_xxxx */
101     int shm_coprocess;
102     const char *set_filename;
103     const char *comment_string;
104     int throw_keyid;
105     int show_photos;
106     const char *photo_viewer;
107     int s2k_mode;
108     int s2k_digest_algo;
109     int s2k_cipher_algo;
110     int simple_sk_checksum; /* create the deprecated rfc2440 secret
111                                key protection*/
112     int not_dash_escaped;
113     int escape_from;
114     int lock_once;
115     char *keyserver_uri;
116     char *keyserver_scheme;
117     char *keyserver_host;
118     char *keyserver_port;
119     char *keyserver_opaque;
120     struct
121     {
122       int verbose;
123       int include_revoked;
124       int include_disabled;
125       int include_subkeys;
126       int honor_http_proxy;
127       int broken_http_proxy;
128       int use_temp_files;
129       int keep_temp_files;
130       int fake_v3_keyids;
131       int auto_key_retrieve;
132       unsigned int import_options;
133       unsigned int export_options;
134       STRLIST other;
135     } keyserver_options;
136     int exec_disable;
137     int exec_path_set;
138     unsigned int import_options;
139     unsigned int export_options;
140     char *def_preference_list;
141     prefitem_t *personal_cipher_prefs;
142     prefitem_t *personal_digest_prefs;
143     prefitem_t *personal_compress_prefs;
144     int no_perm_warn;
145     int no_mdc_warn;
146     char *temp_dir;
147     int no_encrypt_to;
148     int interactive;
149     STRLIST sig_notation_data;
150     STRLIST cert_notation_data;
151     int show_notation;
152     STRLIST sig_policy_url;
153     STRLIST cert_policy_url;
154     int show_policy_url;
155     int use_embedded_filename;
156     int allow_non_selfsigned_uid;
157     int allow_freeform_uid;
158     int no_literal;
159     ulong set_filesize;
160     int fast_list_mode;
161     int fixed_list_mode;
162     int ignore_time_conflict;
163     int ignore_valid_from;
164     int ignore_crc_error;
165     int ignore_mdc_error;
166     int command_fd;
167     const char *override_session_key;
168     int show_session_key;
169     int use_agent;
170     const char *gpg_agent_info;
171     int merge_only;
172     int try_all_secrets;
173     int no_expensive_trust_checks;
174     int no_sig_cache;
175     int no_sig_create_check;
176     int no_auto_check_trustdb;
177     int preserve_permissions;
178     int no_homedir_creation;
179     int show_keyring;
180     struct groupitem *grouplist;
181     int strict;
182 } opt;
183
184
185 #define EMUBUG_MDENCODE   4
186
187 #define DBG_PACKET_VALUE  1     /* debug packet reading/writing */
188 #define DBG_MPI_VALUE     2     /* debug mpi details */
189 #define DBG_CIPHER_VALUE  4     /* debug cipher handling */
190                                 /* (may reveal sensitive data) */
191 #define DBG_FILTER_VALUE  8     /* debug internal filter handling */
192 #define DBG_IOBUF_VALUE   16    /* debug iobuf stuff */
193 #define DBG_MEMORY_VALUE  32    /* debug memory allocation stuff */
194 #define DBG_CACHE_VALUE   64    /* debug the cacheing */
195 #define DBG_MEMSTAT_VALUE 128   /* show memory statistics */
196 #define DBG_TRUST_VALUE   256   /* debug the trustdb */
197 #define DBG_HASHING_VALUE 512   /* debug hashing operations */
198 #define DBG_EXTPROG_VALUE 1024  /* debug external program calls */
199
200
201 #define DBG_PACKET (opt.debug & DBG_PACKET_VALUE)
202 #define DBG_FILTER (opt.debug & DBG_FILTER_VALUE)
203 #define DBG_CACHE  (opt.debug & DBG_CACHE_VALUE)
204 #define DBG_TRUST  (opt.debug & DBG_TRUST_VALUE)
205 #define DBG_HASHING (opt.debug & DBG_HASHING_VALUE)
206 #define DBG_EXTPROG (opt.debug & DBG_EXTPROG_VALUE)
207
208
209 #endif /*G10_OPTIONS_H*/