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

Diff of /trunk/Include/wptGPG.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 121 by twoaday, Mon Dec 12 11:19:56 2005 UTC revision 270 by twoaday, Sat Oct 21 18:08:57 2006 UTC
# Line 1  Line 1 
1  /* wptGPG.h - GnuPG interface  /* wptGPG.h - GnuPG interface
2   *      Copyright (C) 2000-2005 Timo Schulz   *      Copyright (C) 2000-2006 Timo Schulz
3   *   *
4   * This file is part of WinPT.   * This file is part of WinPT.
5   *   *
# Line 28  Line 28 
28    
29  #define NO_STRICT 0  #define NO_STRICT 0
30    
31  #define key_is_useable(key) (!(key)->revoked && !(key)->expired && !(key)->disabled)  /* Macro to indicate if a key is useable or not. */
32    #define key_is_useable(key) (!(key)->revoked && \
33                                 !(key)->expired && \
34                                 !(key)->disabled)
35    
36  enum setup_t {  enum setup_t {
37      SETUP_KEYGEN    = 1,      SETUP_KEYGEN    = 1,
38      SETUP_IMPORT    = 2,      SETUP_IMPORT    = 2,
39      SETUP_EXISTING  = 3      SETUP_EXISTING  = 3,
40        SETUP_CARDGEN   = 4
41  };  };
42    
43  enum gpg_cmd_t {  enum gpg_cmd_t {
# Line 46  enum keycache_t { Line 50  enum keycache_t {
50      KEYCACHE_PUB = 1      KEYCACHE_PUB = 1
51  };  };
52    
 enum entry_t {  
     ENTRY_OPAQUE = 1,  
     ENTRY_SINGLE = 2,  
     ENTRY_MULTI  = 3,  
     ENTRY_GROUP  = 4,  
 };  
53    
54  struct gpg_card_s;  struct gpg_card_s;
55  typedef struct gpg_card_s * gpg_card_t;  typedef struct gpg_card_s *gpg_card_t;
   
 /* GPG file association context. */  
 struct gpg_filetype {      
     const char *descr;  
     const char *ext;  
     int nicon;  
 };  
56    
57  /* Keycache refresh context. */  /* Keycache refresh context. */
58  struct refresh_cache_s {  struct refresh_cache_s {
# Line 70  struct refresh_cache_s { Line 61  struct refresh_cache_s {
61      int tr_update;      int tr_update;
62  };  };
63    
 struct gpg_option_s {  
     struct gpg_option_s *next;  
     char *name;  
     char *val;  
     unsigned int used:1;  
     int type;    
 };  
 typedef struct gpg_option_s *gpg_option_t;  
   
 struct gpg_member_s {  
     struct gpg_member_s * next;  
     char *name;  
     unsigned int used:1;    
 };  
 typedef struct gpg_member_s *gpg_member_t;  
   
 struct gpg_group_s {  
     struct gpg_group_s *next;  
     struct gpg_member_s *list;  
     char *name;  
     unsigned int used:1;    
 };  
 typedef struct gpg_group_s *gpg_group_t;  
   
 struct gpg_optfile_s {  
     struct gpg_option_s *list;  
     struct gpg_group_s *grp;  
 };  
 typedef struct gpg_optfile_s *gpg_optfile_t;  
   
