/[winpt]/trunk/Include/wptGPG.h
ViewVC logotype

Annotation of /trunk/Include/wptGPG.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 137 - (hide annotations)
Mon Jan 9 14:01:51 2006 UTC (19 years, 1 month ago) by twoaday
File MIME type: text/plain
File size: 8237 byte(s)
2006-01-09  Timo Schulz  <ts@g10code.com>
 
        * WinPT.cpp (load_gettext): Remove file locking.
        (WinMain): Use pre-defined autoconf constants.
        * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
        * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
        Change all callers.

Remove all static version constants. The only place for
constants is now configure.c (config.h).


1 werner 37 /* wptGPG.h - GnuPG interface
2     * Copyright (C) 2000-2005 Timo Schulz
3     *
4     * This file is part of WinPT.
5     *
6     * WinPT is free software; you can redistribute it and/or
7     * modify it under the terms of the GNU General Public License
8     * as published by the Free Software Foundation; either version 2
9     * of the License, or (at your option) any later version.
10     *
11     * WinPT 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 GNU
14     * General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with WinPT; if not, write to the Free Software Foundation,
18     * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19     */
20    
21     #ifndef WPT_GPG_H
22     #define WPT_GPG_H
23    
24 twoaday 121 #include <gpgme.h>
25 werner 37 #include "wptKeyCache.h"
26     #include "wptNLS.h"
27    
28    
29     #define NO_STRICT 0
30    
31     #define key_is_useable(key) (!(key)->revoked && !(key)->expired && !(key)->disabled)
32    
33     enum setup_t {
34     SETUP_KEYGEN = 1,
35     SETUP_IMPORT = 2,
36     SETUP_EXISTING = 3
37     };
38    
39     enum gpg_cmd_t {
40     GPG_CMD_DECRYPT = 0,
41     GPG_CMD_SIGN = 1
42     };
43    
44     enum keycache_t {
45     KEYCACHE_PRV = 0,
46     KEYCACHE_PUB = 1
47     };
48    
49     enum entry_t {
50     ENTRY_OPAQUE = 1,
51     ENTRY_SINGLE = 2,
52     ENTRY_MULTI = 3,
53     ENTRY_GROUP = 4,
54     };
55    
56     struct gpg_card_s;
57     typedef struct gpg_card_s * gpg_card_t;
58    
59     /* GPG file association context. */
60     struct gpg_filetype {
61     const char *descr;
62     const char *ext;
63     int nicon;
64     };
65    
66     /* Keycache refresh context. */
67     struct refresh_cache_s {
68     int kr_reload;
69     int kr_update;
70     int tr_update;
71     };
72    
73     struct gpg_option_s {
74 twoaday 121 struct gpg_option_s *next;
75     char *name;
76     char *val;
77 werner 37 unsigned int used:1;
78     int type;
79     };
80 twoaday 121 typedef struct gpg_option_s *gpg_option_t;
81 werner 37
82     struct gpg_member_s {
83     struct gpg_member_s * next;
84 twoaday 121 char *name;
85 werner 37 unsigned int used:1;
86     };
87 twoaday 121 typedef struct gpg_member_s *gpg_member_t;
88 werner 37
89     struct gpg_group_s {
90 twoaday 121 struct gpg_group_s *next;
91     struct gpg_member_s *list;
92     char *name;
93 werner 37 unsigned int used:1;
94     };
95 twoaday 121 typedef struct gpg_group_s *gpg_group_t;
96 werner 37
97     struct gpg_optfile_s {
98 twoaday 121 struct gpg_option_s *list;
99     struct gpg_group_s *grp;
100 werner 37 };
101 twoaday 121 typedef struct gpg_optfile_s *gpg_optfile_t;
102 werner 37
103 twoaday 109
104 werner 37 struct passphrase_cb_s {
105     int gpg_cmd; /* sign or decrypt. */
106     int pwd_init; /* 1 = passphrase request via dialog. */
107     char *pwd; /* actual passphrase. */
108     char info[1024]; /* hold up the info message */
109     char *title; /* dialog title. */
110     char keyid[16+1]; /* keyid of the secret key the pwd can be used for. */
111     HWND hwnd; /* handle of the dialog window. */
112     int cancel; /* 1 = user cancelled passphrase request. */
113     unsigned int is_card:1; /* 1 = key stored on a smart card. */
114     unsigned int bad_pwd:1; /* 1 = last passphrase was bad. */
115     gpgme_ctx_t gpg;
116     gpgme_recipient_t recipients;
117     struct {
118     int sym_algo;
119     int s2k_mode;
120     int s2k_hash;
121     } sym;
122     };
123    
124    
125     /* This variable is 1 if IDEA is available. */
126     extern int idea_available;
127    
128     /*-- wptGPG.cpp --*/
129     char* get_gnupg_default_key( void );
130     int set_gnupg_default_key( const char *key );
131     char* get_gnupg_config (void);
132     char* get_gnupg_keyring_from_options( const char *fname, int pub );
133     int check_gnupg_config (const char *fname, int *secrings, int *pubrings);
134     char* get_gnupg_path( void );
135     int check_gnupg_prog( void );
136     int gnupg_access_files (void);
137     char* get_gnupg_prog( void );
138     char* get_gnupg_keyring (int pub, int strict);
139     char* get_gnupg_cfgfile (void);
140     int set_gnupg_options( const char *buf, size_t buflen );
141 twoaday 39 int gnupg_load_config (void);
142 twoaday 128 char* multi_gnupg_path (int strict);
143 werner 37
144     int check_gnupg_options (const char *buf);
145     void init_gnupg_table (void);
146     void free_gnupg_table (void);
147     int keyring_check_last_access (void);
148     const char* gnupg_check_file_ext (const char *fname, int *r_type);
149     int gpg_check_permissions (int showmsg);
150     int gnupg_check_homedir (void);
151     int gnupg_access_keyring (int _pub);
152     void gnupg_backup_options ();
153     void gnupg_backup_keyrings (void);
154     void gnupg_display_error (void);
155     int gnupg_copy_keyrings (void);
156 twoaday 137 int check_gnupg_engine (const char *need_gpg_ver,
157     int *r_major, int *r_minor, int *r_patch);
158 werner 37
159     /*-- wptGPGME.cpp --*/
160     const char * get_signature_status( gpgme_sigsum_t sigstat );
161     void keycache_reload( HWND dlg );
162    
163     int get_pubkey (const char *keyid, gpgme_key_t *ret_key);
164     int winpt_get_pubkey (const char *keyid, struct winpt_key_s *k);
165     int get_seckey (const char *keyid, gpgme_key_t *ret_skey);
166     int winpt_get_seckey (const char *keyid, struct winpt_key_s *k);
167    
168     void keycache_reload( HWND dlg );
169     void keycache_release (int cleanup);
170     gpgme_error_t keycache_update (int is_sec, const char *keyid);
171     gpgme_error_t keycache_init( const char *pubring, const char * secring );
172     void keycache_set_reload( int yes );
173     int keycache_get_reload( void );
174     gpg_keycache_t keycache_get_ctx( int _pub );
175    
176     int count_insecure_elgkeys (void);
177    
178     int gpg_encrypt_symmetric (void);
179 twoaday 109 const char *get_gpg_sigstat (gpgme_sigsum_t sum);
180 werner 37
181     /*-- wptGPGParser.cpp --*/
182     /* find */
183     gpg_group_t find_group( gpg_optfile_t opt, const char *str );
184     gpg_option_t find_option( gpg_optfile_t opt, const char *str );
185     gpg_member_t find_member( gpg_optfile_t opt, const char *grp, const char *str );
186     /* delete */
187     int delete_group( gpg_optfile_t opt, const char *str );
188     int delete_member( gpg_optfile_t opt, const char *grp, const char *str );
189     int delete_option( gpg_optfile_t opt, const char *str );
190     /* add */
191     int modify_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
192     int add_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
193     int add_member( gpg_optfile_t opt, const char *grp, const char *str );
194     int add_group( gpg_optfile_t opt, const char *str );
195     /* high-level */
196     int parse_gpg_options( const char *file, gpg_optfile_t *r_opt );
197     int commit_gpg_options( const char *file, gpg_optfile_t opt );
198     void release_gpg_options( gpg_optfile_t opt );
199     /* memory */
200     void release_group( gpg_group_t grp );
201    
202     /*-- wptPassphraseCB.cpp --*/
203     enum passdlg_t {
204     PASSDLG_REPEAT = 0,
205     PASSDLG_INIT = 1,
206     PASSDLG_STRICT = 2
207     };
208    
209     void set_gpg_passphrase_cb (passphrase_cb_s *cb, gpgme_ctx_t ctx,
210     int cmd, HWND hwnd, const char *title);
211     void release_gpg_passphrase_cb (passphrase_cb_s *cb);
212    
213     char * request_passphrase (const char *title, int flags, int *ret_cancel);
214     char * request_passphrase2 (const char *title, int flags, int *ret_cancel);
215     const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);
216     char * get_key_userid (const char *keyid);
217     int check_passwd_quality (const char *pass, int strict);
218    
219 twoaday 121 /*-- wptClipboard.cpp --*/
220     gpgme_error_t gpg_clip_istext_avail (int *r_val);
221     gpgme_error_t gpg_clip_is_secured (int *r_type, int *r_val);
222     gpgme_error_t gpg_clip_get_pgptype (int *r_type);
223     gpgme_error_t gpg_clip_parse_pgpid (const char *data, int *r_type);
224    
225     /* wptGPGMEData.cpp --*/
226     gpgme_error_t gpg_data_new_from_clipboard (gpgme_data_t *r_dh, int wraplen);
227     void gpg_data_release_and_set_clipboard (gpgme_data_t dh, int chg_ver);
228     size_t gpg_data_readline (gpgme_data_t dh, char *line, size_t nbytes);
229    
230     gpgme_error_t gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname);
231     gpgme_error_t gpg_data_mail_quote (gpgme_data_t *r_dh);
232     gpgme_error_t gpg_data_extract_plaintext (gpgme_data_t sig, gpgme_data_t *r_plain);
233    
234 werner 37 /*-- wptGPGUtil.cpp --*/
235     gpgme_error_t gpg_rebuild_cache (char **r_inf);
236     gpgme_error_t gpg_get_version (char **r_inf);
237     void gpg_set_debug_mode (int val);
238     gpgme_error_t gpg_export_seckey (const char *keyid, const char *outfile);
239 twoaday 39 gpgme_error_t gpg_manage_ownertrust (char **data, int do_export);
240 twoaday 133 gpgme_error_t gpg_get_photoid_data (const char *keyid, char **r_status_data,
241     unsigned char **r_data,
242     unsigned long *ndata);
243 twoaday 129 char* generate_revoke_input (int code, const char *cmt, const char *pass);
244     gpgme_error_t gpg_revoke_cert (const char *inp_data,
245     const char *keyid,
246     char **r_revcert);
247 werner 37 gpgme_error_t gpg_decode_c_string (const char *src, char **destp, size_t len);
248     gpgme_error_t gpg_import_key_list (const char *fname, char **r_out);
249     gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);
250    
251     #endif /* WPT_GPG_H */

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26