/[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 22 by twoaday, Wed Aug 10 11:33:35 2005 UTC revision 33 by twoaday, Tue Oct 25 07:46:20 2005 UTC
# Line 21  Line 21 
21  #ifndef WPT_GPG_H  #ifndef WPT_GPG_H
22  #define WPT_GPG_H  #define WPT_GPG_H
23    
24    #include "w32gpgme.h"
25    #include "wptKeyCache.h"
26  #include "wptNLS.h"  #include "wptNLS.h"
27  #include "gpgme.h"  
28    
29  #define NO_STRICT 0  #define NO_STRICT 0
30    
31  enum {  #define key_is_useable(key) (!(key)->revoked && !(key)->expired && !(key)->disabled)
32    
33    enum setup_t {
34      SETUP_KEYGEN    = 1,      SETUP_KEYGEN    = 1,
35      SETUP_IMPORT    = 2,      SETUP_IMPORT    = 2,
36      SETUP_EXISTING  = 3      SETUP_EXISTING  = 3
37  };  };
38    
39  enum {  enum gpg_cmd_t {
40      GPG_CMD_DECRYPT = 0,      GPG_CMD_DECRYPT = 0,
41      GPG_CMD_SIGN    = 1      GPG_CMD_SIGN    = 1
42  };  };
43    
44  enum {  enum keycache_t {
45      KEYCACHE_PRV = 0,      KEYCACHE_PRV = 0,
46      KEYCACHE_PUB = 1      KEYCACHE_PUB = 1
47  };  };
48    
49  enum {  enum entry_t {
50      ENTRY_OPAQUE = 1,      ENTRY_OPAQUE = 1,
51      ENTRY_SINGLE = 2,      ENTRY_SINGLE = 2,
52      ENTRY_MULTI  = 3,      ENTRY_MULTI  = 3,
53      ENTRY_GROUP  = 4,      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 {      struct gpg_filetype {    
61      const char *descr;      const char *descr;
62      const char *ext;      const char *ext;
63      int nicon;      int nicon;
64  };  };
65    
66    /* Keycache refresh context. */
67  struct refresh_cache_s {  struct refresh_cache_s {
68      int kr_reload;      int kr_reload;
69      int kr_update;      int kr_update;
# Line 99  static gpg_filetype gpg_filetypes[] = { Line 108  static gpg_filetype gpg_filetypes[] = {
108  };  };
109    
110  struct passphrase_cb_s {  struct passphrase_cb_s {
111      int gpg_cmd;      int gpg_cmd;        /* sign or decrypt. */
112      gpgme_recipients_t enc_to;      int pwd_init;       /* 1 = passphrase request via dialog. */
113      int pwd_init;      char *pwd;          /* actual passphrase. */
114      char pwd[256];      char info[1024];    /* hold up the info message */
115      char info[1024]; /* hold up the info message */      char *title;        /* dialog title. */
116      char title[256];      char keyid[16+1];   /* keyid of the secret key the pwd can be used for. */
117      const char * keyid;      HWND hwnd;          /* handle of the dialog window. */
118      HWND hwnd;      int cancel;         /* 1 = user cancelled passphrase request. */
119      int cancel;      unsigned int is_card:1; /* 1 = key stored on a smart card. */
120      int is_card;      unsigned int bad_pwd:1; /* 1 = last passphrase was bad. */
121        gpgme_ctx_t gpg;
122        gpgme_recipient_t recipients;
123        struct {
124            int sym_algo;
125            int s2k_mode;
126            int s2k_hash;
127        } sym;
128  };  };
129    
130    
131  static const char * gpg_sigstat[] = {  static const char * gpg_sigstat[] = {
132      _("Error during verification process."),      _("Error during verification process."),
133      _("The signature is good."),      _("The signature is good."),
# Line 123  static const char * gpg_sigstat[] = { Line 140  static const char * gpg_sigstat[] = {
140      NULL      NULL
141  };  };
142    
143    int sigsum_to_index (gpgme_sigsum_t sum);
144  #define SIGSTAT_MASK 8  #define SIGSTAT_MASK 8
145    #define get_gpg_sigstat(sum) gpg_sigstat[sigsum_to_index ((sum)) % SIGSTAT_MASK]
146    
147    /* This variable is 1 if IDEA is available. */
148  extern int idea_available;  extern int idea_available;
149    
150  /*-- wptGPG.cpp --*/  /*-- wptGPG.cpp --*/
# Line 145  int check_gnupg_options (const char *buf Line 165  int check_gnupg_options (const char *buf
165  void init_gnupg_table (void);  void init_gnupg_table (void);
166  void free_gnupg_table (void);  void free_gnupg_table (void);
167  int keyring_check_last_access (void);  int keyring_check_last_access (void);
168  const char* gnupg_check_file_ext (const char * fname);  const char* gnupg_check_file_ext (const char *fname, int *r_type);
169  int gpg_check_permissions (int showmsg);  int gpg_check_permissions (int showmsg);
170  int gnupg_check_homedir (void);  int gnupg_check_homedir (void);
171  int gnupg_access_keyring (int _pub);  int gnupg_access_keyring (int _pub);
172  void gnupg_backup_options (int keep);  void gnupg_backup_options ();
173  void gnupg_backup_keyrings (void);  void gnupg_backup_keyrings (void);
174  void gnupg_display_error (void);  void gnupg_display_error (void);
175  int gnupg_copy_keyrings (void);  int gnupg_copy_keyrings (void);
176  int check_gnupg_engine (int *r_major, int *r_minor, int *r_patch);  int check_gnupg_engine (int *r_major, int *r_minor, int *r_patch);
177    
 gpgme_card_t smartcard_init (void);  
   
178  /*-- wptGPGME.cpp --*/  /*-- wptGPGME.cpp --*/
179  const char * get_signature_status( gpgme_sigstat_t sigstat );  const char * get_signature_status( gpgme_sigsum_t sigstat );
180  void keycache_reload( HWND dlg );  void keycache_reload( HWND dlg );
181    
182  int get_pubkey( const char *keyid, gpgme_key_t *ret_key );  int get_pubkey (const char *keyid, gpgme_key_t *ret_key);
183  int get_seckey( const char *keyid, gpgme_key_t *ret_skey );  int winpt_get_pubkey (const char *keyid, struct winpt_key_s *k);
184    int get_seckey (const char *keyid, gpgme_key_t *ret_skey);
185    int winpt_get_seckey (const char *keyid, struct winpt_key_s *k);
186    
187  void keycache_reload( HWND dlg );  void keycache_reload( HWND dlg );
188  void keycache_release( void );  void keycache_release (int cleanup);
189  gpgme_error_t keycache_update (int is_sec, const char *keyid);  gpgme_error_t keycache_update (int is_sec, const char *keyid);
190  gpgme_error_t keycache_init( const char *pubring, const char * secring );  gpgme_error_t keycache_init( const char *pubring, const char * secring );
191  void keycache_set_reload( int yes );  void keycache_set_reload( int yes );
192  int keycache_get_reload( void );  int keycache_get_reload( void );
193  gpgme_keycache_t keycache_get_ctx( int _pub );  gpg_keycache_t keycache_get_ctx( int _pub );
   
 int count_insecure_elgkeys( void );  
194    
195  int gpgme_encrypt_symmetric( void );  int count_insecure_elgkeys (void);
196    
197  #define gpgme_enable_logging( ctx ) \  int gpg_encrypt_symmetric (void);
     gpgme_control( (ctx), GPGME_CTRL_LOGGING, 1 )  
198    
 #define gpgme_show_error( hwnd, rc, ctx, title, mode )          \  
 do {                                                            \  
     if( (rc) == GPGME_Internal_GPG_Problem && ctx ) {           \  
         char * strerr = gpgme_get_logging( (ctx) );             \  
         msg_box( (hwnd), (strerr)? (strerr) :                   \  
         _("No GPG error description available."), title, mode );\  
         safe_free( strerr );                                    \  
     }                                                           \  
     else {                                                      \  
         msg_box( (hwnd), gpgme_strerror( (rc) ),                \  
                   title, mode );                                \  
     }                                                           \  
 } while ( 0 )  
199    
200  /*-- wptGPGParser.cpp --*/  /*-- wptGPGParser.cpp --*/
201  /* find */  /* find */
# Line 215  void release_gpg_options( gpg_optfile_t Line 219  void release_gpg_options( gpg_optfile_t
219  void release_group( gpg_group_t grp );  void release_group( gpg_group_t grp );
220    
221  /*-- wptPassphraseCB.cpp --*/  /*-- wptPassphraseCB.cpp --*/
222  enum {  enum passdlg_t {
223      PASSDLG_REPEAT = 0,      PASSDLG_REPEAT = 0,
224      PASSDLG_INIT = 1,        PASSDLG_INIT = 1,  
225      PASSDLG_STRICT = 2      PASSDLG_STRICT = 2
226  };  };
227    
228  void set_gpg_passphrase_cb (gpgme_ctx_t c, passphrase_cb_s * ctx, int cmd,  void set_gpg_passphrase_cb (passphrase_cb_s *cb, gpgme_ctx_t ctx,
229                              HWND hwnd, const char *title);                              int cmd, HWND hwnd, const char *title);
230    void release_gpg_passphrase_cb (passphrase_cb_s *cb);
231    
232  char * request_passphrase (const char *title, int flags, int *ret_cancel);  char * request_passphrase (const char *title, int flags, int *ret_cancel);
233  char * request_passphrase2 (const char *title, int flags, int *ret_cancel);  char * request_passphrase2 (const char *title, int flags, int *ret_cancel);
234  const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);  const char * passphrase_cb (void *opaque, const char * desc, void *r_hd);
235  char * get_key_userid (const char *keyid);  char * get_key_userid (const char *keyid);
236  int check_passwd_quality (const char *pass, int strict);  int check_passwd_quality (const char *pass, int strict);
237    
238    /*-- 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    gpgme_error_t gpg_manage_ownertrust (char **data, int export);
244    
245    char*  generate_revoc_input (int code, const char *cmt, const char *pass);
246    gpgme_error_t gpg_revoke_key (const char *inp_data,
247                                  const char *keyid,
248                                  char **r_revcert);
249    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    gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);
252    
253  #endif /* WPT_GPG_H */  #endif /* WPT_GPG_H */

Legend:
Removed from v.22  
changed lines
  Added in v.33

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26