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

Annotation of /trunk/Include/wptGPG.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 329 - (hide annotations)
Fri Sep 25 16:08:14 2009 UTC (15 years, 5 months ago) by twoaday
File MIME type: text/plain
File size: 9010 byte(s)


1 werner 37 /* wptGPG.h - GnuPG interface
2 twoaday 329 * Copyright (C) 2000-2007, 2009 Timo Schulz
3 werner 37 *
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     #ifndef WPT_GPG_H
17     #define WPT_GPG_H
18    
19 twoaday 121 #include <gpgme.h>
20 werner 37 #include "wptKeyCache.h"
21     #include "wptNLS.h"
22    
23    
24     #define NO_STRICT 0
25    
26 twoaday 254 /* Macro to indicate if a key is useable or not. */
27 twoaday 179 #define key_is_useable(key) (!(key)->revoked && \
28     !(key)->expired && \
29     !(key)->disabled)
30 werner 37
31     enum setup_t {
32     SETUP_KEYGEN = 1,
33     SETUP_IMPORT = 2,
34 twoaday 260 SETUP_EXISTING = 3,
35     SETUP_CARDGEN = 4
36 werner 37 };
37    
38     enum gpg_cmd_t {
39     GPG_CMD_DECRYPT = 0,
40     GPG_CMD_SIGN = 1
41     };
42    
43     enum keycache_t {
44     KEYCACHE_PRV = 0,
45     KEYCACHE_PUB = 1
46     };
47    
48    
49     struct gpg_card_s;
50 twoaday 179 typedef struct gpg_card_s *gpg_card_t;
51 werner 37
52     /* Keycache refresh context. */
53     struct refresh_cache_s {
54 twoaday 273 int kring_update; /* update the keyring cache. */
55     int sig_update; /* update the signature cache. */
56 werner 37 };
57    
58    
59 twoaday 254 /* Structure for the passphrase callback. */
60 werner 37 struct passphrase_cb_s {
61     int gpg_cmd; /* sign or decrypt. */
62     int pwd_init; /* 1 = passphrase request via dialog. */
63     char *pwd; /* actual passphrase. */
64     char info[1024]; /* hold up the info message */
65     char *title; /* dialog title. */
66     char keyid[16+1]; /* keyid of the secret key the pwd can be used for. */
67     HWND hwnd; /* handle of the dialog window. */
68     int cancel; /* 1 = user cancelled passphrase request. */
69     unsigned int is_card:1; /* 1 = key stored on a smart card. */
70     unsigned int bad_pwd:1; /* 1 = last passphrase was bad. */
71     gpgme_ctx_t gpg;
72     gpgme_recipient_t recipients;
73     struct {
74     int sym_algo;
75     int s2k_mode;
76     int s2k_hash;
77     } sym;
78     };
79    
80    
81     /* This variable is 1 if IDEA is available. */
82     extern int idea_available;
83    
84     /*-- wptGPG.cpp --*/
85 twoaday 254 char* get_gnupg_default_key (void);
86     int set_gnupg_default_key (const char *key);
87 werner 37 char* get_gnupg_config (void);
88     int check_gnupg_config (const char *fname, int *secrings, int *pubrings);
89 twoaday 260 char* get_gnupg_path (void);
90     int check_gnupg_prog (void);
91 werner 37 int gnupg_access_files (void);
92 twoaday 260 char* get_gnupg_prog (void);
93 werner 37 char* get_gnupg_keyring (int pub, int strict);
94     char* get_gnupg_cfgfile (void);
95     int set_gnupg_options( const char *buf, size_t buflen );
96 twoaday 39 int gnupg_load_config (void);
97 twoaday 128 char* multi_gnupg_path (int strict);
98 werner 37
99 twoaday 254 int check_gnupg_options (const char *buf, int showerr);
100 werner 37 void init_gnupg_table (void);
101     void free_gnupg_table (void);
102     int keyring_check_last_access (void);
103     const char* gnupg_check_file_ext (const char *fname, int *r_type);
104     int gpg_check_permissions (int showmsg);
105 twoaday 295 int gpg_check_file_permissions (const char *fname);
106 werner 37 int gnupg_check_homedir (void);
107     int gnupg_access_keyring (int _pub);
108     void gnupg_backup_options ();
109 twoaday 229 void gnupg_backup_keyrings (int auto_backup, int backup_mode,
110 twoaday 222 int include_secr);
111 werner 37 int gnupg_copy_keyrings (void);
112 twoaday 137 int check_gnupg_engine (const char *need_gpg_ver,
113     int *r_major, int *r_minor, int *r_patch);
114 werner 37
115     /*-- wptGPGME.cpp --*/
116     const char * get_signature_status( gpgme_sigsum_t sigstat );
117    
118 twoaday 211 gpgme_error_t get_pubkey (const char *keyid, gpgme_key_t *ret_key);
119     gpgme_error_t winpt_get_pubkey (const char *keyid, struct winpt_key_s *k);
120 twoaday 217 void winpt_release_pubkey (winpt_key_s *k);
121 twoaday 211 gpgme_error_t get_seckey (const char *keyid, gpgme_key_t *ret_skey);
122     gpgme_error_t winpt_get_seckey (const char *keyid, struct winpt_key_s *k);
123 werner 37
124     void keycache_release (int cleanup);
125     gpgme_error_t keycache_update (int is_sec, const char *keyid);
126 twoaday 151 gpgme_error_t keycache_init (const char *pubring, const char * secring);
127     gpg_keycache_t keycache_get_ctx (int _pub);
128 werner 37
129 twoaday 226 gpgme_error_t gpg_clip_sym_encrypt (void);
130 twoaday 109 const char *get_gpg_sigstat (gpgme_sigsum_t sum);
131 twoaday 175 int check_ultimate_trusted_key (void);
132 twoaday 214 bool secret_key_available (void);
133 werner 37
134     /*-- wptGPGParser.cpp --*/
135 twoaday 254 enum entry_t {
136     ENTRY_OPAQUE = 1,
137     ENTRY_SINGLE = 2,
138     ENTRY_MULTI = 3,
139     ENTRY_GROUP = 4,
140     };
141    
142 twoaday 271 struct conf_option_s {
143     struct conf_option_s *next;
144 twoaday 254 char *name;
145     char *val;
146     unsigned int used:1;
147     int type;
148     };
149 twoaday 271 typedef struct conf_option_s *conf_option_t;
150 twoaday 254
151 twoaday 271 struct conf_member_s {
152 twoaday 273 struct conf_member_s * next;
153 twoaday 254 char *name;
154     unsigned int used:1;
155     };
156 twoaday 271 typedef struct conf_member_s *conf_member_t;
157 twoaday 254
158 twoaday 271 struct conf_group_s {
159     struct conf_group_s *next;
160     struct conf_member_s *list;
161 twoaday 254 char *name;
162     unsigned int used:1;
163     };
164 twoaday 271 typedef struct conf_group_s *conf_group_t;
165 twoaday 254
166 twoaday 271 struct conf_file_s {
167 twoaday 273 conf_option_t list;
168     conf_group_t grp;
169 twoaday 254 };
170 twoaday 271 typedef struct conf_file_s *config_file_t;
171 twoaday 254
172 twoaday 273 /* find/delete/add */
173     conf_group_t conf_find_group (config_file_t opt, const char *str);
174     conf_option_t conf_find_option (config_file_t opt, const char *str);
175     conf_member_t conf_find_member (config_file_t opt,
176     const char *grp, const char *str);
177     int conf_delete_group (config_file_t opt, const char *str);
178     int conf_delete_member (config_file_t opt, const char *grp, const char *str);
179     int conf_delete_option (config_file_t opt, const char *str);
180     int conf_modify_entry (config_file_t opt, int type, const char *name, const char *val);
181     int conf_add_entry (config_file_t opt, int type, const char *name, const char *val);
182 twoaday 271 int conf_add_entry_int (config_file_t opt, int type, const char *name, int val);
183 twoaday 273 int conf_add_member (config_file_t opt, const char *grp, const char *str);
184     int conf_add_group (config_file_t opt, const char *str);
185 werner 37 /* high-level */
186 twoaday 270 void new_config (config_file_t *r_opt);
187     int parse_config (const char *file, config_file_t *r_opt);
188     int commit_config (const char *file, config_file_t opt);
189     void release_config (config_file_t opt);
190 twoaday 273 void release_group (conf_group_t grp);
191 werner 37
192     /*-- wptPassphraseCB.cpp --*/
193     enum passdlg_t {
194 twoaday 273 PASSDLG_REPEAT = 0, /* indicate the dialig is in the 'repeat passwd' state. */
195     PASSDLG_INIT = 1,
196 twoaday 182 PASSDLG_STRICT = 2,
197 twoaday 229 PASSDLG_NOTEMPTY= 4,
198     PASSDLG_WARN_UTF8=8,
199 werner 37 };
200    
201     void set_gpg_passphrase_cb (passphrase_cb_s *cb, gpgme_ctx_t ctx,
202     int cmd, HWND hwnd, const char *title);
203     void release_gpg_passphrase_cb (passphrase_cb_s *cb);
204 twoaday 214 void release_gpg_recipients (gpgme_recipient_t *recipients);
205 werner 37
206 twoaday 225 char *request_passphrase (const char *title, int flags, int *ret_cancel);
207     char *request_passphrase2 (const char *title, int flags, int *ret_cancel);
208 twoaday 229 char *request_key_passphrase (gpgme_key_t key, const char *title,
209 twoaday 225 int *ret_cancel);
210 twoaday 329 //const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);
211 werner 37 char * get_key_userid (const char *keyid);
212     int check_passwd_quality (const char *pass, int strict);
213    
214 twoaday 121 /*-- wptClipboard.cpp --*/
215     gpgme_error_t gpg_clip_istext_avail (int *r_val);
216     gpgme_error_t gpg_clip_is_secured (int *r_type, int *r_val);
217     gpgme_error_t gpg_clip_get_pgptype (int *r_type);
218     gpgme_error_t gpg_clip_parse_pgpid (const char *data, int *r_type);
219    
220 twoaday 329 gpgme_error_t gpg_data_utf8_new_from_clipboard (gpgme_data_t *r_dh,
221     int wraplen, int *r_is_utf8);
222     gpgme_error_t gpg_data_new_from_clipboard (gpgme_data_t *r_dh,
223     int wraplen);
224    
225     gpgme_error_t gpg_data_release_utf8_to_clipboard (gpgme_data_t dh);
226     gpgme_error_t gpg_data_release_to_clipboard (gpgme_data_t dh, int chg_ver);
227    
228    
229 twoaday 121 /* wptGPGMEData.cpp --*/
230 twoaday 329
231 twoaday 121 size_t gpg_data_readline (gpgme_data_t dh, char *line, size_t nbytes);
232    
233     gpgme_error_t gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname);
234     gpgme_error_t gpg_data_mail_quote (gpgme_data_t *r_dh);
235     gpgme_error_t gpg_data_extract_plaintext (gpgme_data_t sig, gpgme_data_t *r_plain);
236 twoaday 143 void gpg_data_putc (gpgme_data_t hd, int c);
237 twoaday 121
238 werner 37 /*-- wptGPGUtil.cpp --*/
239     gpgme_error_t gpg_rebuild_cache (char **r_inf);
240     gpgme_error_t gpg_get_version (char **r_inf);
241     void gpg_set_debug_mode (int val);
242     gpgme_error_t gpg_export_seckey (const char *keyid, const char *outfile);
243 twoaday 39 gpgme_error_t gpg_manage_ownertrust (char **data, int do_export);
244 twoaday 133 gpgme_error_t gpg_get_photoid_data (const char *keyid, char **r_status_data,
245     unsigned char **r_data,
246     unsigned long *ndata);
247 twoaday 208 gpgme_error_t gpg_revoke_cert (int desig_revoke, const char *inp_data,
248     const char *keyid, char **r_revcert);
249 werner 37 gpgme_error_t gpg_decode_c_string (const char *src, char **destp, size_t len);
250     gpgme_error_t gpg_import_key_list (const char *fname, char **r_out);
251 twoaday 175 gpgme_error_t gpg_extract_keys (const char *keyfile, const char **keys, DWORD nkeys,
252     char **new_keyfile);
253 werner 37 gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);
254 twoaday 179 gpgme_error_t gpg_get_recipients (const char *file, gpgme_recipient_t *r_list);
255 twoaday 182 gpgme_error_t gpg_find_key_subpacket (const char *key, int subpktid,
256     char **value);
257 twoaday 273 int gpg_check_return_code (const char *args);
258 werner 37
259     #endif /* WPT_GPG_H */

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26