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

Diff of /trunk/Src/wptKeyEditDlgs.cpp

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

revision 175 by twoaday, Tue Feb 7 08:58:04 2006 UTC revision 176 by twoaday, Mon Feb 13 09:38:03 2006 UTC
# Line 113  enum uid_col_t { Line 113  enum uid_col_t {
113      UID_COL_CREATION    = 3      UID_COL_CREATION    = 3
114  };  };
115    
116  struct keyedit_callback_s {  /* Key edit callback context. */
117    struct keyedit_cb_s {
118      const char     *keyid;      const char     *keyid;
119      const char     *pass;      const char     *pass;
120      listview_ctrl_t lv;      listview_ctrl_t lv;
121      void           *opaque;      void           *opaque;
122      unsigned int    finished:1;      unsigned int    finished:1;
123        unsigned int    is_protected:1;
124  };  };
125  typedef struct keyedit_callback_s KEYEDIT_CB;  typedef struct keyedit_cb_s *keyedit_cb_t;
126    
127  struct keygen_callback_s {  
128    /* Key generation callback context. */
129    struct keygen_cb_s {
130      int   bits;      int   bits;
131      int   algo;      int   algo;
132      u32   expire;      u32   expire;
133      char *fpr;      char *fpr;
134  };  };
135  typedef struct keygen_callback_s KEYGEN_CB;  typedef struct keygen_cb_s *keygen_cb_t;
136    
137    
138  static subclass_s keyedit_subkey_proc;  static subclass_s keyedit_subkey_proc;
# Line 208  do_add_new_userid (listview_ctrl_t lv, Line 212  do_add_new_userid (listview_ctrl_t lv,
212    
213    
214  static void  static void
215  do_add_new_subkey (listview_ctrl_t lv, KEYGEN_CB *keygen, unsigned int flags)  do_add_new_subkey (listview_ctrl_t lv, keygen_cb_t keygen, unsigned int flags)
216  {  {
217      char info[128], keyid[32];      char info[128], keyid[32];
218      const char * expdate, * s;      const char * expdate, * s;
# Line 381  keyedit_addphoto_dlg_proc (HWND dlg, UIN Line 385  keyedit_addphoto_dlg_proc (HWND dlg, UIN
385                  BUG (NULL);                  BUG (NULL);
386              if (k->is_protected)              if (k->is_protected)
387                  ke->setPassphrase (pwd);                  ke->setPassphrase (pwd);
388                else
389                    ke->setNoPassphrase (true);
390              ec = ke->addPhotoid (file);              ec = ke->addPhotoid (file);
391              delete ke;              delete ke;
392              wipememory (pwd, sizeof (pwd));              wipememory (pwd, sizeof (pwd));
# Line 460  keyedit_addrevoker_dlg_proc (HWND dlg, U Line 466  keyedit_addrevoker_dlg_proc (HWND dlg, U
466              ke = new GpgKeyEdit (k->keyid);              ke = new GpgKeyEdit (k->keyid);
467              if (k->is_protected)              if (k->is_protected)
468                  ke->setPassphrase (pwd);                  ke->setPassphrase (pwd);
469                else
470                    ke->setNoPassphrase (true);
471              err = ke->addDesignatedRevoker (uid);              err = ke->addDesignatedRevoker (uid);
472              delete ke;              delete ke;
473              wipememory (pwd, sizeof (pwd));              wipememory (pwd, sizeof (pwd));
# Line 489  keyedit_addrevoker_dlg_proc (HWND dlg, U Line 497  keyedit_addrevoker_dlg_proc (HWND dlg, U
497  BOOL CALLBACK  BOOL CALLBACK
498  keyedit_adduid_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  keyedit_adduid_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
499  {  {
500      static KEYEDIT_CB *ctx;      static keyedit_cb_t ctx;
501      gpgme_error_t err;      gpgme_error_t err;
502      GpgKeyEdit *ke;      GpgKeyEdit *ke;
503      char *utf8_name = NULL;      char *utf8_name = NULL;
504      char name[128], email[128], comment[128];      char name[128], email[128], comment[128];
505      int rc;      int rc;
506            
507      switch ( msg ) {      switch (msg) {
508      case WM_INITDIALOG:      case WM_INITDIALOG:
509          ctx = (KEYEDIT_CB *)lparam;          ctx = (keyedit_cb_t)lparam;
510          if( !ctx )          if( !ctx )
511              dlg_fatal_error(dlg, "Could not get dialog param!");              dlg_fatal_error(dlg, "Could not get dialog param!");
512          SetWindowText (dlg, _("Add new User ID"));          SetWindowText (dlg, _("Add new User ID"));
# Line 510  keyedit_adduid_dlg_proc (HWND dlg, UINT Line 518  keyedit_adduid_dlg_proc (HWND dlg, UINT
518          return FALSE;          return FALSE;
519                    
520      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
521          if (LOWORD (wparam) == SC_CLOSE) {          if (LOWORD (wparam) == SC_CLOSE)
522              EndDialog(dlg, TRUE);              EndDialog(dlg, TRUE);
         }  
523          return FALSE;          return FALSE;
524                    
525      case WM_COMMAND:      case WM_COMMAND:
# Line 546  keyedit_adduid_dlg_proc (HWND dlg, UINT Line 553  keyedit_adduid_dlg_proc (HWND dlg, UINT
553              ke = new GpgKeyEdit (ctx->keyid);              ke = new GpgKeyEdit (ctx->keyid);
554              if (!ke)              if (!ke)
555                  BUG (NULL);                  BUG (NULL);
556              if (ctx->pass)              if (ctx->is_protected)
557                  ke->setPassphrase (ctx->pass);                  ke->setPassphrase (ctx->pass);
558                else
559                    ke->setNoPassphrase (true);
560              err = ke->addUserid (utf8_name? utf8_name : name,              err = ke->addUserid (utf8_name? utf8_name : name,
561                                   rc > 0? comment : NULL, email);                                   rc > 0? comment : NULL, email);
562              if (err)              if (err)
# Line 618  w32_mktime (SYSTEMTIME *st) Line 627  w32_mktime (SYSTEMTIME *st)
627  BOOL CALLBACK  BOOL CALLBACK
628  keyedit_addsubkey_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  keyedit_addsubkey_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
629  {  {
630      static KEYEDIT_CB *ctx;      static keyedit_cb_t ctx;
631      static KEYGEN_CB *keygen;      static keygen_cb_t keygen;
632      GpgKeyEdit *ke;      GpgKeyEdit *ke;
633      gpgme_error_t err;      gpgme_error_t err;
634      SYSTEMTIME st;      SYSTEMTIME st;
# Line 628  keyedit_addsubkey_dlg_proc (HWND dlg, UI Line 637  keyedit_addsubkey_dlg_proc (HWND dlg, UI
637            
638      switch (msg) {      switch (msg) {
639      case WM_INITDIALOG:      case WM_INITDIALOG:
640          ctx = (KEYEDIT_CB *)lparam;          ctx = (keyedit_cb_t)lparam;
641          if (!ctx)          if (!ctx)
642              dlg_fatal_error (dlg, "Could not get dialog param!");              dlg_fatal_error (dlg, "Could not get dialog param!");
643          keygen = (KEYGEN_CB *)ctx->opaque;          keygen = (keygen_cb_t)ctx->opaque;
644    
645          SetWindowText (dlg, _("Add new Subkey"));          SetWindowText (dlg, _("Add new Subkey"));
646          SetDlgItemText (dlg, IDC_ADDSUBKEY_INFALGO, _("Key type"));          SetDlgItemText (dlg, IDC_ADDSUBKEY_INFALGO, _("Key type"));
# Line 709  keyedit_addsubkey_dlg_proc (HWND dlg, UI Line 718  keyedit_addsubkey_dlg_proc (HWND dlg, UI
718              if (!ke)              if (!ke)
719                  BUG (NULL);                  BUG (NULL);
720              ke->setCallback (keygen_cb, NULL);              ke->setCallback (keygen_cb, NULL);
721              if (ctx->pass)              if (ctx->is_protected)
722                  ke->setPassphrase (ctx->pass);                  ke->setPassphrase (ctx->pass);
723                else
724                    ke->setNoPassphrase (true);
725              keygen_cb_dlg_create ();              keygen_cb_dlg_create ();
726    
727              err = ke->addSubkey ((gpgme_pubkey_algo_t)index, size, valid);              err = ke->addSubkey ((gpgme_pubkey_algo_t)index, size, valid);
# Line 743  keyedit_addsubkey_dlg_proc (HWND dlg, UI Line 754  keyedit_addsubkey_dlg_proc (HWND dlg, UI
754  BOOL  BOOL
755  keyedit_add_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv)  keyedit_add_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv)
756  {  {
757      KEYEDIT_CB cb;      keyedit_cb_s cb;
758      char *pass = NULL;      char *pass = NULL;
759      int cancel = 0;      int cancel = 0;
760    
# Line 759  keyedit_add_userid (winpt_key_t k, HWND Line 770  keyedit_add_userid (winpt_key_t k, HWND
770      }      }
771                        
772      memset (&cb, 0, sizeof cb);      memset (&cb, 0, sizeof cb);
773      cb.pass = k->is_protected? pass : NULL;      cb.is_protected = k->is_protected;
774        cb.pass = pass;
775      cb.lv = lv;      cb.lv = lv;
776      cb.keyid = k->keyid;      cb.keyid = k->keyid;
777      dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_ADDUID,      dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_ADDUID,
# Line 801  get_subkey_keyid (const char *keyid) Line 813  get_subkey_keyid (const char *keyid)
813  BOOL  BOOL
814  keyedit_add_subkey (winpt_key_t k, HWND dlg, listview_ctrl_t lv)  keyedit_add_subkey (winpt_key_t k, HWND dlg, listview_ctrl_t lv)
815  {  {
816      KEYEDIT_CB cb;      keyedit_cb_s cb;
817      KEYGEN_CB keygen;      keygen_cb_s keygen;
818      char *pass = NULL;      char *pass = NULL;
819      int cancel = 0;      int cancel = 0;
820    
# Line 820  keyedit_add_subkey (winpt_key_t k, HWND Line 832  keyedit_add_subkey (winpt_key_t k, HWND
832      memset (&cb, 0, sizeof (cb));      memset (&cb, 0, sizeof (cb));
833      cb.lv = lv;      cb.lv = lv;
834      cb.keyid = k->keyid;      cb.keyid = k->keyid;
835      cb.pass = k->is_protected? pass : NULL;      cb.is_protected = k->is_protected;
836        cb.pass = pass;
837      cb.opaque = &keygen;      cb.opaque = &keygen;
838      dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_ADDSUBKEY,          dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYEDIT_ADDSUBKEY,    
839                        dlg, keyedit_addsubkey_dlg_proc,                        dlg, keyedit_addsubkey_dlg_proc,
# Line 860  keyedit_set_pref_keyserver (winpt_key_t Line 873  keyedit_set_pref_keyserver (winpt_key_t
873          BUG (NULL);          BUG (NULL);
874      if (k->is_protected)      if (k->is_protected)
875          ke->setPassphrase (pass);          ke->setPassphrase (pass);
876        else
877            ke->setNoPassphrase (true);
878      err = ke->setPreferredKeyserver (0 /* XXX */, url->url);      err = ke->setPreferredKeyserver (0 /* XXX */, url->url);
879      if (!err)      if (!err)
880          msg_box (dlg, _("Preferred keyserver successfully set."), _("Key Edit"), MB_OK);          msg_box (dlg, _("Preferred keyserver successfully set."), _("Key Edit"), MB_OK);
# Line 1352  do_editkey_expire (winpt_key_t k, HWND d Line 1367  do_editkey_expire (winpt_key_t k, HWND d
1367          BUG (NULL);          BUG (NULL);
1368      if (k->is_protected)      if (k->is_protected)
1369          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1370        else
1371            ke->setNoPassphrase (true);
1372      err = ke->setKeyExpireDate (j, w32_mktime (&udd.st), false);      err = ke->setKeyExpireDate (j, w32_mktime (&udd.st), false);
1373      if (err)      if (err)
1374          msg_box (dlg, gpgme_strerror (err), _("Expire Subkey"), MB_ERR);          msg_box (dlg, gpgme_strerror (err), _("Expire Subkey"), MB_ERR);
# Line 1415  do_editkey_revoke (winpt_key_t k, HWND d Line 1432  do_editkey_revoke (winpt_key_t k, HWND d
1432          BUG (NULL);          BUG (NULL);
1433      if (k->is_protected)      if (k->is_protected)
1434          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1435        else
1436            ke->setNoPassphrase (true);
1437      err = ke->revokeSubkey (j, 0, NULL);      err = ke->revokeSubkey (j, 0, NULL);
1438      if (err)      if (err)
1439          msg_box( dlg, gpgme_strerror (err), _("Revoke Subkey"), MB_ERR);          msg_box( dlg, gpgme_strerror (err), _("Revoke Subkey"), MB_ERR);
# Line 1485  do_editkey_revuid (winpt_key_t k, HWND d Line 1504  do_editkey_revuid (winpt_key_t k, HWND d
1504          BUG (NULL);          BUG (NULL);
1505      if (k->is_protected)      if (k->is_protected)
1506          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1507        else
1508            ke->setNoPassphrase (true);
1509      err = ke->revokeUserid (id);      err = ke->revokeUserid (id);
1510      if (err)      if (err)
1511          msg_box (dlg, gpgme_strerror (err), _("Revoke User ID"), MB_ERR);          msg_box (dlg, gpgme_strerror (err), _("Revoke User ID"), MB_ERR);
# Line 1526  do_editkey_setpref (winpt_key_t k, HWND Line 1547  do_editkey_setpref (winpt_key_t k, HWND
1547          BUG (NULL);          BUG (NULL);
1548      if (k->is_protected)      if (k->is_protected)
1549          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1550        else
1551            ke->setNoPassphrase (true);
1552    
1553      get_userid_preflist (&prefs, &flags);      get_userid_preflist (&prefs, &flags);
1554    
1555      rc = ke->setUseridPreferences (id, prefs);      rc = ke->setUseridPreferences (id, prefs);
1556      /* XXX */      if (rc)
1557            msg_box (dlg, _("Could not set user ID preferences"), _("Key Edit"), MB_ERR);
1558    
1559      sfree_if_alloc (pass);      sfree_if_alloc (pass);
1560      free_if_alloc (prefs);      free_if_alloc (prefs);
# Line 1566  do_editkey_primary (winpt_key_t k, HWND Line 1590  do_editkey_primary (winpt_key_t k, HWND
1590      ke = new GpgKeyEdit (k->keyid);      ke = new GpgKeyEdit (k->keyid);
1591      if (k->is_protected)      if (k->is_protected)
1592          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1593        else
1594            ke->setNoPassphrase (true);
1595      err = ke->setPrimaryUserid (id);      err = ke->setPrimaryUserid (id);
1596      if (err)      if (err)
1597          msg_box (dlg, gpgme_strerror (err), _("Primary"), MB_ERR);          msg_box (dlg, gpgme_strerror (err), _("Primary"), MB_ERR);
# Line 1632  parse_preflist (HWND dlg, const char *li Line 1658  parse_preflist (HWND dlg, const char *li
1658  BOOL CALLBACK  BOOL CALLBACK
1659  showpref_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  showpref_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
1660  {  {
1661      static keyedit_callback_s *cb = NULL;      static keyedit_cb_t cb = NULL;
1662      gpg_uid_info_t inf=NULL;      gpg_uid_info_t inf=NULL;
1663      char buf[128];      char buf[128];
1664      int pos;      int pos;
1665    
1666      switch (msg) {      switch (msg) {
1667      case WM_INITDIALOG:      case WM_INITDIALOG:
1668          cb = (keyedit_callback_s *)lparam;          cb = (keyedit_cb_t)lparam;
1669          if (cb == NULL)          if (cb == NULL)
1670              BUG (dlg);              BUG (dlg);
1671          pos = listview_get_curr_pos (cb->lv);          pos = listview_get_curr_pos (cb->lv);
# Line 1684  showpref_dlg_proc (HWND dlg, UINT msg, W Line 1710  showpref_dlg_proc (HWND dlg, UINT msg, W
1710  static int  static int
1711  do_editkey_showpref (winpt_key_t k, HWND dlg, listview_ctrl_t lv)  do_editkey_showpref (winpt_key_t k, HWND dlg, listview_ctrl_t lv)
1712  {  {
1713      struct keyedit_callback_s cb;      struct keyedit_cb_s cb;
1714    
1715      if (k->is_v3)      if (k->is_v3)
1716          return TRUE;          return TRUE;
# Line 1829  get_default_key (void) Line 1855  get_default_key (void)
1855  static void  static void
1856  do_editkey_check (winpt_key_t k, HWND dlg)  do_editkey_check (winpt_key_t k, HWND dlg)
1857  {  {
1858      gpgme_key_t key;      if (!k->ctx)
1859            get_pubkey (k->keyid, &k->ctx);
1860      get_pubkey (k->keyid, &key);      if (!k->uid && k->ctx)
1861            k->uid = k->ctx->uids->uid;
1862      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYSIG_TREE, dlg,      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYSIG_TREE, dlg,
1863                      sigtree_dlg_proc, (LPARAM)key);                      sigtree_dlg_proc, (LPARAM)k);
1864  }  }
1865    
1866    
# Line 1870  do_editkey_sign_userid (winpt_key_t k, H Line 1897  do_editkey_sign_userid (winpt_key_t k, H
1897      ke = new GpgKeyEdit (k->keyid);      ke = new GpgKeyEdit (k->keyid);
1898      if (k->is_protected)      if (k->is_protected)
1899          ke->setPassphrase (pass);          ke->setPassphrase (pass);
1900        else
1901            ke->setNoPassphrase (true);
1902      ke->setLocalUser (get_default_key ());      ke->setLocalUser (get_default_key ());
1903      err = ke->signUserid (uid_index,      err = ke->signUserid (uid_index,
1904                            mode == CMD_SIGN? GPG_EDITKEY_SIGN : GPG_EDITKEY_LSIGN,                            mode == CMD_SIGN? GPG_EDITKEY_SIGN : GPG_EDITKEY_LSIGN,

Legend:
Removed from v.175  
changed lines
  Added in v.176

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26