/[winpt]/trunk/Src/wptClipSignEncDlg.cpp
ViewVC logotype

Diff of /trunk/Src/wptClipSignEncDlg.cpp

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

revision 23 by twoaday, Fri Sep 30 10:10:16 2005 UTC revision 32 by twoaday, Mon Oct 24 08:03:48 2005 UTC
# Line 24  Line 24 
24  #include "../resource.h"  #include "../resource.h"
25  #include "wptErrors.h"  #include "wptErrors.h"
26  #include "wptAgent.h"  #include "wptAgent.h"
27    #include "wptCrypto.h"
28  #include "wptGPG.h"  #include "wptGPG.h"
29  #include "wptCommonCtl.h"  #include "wptCommonCtl.h"
30  #include "wptKeylist.h"  #include "wptKeylist.h"
# Line 43  Line 44 
44     additionally sign the data before @signer as the keyID.     additionally sign the data before @signer as the keyID.
45     Return value: 0 on success. */     Return value: 0 on success. */
46  gpgme_error_t  gpgme_error_t
47  gpg_clip_sign_encrypt (struct passphrase_cb_s *cb, const char *signer,  gpg_clip_sign_encrypt (gpgme_ctx_t ctx, const char *signer,
48                         gpgme_key_t *rset, int opts)                         gpgme_key_t *rset, int opts)
49  {  {
50      gpgme_error_t err;      gpgme_error_t err;
51      gpgme_data_t plain = NULL;      gpgme_data_t plain = NULL;
52      gpgme_data_t ciph = NULL;      gpgme_data_t ciph = NULL;
53      gpgme_key_t key = NULL;      gpgme_key_t key = NULL;
     gpgme_ctx_t ctx;  
54    
55      if (!signer)      if (!signer)
56          return gpg_error (GPG_ERR_INV_ARG);          return gpg_error (GPG_ERR_INV_ARG);
57      if (get_pubkey (signer, &key))      if (get_pubkey (signer, &key))
58          return gpg_error (GPG_ERR_NO_PUBKEY);          return gpg_error (GPG_ERR_NO_PUBKEY);
       
     err = gpgme_new (&ctx);  
     if (err)  
         return err;  
   
     /* Update the gpgme context manually. */  
     cb->gpg = ctx;  
59    
60      gpgme_set_armor (ctx, 1);      gpgme_set_armor (ctx, 1);
61            
# Line 90  leave: Line 83  leave:
83          gpgme_data_release (plain);          gpgme_data_release (plain);
84      if (ciph)      if (ciph)
85          gpgme_data_release (ciph);          gpgme_data_release (ciph);
     gpgme_key_release (key);  
     gpgme_release (ctx);  
86      return err;      return err;
87  }  }
88    
# Line 103  clip_signenc_dlg_proc (HWND dlg, UINT ms Line 94  clip_signenc_dlg_proc (HWND dlg, UINT ms
94      static listview_ctrl_t lv = NULL;      static listview_ctrl_t lv = NULL;
95      static keylist_t list = NULL;      static keylist_t list = NULL;
96      static int enable = 0;      static int enable = 0;
97      gpgme_keycache_t kc;      gpg_keycache_t kc;
98      gpgme_key_t *rset;      gpgme_key_t *rset;
99      gpgme_error_t err;      gpgme_error_t err;
100        gpgme_ctx_t ctx;
101      passphrase_cb_s pwd;      passphrase_cb_s pwd;
102      char * signer = NULL;      char *signer = NULL;
103      int force_trust = 0, opt = 0;      int force_trust = 0, opt = 0;
104      int kmode = reg_prefs.keylist_mode? KEYLIST_ENCRYPT_MIN : KEYLIST_ENCRYPT;      int kmode = reg_prefs.keylist_mode? KEYLIST_ENCRYPT_MIN : KEYLIST_ENCRYPT;
105      int n;      int n;
# Line 187  clip_signenc_dlg_proc (HWND dlg, UINT ms Line 179  clip_signenc_dlg_proc (HWND dlg, UINT ms
179                      return FALSE;                      return FALSE;
180                  }                  }
181              }              }
182                    
183              set_gpg_passphrase_cb (&pwd, NULL, GPG_CMD_SIGN, dlg, _("Sign & Encrypt"));              err = gpgme_new (&ctx);
184              err = gpg_clip_sign_encrypt (&pwd, signer, rset, force_trust);              if (err)
185                    BUG (NULL);
186                set_gpg_passphrase_cb (&pwd, ctx, GPG_CMD_SIGN, dlg, _("Sign & Encrypt"));
187                err = gpg_clip_sign_encrypt (ctx, signer, rset, force_trust);
188              release_gpg_passphrase_cb (&pwd);              release_gpg_passphrase_cb (&pwd);
189              free (rset);              free (rset);
190              free_if_alloc (signer);              free_if_alloc (signer);
191              if (err == gpg_error (GPG_ERR_BAD_PASSPHRASE))              gpgme_release (ctx);
192                if (gpgme_err_code (err) ==  GPG_ERR_BAD_PASSPHRASE)
193                  agent_del_cache (pwd.keyid);                  agent_del_cache (pwd.keyid);
194              if (err) {              if (err) {
195                  msg_box (dlg, gpgme_strerror (err), _("Sign & Encrypt"), MB_ERR );                  msg_box (dlg, gpgme_strerror (err), _("Sign & Encrypt"), MB_ERR );

Legend:
Removed from v.23  
changed lines
  Added in v.32

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26