64    
65    /* Structure for the passphrase callback. */
66  struct passphrase_cb_s {  struct passphrase_cb_s {
67      int gpg_cmd;        /* sign or decrypt. */      int gpg_cmd;        /* sign or decrypt. */
68      int pwd_init;       /* 1 = passphrase request via dialog. */      int pwd_init;       /* 1 = passphrase request via dialog. */
# Line 126  struct passphrase_cb_s { Line 88  struct passphrase_cb_s {
88  extern int idea_available;  extern int idea_available;
89    
90  /*-- wptGPG.cpp --*/  /*-- wptGPG.cpp --*/
91  char* get_gnupg_default_key( void );  char* get_gnupg_default_key (void);
92  int set_gnupg_default_key( const char *key );  int set_gnupg_default_key (const char *key);
93  char* get_gnupg_config (void);  char* get_gnupg_config (void);
94  char* get_gnupg_keyring_from_options( const char *fname, int pub );  char* get_gnupg_keyring_from_options (const char *fname, int pub);
95  int check_gnupg_config (const char *fname, int *secrings, int *pubrings);  int check_gnupg_config (const char *fname, int *secrings, int *pubrings);
96  char* get_gnupg_path( void );  char* get_gnupg_path (void);
97  int check_gnupg_prog( void );  int check_gnupg_prog (void);
98  int gnupg_access_files (void);  int gnupg_access_files (void);
99  char* get_gnupg_prog( void );  char* get_gnupg_prog (void);
100  char* get_gnupg_keyring (int pub, int strict);  char* get_gnupg_keyring (int pub, int strict);
101  char* get_gnupg_cfgfile (void);  char* get_gnupg_cfgfile (void);
102  int set_gnupg_options( const char *buf, size_t buflen );  int set_gnupg_options( const char *buf, size_t buflen );
103  int gnupg_load_config (void);  int gnupg_load_config (void);
104    char* multi_gnupg_path (int strict);
105    
106  int check_gnupg_options (const char *buf);  int check_gnupg_options (const char *buf, int showerr);
107  void init_gnupg_table (void);  void init_gnupg_table (void);
108  void free_gnupg_table (void);  void free_gnupg_table (void);
109  int keyring_check_last_access (void);  int keyring_check_last_access (void);
# Line 149  int gpg_check_permissions (int showmsg); Line 112  int gpg_check_permissions (int showmsg);
112  int gnupg_check_homedir (void);  int gnupg_check_homedir (void);
113  int gnupg_access_keyring (int _pub);  int gnupg_access_keyring (int _pub);
114  void gnupg_backup_options ();  void gnupg_backup_options ();
115  void gnupg_backup_keyrings (void);  void gnupg_backup_keyrings (int auto_backup, int backup_mode,
116  void gnupg_display_error (void);                              int include_secr);
117  int gnupg_copy_keyrings (void);  int gnupg_copy_keyrings (void);
118  int check_gnupg_engine (int *r_major, int *r_minor, int *r_patch);  int check_gnupg_engine (const char *need_gpg_ver,
119                            int *r_major, int *r_minor, int *r_patch);
120    
121  /*-- wptGPGME.cpp --*/  /*-- wptGPGME.cpp --*/
122  const char * get_signature_status( gpgme_sigsum_t sigstat );  const char * get_signature_status( gpgme_sigsum_t sigstat );
 void keycache_reload( HWND dlg );  
123    
124  int get_pubkey (const char *keyid, gpgme_key_t *ret_key);  gpgme_error_t get_pubkey (const char *keyid, gpgme_key_t *ret_key);
125  int winpt_get_pubkey (const char *keyid, struct winpt_key_s *k);  gpgme_error_t winpt_get_pubkey (const char *keyid, struct winpt_key_s *k);
126  int get_seckey (const char *keyid, gpgme_key_t *ret_skey);  void          winpt_release_pubkey (winpt_key_s *k);
127  int winpt_get_seckey (const char *keyid, struct winpt_key_s *k);  gpgme_error_t get_seckey (const char *keyid, gpgme_key_t *ret_skey);
128    gpgme_error_t winpt_get_seckey (const char *keyid, struct winpt_key_s *k);
129    
 void keycache_reload( HWND dlg );  
130  void keycache_release (int cleanup);  void keycache_release (int cleanup);
131  gpgme_error_t keycache_update (int is_sec, const char *keyid);  gpgme_error_t keycache_update (int is_sec, const char *keyid);
132  gpgme_error_t keycache_init( const char *pubring, const char * secring );  gpgme_error_t keycache_init (const char *pubring, const char * secring);
133  void keycache_set_reload( int yes );  gpg_keycache_t keycache_get_ctx (int _pub);
 int keycache_get_reload( void );  
 gpg_keycache_t keycache_get_ctx( int _pub );  
   
 int count_insecure_elgkeys (void);  
134    
135  int gpg_encrypt_symmetric (void);  gpgme_error_t gpg_clip_sym_encrypt (void);
136  const char *get_gpg_sigstat (gpgme_sigsum_t sum);  const char *get_gpg_sigstat (gpgme_sigsum_t sum);
137    int check_ultimate_trusted_key (void);
138    bool secret_key_available (void);
139    
140  /*-- wptGPGParser.cpp --*/  /*-- wptGPGParser.cpp --*/
141    enum entry_t {
142        ENTRY_OPAQUE = 1,
143        ENTRY_SINGLE = 2,
144        ENTRY_MULTI  = 3,
145        ENTRY_GROUP  = 4,
146    };
147    
148    struct gpg_option_s {
149        struct gpg_option_s *next;
150        char *name;
151        char *val;
152        unsigned int used:1;
153        int type;  
154    };
155    typedef struct gpg_option_s *gpg_option_t;
156    
157    struct gpg_member_s {
158        struct gpg_member_s * next;
159        char *name;
160        unsigned int used:1;  
161    };
162    typedef struct gpg_member_s *gpg_member_t;
163    
164    struct gpg_group_s {
165        struct gpg_group_s *next;
166        struct gpg_member_s *list;
167        char *name;
168        unsigned int used:1;  
169    };
170    typedef struct gpg_group_s *gpg_group_t;
171    
172    struct gpg_optfile_s {
173        struct gpg_option_s *list;
174        struct gpg_group_s *grp;
175    };
176    typedef struct gpg_optfile_s *gpg_optfile_t;
177    typedef struct gpg_optfile_s *config_file_t;
178    
179  /* find */  /* find */
180  gpg_group_t find_group( gpg_optfile_t opt, const char *str );  gpg_group_t find_group( gpg_optfile_t opt, const char *str );
181  gpg_option_t find_option( gpg_optfile_t opt, const char *str );  gpg_option_t find_option( gpg_optfile_t opt, const char *str );
# Line 188  int delete_option( gpg_optfile_t opt, co Line 187  int delete_option( gpg_optfile_t opt, co
187  /* add */  /* add */
188  int modify_entry( gpg_optfile_t opt, int type, const char *name, const char *val );  int modify_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
189  int add_entry( gpg_optfile_t opt, int type, const char *name, const char *val );  int add_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
190    int add_entry_int (config_file_t opt, int type, const char *name, int val);
191  int add_member( gpg_optfile_t opt, const char *grp, const char *str );  int add_member( gpg_optfile_t opt, const char *grp, const char *str );
192  int add_group( gpg_optfile_t opt, const char *str );  int add_group( gpg_optfile_t opt, const char *str );
193  /* high-level */  /* high-level */
194  int parse_gpg_options( const char *file, gpg_optfile_t *r_opt );  void new_config (config_file_t *r_opt);
195  int commit_gpg_options( const char *file, gpg_optfile_t opt );  int parse_config (const char *file, config_file_t *r_opt);
196  void release_gpg_options( gpg_optfile_t opt );  int commit_config (const char *file, config_file_t opt);
197    void release_config (config_file_t opt);
198  /* memory */  /* memory */
199  void release_group( gpg_group_t grp );  void release_group( gpg_group_t grp );
200    
201  /*-- wptPassphraseCB.cpp --*/  /*-- wptPassphraseCB.cpp --*/
202  enum passdlg_t {  enum passdlg_t {
203      PASSDLG_REPEAT = 0,      PASSDLG_REPEAT  = 0,
204      PASSDLG_INIT = 1,        PASSDLG_INIT    = 1,  
205      PASSDLG_STRICT = 2      PASSDLG_STRICT  = 2,
206        PASSDLG_NOTEMPTY= 4,
207        PASSDLG_WARN_UTF8=8,
208  };  };
209    
210  void set_gpg_passphrase_cb (passphrase_cb_s *cb, gpgme_ctx_t ctx,  void set_gpg_passphrase_cb (passphrase_cb_s *cb, gpgme_ctx_t ctx,
211                              int cmd, HWND hwnd, const char *title);                              int cmd, HWND hwnd, const char *title);
212  void release_gpg_passphrase_cb (passphrase_cb_s *cb);  void release_gpg_passphrase_cb (passphrase_cb_s *cb);
213    void release_gpg_recipients (gpgme_recipient_t *recipients);
214    
215  char * request_passphrase (const char *title, int flags, int *ret_cancel);  char *request_passphrase (const char *title, int flags, int *ret_cancel);
216  char * request_passphrase2 (const char *title, int flags, int *ret_cancel);  char *request_passphrase2 (const char *title, int flags, int *ret_cancel);
217    char *request_key_passphrase (gpgme_key_t key, const char *title,
218                                  int *ret_cancel);
219  const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);  const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);
220  char * get_key_userid (const char *keyid);  char * get_key_userid (const char *keyid);
221  int check_passwd_quality (const char *pass, int strict);  int check_passwd_quality (const char *pass, int strict);
# Line 228  size_t       gpg_data_readline (gpgme_da Line 234  size_t       gpg_data_readline (gpgme_da
234  gpgme_error_t gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname);  gpgme_error_t gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname);
235  gpgme_error_t  gpg_data_mail_quote (gpgme_data_t *r_dh);  gpgme_error_t  gpg_data_mail_quote (gpgme_data_t *r_dh);
236  gpgme_error_t  gpg_data_extract_plaintext (gpgme_data_t sig, gpgme_data_t *r_plain);  gpgme_error_t  gpg_data_extract_plaintext (gpgme_data_t sig, gpgme_data_t *r_plain);
237    void          gpg_data_putc (gpgme_data_t hd, int c);
238    
239  /*-- wptGPGUtil.cpp --*/  /*-- wptGPGUtil.cpp --*/
240  gpgme_error_t gpg_rebuild_cache (char **r_inf);  gpgme_error_t gpg_rebuild_cache (char **r_inf);
# Line 235  gpgme_error_t gpg_get_version (char **r_ Line 242  gpgme_error_t gpg_get_version (char **r_
242  void          gpg_set_debug_mode (int val);  void          gpg_set_debug_mode (int val);
243  gpgme_error_t gpg_export_seckey (const char *keyid, const char *outfile);  gpgme_error_t gpg_export_seckey (const char *keyid, const char *outfile);
244  gpgme_error_t gpg_manage_ownertrust (char **data, int do_export);  gpgme_error_t gpg_manage_ownertrust (char **data, int do_export);
245    gpgme_error_t gpg_get_photoid_data (const char *keyid, char **r_status_data,
246  char*  generate_revoc_input (int code, const char *cmt, const char *pass);                                      unsigned char **r_data,
247  gpgme_error_t gpg_revoke_key (const char *inp_data,                                      unsigned long *ndata);
248                                const char *keyid,  gpgme_error_t gpg_revoke_cert (int desig_revoke, const char *inp_data,
249                                char **r_revcert);                                 const char *keyid, char **r_revcert);
250  gpgme_error_t gpg_decode_c_string (const char *src, char **destp, size_t len);  gpgme_error_t gpg_decode_c_string (const char *src, char **destp, size_t len);
251  gpgme_error_t gpg_import_key_list (const char *fname, char **r_out);  gpgme_error_t gpg_import_key_list (const char *fname, char **r_out);
252    gpgme_error_t gpg_extract_keys (const char *keyfile, const char **keys, DWORD nkeys,
253                                    char **new_keyfile);
254  gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);  gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);
255    gpgme_error_t gpg_get_recipients (const char *file, gpgme_recipient_t *r_list);
256    gpgme_error_t gpg_find_key_subpacket (const char *key, int subpktid,
257                                          char **value);
258    
259  #endif /* WPT_GPG_H */  #endif /* WPT_GPG_H */

Legend:
Removed from v.121  
changed lines
  Added in v.270

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26