/[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 205 by twoaday, Thu Apr 27 12:46:03 2006 UTC revision 211 by twoaday, Sun May 7 12:36:48 2006 UTC
# Line 64  enum keyedit_commands { Line 64  enum keyedit_commands {
64      CMD_LSIGN,      CMD_LSIGN,
65      CMD_CHECK,      CMD_CHECK,
66      CMD_CLEAN,      CMD_CLEAN,
67        CMD_MINIMIZE
68  };  };
69    
70  struct cmdlist_s {  struct cmdlist_s {
# Line 91  struct cmdlist_s { Line 92  struct cmdlist_s {
92      {"LSIGN", 0, CMD_LSIGN},      {"LSIGN", 0, CMD_LSIGN},
93      {"CHECK", 0, CMD_CHECK},      {"CHECK", 0, CMD_CHECK},
94      {"CLEAN", 0, CMD_CLEAN},      {"CLEAN", 0, CMD_CLEAN},
95        {"MINIMIZE", 0, CMD_MINIMIZE},
96      {NULL, 0}        {NULL, 0}  
97  };  };
98    
# Line 121  struct keyedit_cb_s { Line 123  struct keyedit_cb_s {
123      const char     *keyid;      const char     *keyid;
124      const char     *pass;      const char     *pass;
125      listview_ctrl_t lv;      listview_ctrl_t lv;
126        int             lv_pos;
127      void           *opaque;      void           *opaque;
128      unsigned int    finished:1;      unsigned int    finished:1;
129      unsigned int    is_protected:1;      unsigned int    is_protected:1;
# Line 190  do_init_keylist (HWND dlg, const char *k Line 193  do_init_keylist (HWND dlg, const char *k
193          ComboBox_AddString_utf8 (GetDlgItem (dlg, IDC_ADDREV_KEYLIST), s);          ComboBox_AddString_utf8 (GetDlgItem (dlg, IDC_ADDREV_KEYLIST), s);
194      }      }
195      gpg_keycache_rewind (pub);      gpg_keycache_rewind (pub);
196      n = SendDlgItemMessage( dlg, IDC_ADDREV_KEYLIST, CB_GETCOUNT, 0, 0 );      n = SendDlgItemMessage (dlg, IDC_ADDREV_KEYLIST, CB_GETCOUNT, 0, 0);
197      for (i = 0; i < n; i++) {      for (i = 0; i < n; i++) {
198          gpg_keycache_next_key (pub, 0, &key);          gpg_keycache_next_key (pub, 0, &key);
199          SendDlgItemMessage (dlg, IDC_ADDREV_KEYLIST, CB_SETITEMDATA,          SendDlgItemMessage (dlg, IDC_ADDREV_KEYLIST, CB_SETITEMDATA,
# Line 242  do_add_new_subkey (listview_ctrl_t lv, k Line 245  do_add_new_subkey (listview_ctrl_t lv, k
245                 keygen->bits,                 keygen->bits,
246                 get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo));                 get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo));
247      _snprintf (keyid, sizeof keyid-1, "0x%s", keygen->fpr+8);      _snprintf (keyid, sizeof keyid-1, "0x%s", keygen->fpr+8);
248        s = get_key_created (time (NULL));
249      n = listview_count_items (lv, 0);      n = listview_count_items (lv, 0);
250      listview_add_item_pos (lv, n);      listview_add_item_pos (lv, n);
251      listview_add_sub_item (lv, n, 0, info);      listview_add_sub_item (lv, n, SUBK_COL_DESC, info);
252      listview_add_sub_item (lv, n, 1, keyid);      listview_add_sub_item (lv, n, SUBK_COL_KEYID, keyid);
253      listview_add_sub_item (lv, n, 2, get_key_created (time (NULL)));      listview_add_sub_item (lv, n, SUBK_COL_CREATION, s);
254      listview_add_sub_item (lv, n, 3, expdate);      listview_add_sub_item (lv, n, SUBK_COL_EXPIRES, expdate);
255      if (flags & KM_FLAG_REVOKED)      if (flags & KM_FLAG_REVOKED)
256          s = _("Revoked");                s = _("Revoked");      
257      else if (flags & KM_FLAG_EXPIRED)      else if (flags & KM_FLAG_EXPIRED)
258          s = _("Expired");          s = _("Expired");
259      else      else
260          s = _("OK");          s = _("OK");
261      listview_add_sub_item (lv, n, 4, s);      listview_add_sub_item (lv, n, SUBK_COL_STATUS, s);
262  }  }
263    
264    
# Line 290  do_find_userid (const char *keyid, const Line 294  do_find_userid (const char *keyid, const
294              }              }
295              continue;              continue;
296          }          }
297          if (ui->email) {          if (email && ui->email) {
298              if (!strcmp (ui->email, email)) {              if (!strcmp (ui->email, email)) {
299                  pos = ui->index;                  pos = ui->index;
300                  break;                  break;
# Line 444  keyedit_addrevoker_dlg_proc (HWND dlg, U Line 448  keyedit_addrevoker_dlg_proc (HWND dlg, U
448          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
449          break;          break;
450    
     case WM_DESTROY:      
         break;  
   
451      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
452          if (LOWORD (wparam) == SC_CLOSE)          if (LOWORD (wparam) == SC_CLOSE)
453              EndDialog (dlg, FALSE);              EndDialog (dlg, FALSE);
# Line 584  init_keysize_box (HWND dlg, int ctlid) Line 585  init_keysize_box (HWND dlg, int ctlid)
585  {  {
586      const char *sizelist[] = {      const char *sizelist[] = {
587          "1024", "1536",          "1024", "1536",
588          "2048", "2560",          "2048", "3072",
         "3072", "3854",  
589          "4096", NULL          "4096", NULL
590      };      };
591      int i;      int i;
# Line 607  get_keysize_from_box (HWND dlg, int ctli Line 607  get_keysize_from_box (HWND dlg, int ctli
607      if (pos == CB_ERR)      if (pos == CB_ERR)
608          return -1;          return -1;
609      SendDlgItemMessage (dlg, ctlid, CB_GETLBTEXT, pos, (LPARAM)(char*)buf);      SendDlgItemMessage (dlg, ctlid, CB_GETLBTEXT, pos, (LPARAM)(char*)buf);
610      return atol (buf);      return atoi (buf);
611  }  }
612    
613    
# Line 728  keyedit_addsubkey_dlg_proc (HWND dlg, UI Line 728  keyedit_addsubkey_dlg_proc (HWND dlg, UI
728    
729              err = ke->addSubkey ((gpgme_pubkey_algo_t)index, size, valid);              err = ke->addSubkey ((gpgme_pubkey_algo_t)index, size, valid);
730              keygen->fpr = get_subkey_keyid (ctx->keyid);              keygen->fpr = get_subkey_keyid (ctx->keyid);
731              keygen_cb_dlg_destroy ();              keygen_cb_dlg_destroy (1);
             keygen_cb (NULL, NULL, 0, 0, 0); /* flush */  
732              if (err)              if (err)
733                  msg_box (dlg, gpgme_strerror (err), _("Add Subkey"), MB_ERR);                  msg_box (dlg, gpgme_strerror (err), _("Add Subkey"), MB_ERR);
734              else {              else {
# Line 1072  listview_ctrl_t Line 1071  listview_ctrl_t
1071  subkey_list_init (HWND dlg, winpt_key_t k)  subkey_list_init (HWND dlg, winpt_key_t k)
1072  {  {
1073      LV_ITEM lvi;      LV_ITEM lvi;
     gpgme_key_t key;  
1074      gpgme_subkey_t sub;      gpgme_subkey_t sub;
1075      struct listview_column_s cols[] = {      struct listview_column_s cols[] = {
1076          {0, 80, (char *)_("Description")},          {0, 80, (char *)_("Description")},
# Line 1089  subkey_list_init (HWND dlg, winpt_key_t Line 1087  subkey_list_init (HWND dlg, winpt_key_t
1087      listview_ctrl_t lv;      listview_ctrl_t lv;
1088      char buf[256], tmp[128];      char buf[256], tmp[128];
1089      const char *t;      const char *t;
1090      int nkeys = 0, rc = 0, i, bits;          int nkeys = 0, i, bits;
1091    
1092      if (get_pubkey (k->keyid, &key)) {      nkeys = count_subkeys (k->ctx);
         msg_box (dlg, _("Could not find key."), _("Key Edit"), MB_ERR);  
         return NULL;  
     }  
     if (!k->ctx)  
         k->ctx = key;  
     nkeys = count_subkeys (key);  
1093      if( !nkeys ) {      if( !nkeys ) {
1094          msg_box (dlg, _("No subkey(s) found."), _("Key Edit"), MB_ERR);          msg_box (dlg, _("No subkey(s) found."), _("Key Edit"), MB_ERR);
1095          return NULL;          return NULL;
1096      }      }
1097                    
1098      rc  = listview_new( &lv );      listview_new (&lv, GetDlgItem (dlg, IDC_KEYEDIT_KEYLIST));
1099      if( rc )      for (i = 0; cols[i].fieldname != NULL; i++)
1100          BUG( dlg );          listview_add_column (lv, &cols[i]);
           
     lv->ctrl = GetDlgItem( dlg, IDC_KEYEDIT_KEYLIST );  
     for( i = 0; cols[i].fieldname != NULL; i++ )      
         listview_add_column( lv, &cols[i] );  
1101                    
1102      for( i = 0; i < nkeys; i++ ) {      for( i = 0; i < nkeys; i++ ) {
1103          listview_add_item( lv, "" );          listview_add_item( lv, "" );
1104          listview_add_sub_item( lv, 0, 1, "" );          listview_add_sub_item( lv, 0, 1, "" );
1105          memset( &lvi, 0, sizeof lvi );          memset( &lvi, 0, sizeof lvi );
1106          lvi.mask = LVIF_PARAM;            lvi.mask = LVIF_PARAM;  
1107          lvi.lParam = (LPARAM)key;          lvi.lParam = (LPARAM)k->ctx;
1108          if( ListView_SetItem( lv->ctrl, &lvi ) == FALSE )          if( ListView_SetItem( lv->ctrl, &lvi ) == FALSE )
1109              return NULL;              return NULL;
1110      }      }
1111                    
1112      listview_set_ext_style( lv );      listview_set_ext_style( lv );
1113      for( i = 0, sub = key->subkeys; i < nkeys; i++, sub = sub->next ) {      for( i = 0, sub = k->ctx->subkeys; i < nkeys; i++, sub = sub->next ) {
1114          memset( buf, 0, sizeof buf );          memset( buf, 0, sizeof buf );
1115    
1116          bits = sub->length;          bits = sub->length;
# Line 1176  static listview_ctrl_t Line 1164  static listview_ctrl_t
1164  userid_list_init (HWND dlg, winpt_key_t k)  userid_list_init (HWND dlg, winpt_key_t k)
1165  {  {
1166      listview_ctrl_t lv = NULL;      listview_ctrl_t lv = NULL;
     gpgme_key_t key;  
1167      gpgme_key_sig_t ks;      gpgme_key_sig_t ks;
1168      gpgme_user_id_t u;      struct native_uid_s *u;
1169      int nuids = 0, rc, j, u_attr;      int nuids = 0, j, u_attr;
1170      struct listview_column_s cols[] = {      struct listview_column_s cols[] = {
1171          {0,  72, (char *)_("Validity")},          {0,  72, (char *)_("Validity")},
1172          {1, 150, (char *)_("Name")},          {1, 150, (char *)_("Name")},
# Line 1188  userid_list_init (HWND dlg, winpt_key_t Line 1175  userid_list_init (HWND dlg, winpt_key_t
1175          {0, 0, 0}          {0, 0, 0}
1176      };          };    
1177      const char *attr;      const char *attr;
   
     if (get_pubkey (k->keyid, &key)) {  
         msg_box (dlg, _("Could not find key."), _("Key Edit"), MB_ERR);  
         return NULL;  
     }  
1178            
1179      nuids = count_userids (key);      nuids = count_userids (k->ctx);
1180      if (!nuids) {      if (!nuids) {
1181          msg_box (dlg, _("No user ID(s) found."), _("Key Edit"), MB_ERR);          msg_box (dlg, _("No user ID(s) found."), _("Key Edit"), MB_ERR);
1182          return NULL;          return NULL;
1183      }      }
1184                    
1185      rc = listview_new (&lv);      listview_new (&lv, GetDlgItem (dlg, IDC_KEYEDIT_UIDLIST));
     if (rc)  
         BUG (dlg);  
     lv->ctrl = GetDlgItem( dlg, IDC_KEYEDIT_UIDLIST );  
1186      for( j = 0; cols[j].fieldname != NULL; j++ )      for( j = 0; cols[j].fieldname != NULL; j++ )
1187          listview_add_column( lv, &cols[j] );          listview_add_column (lv, &cols[j]);
1188                    
1189      for( j = 0; j < nuids; j++ ) {                for (j = 0; j < nuids; j++) {
1190          listview_add_item( lv, " " );          listview_add_item (lv, " ");
1191          listview_add_sub_item( lv, 0, 1, " " );                  listview_add_sub_item (lv, 0, 1, " " );        
1192      }      }
1193    
1194      listview_set_ext_style (lv);      listview_set_ext_style (lv);
1195      for (j = 0, u=key->uids; j < nuids; u=u->next, j++) {      for (j = 0, u=k->ext->uids; j < nuids; u=u->next, j++) {
1196          if (u->revoked)          if (u->revoked)
1197              attr = _("Revoked");              attr = _("Revoked");
1198          else {          else {
1199              u_attr = (int)u->validity;              u_attr = (int)u->validity;
1200              attr = get_key_trust2 (NULL, u_attr, 0, 0);              attr = get_key_trust2 (NULL, u_attr, 0, 0);
1201          }          }
1202          listview_add_sub_item (lv, j, 0, (char *)attr);          listview_add_sub_item (lv, j, UID_COL_VALID, (char *)attr);
1203          /* XXX: add comment if available */          /* XXX: add comment if available */
1204          listview_add_sub_item (lv, j, 1,          listview_add_sub_item (lv, j, UID_COL_NAME,
1205                                 u->name? u->name : _("Invalid user ID"));                                 u->name? u->name : _("Invalid user ID"));
1206          if (u->email)          if (u->email)
1207              listview_add_sub_item (lv, j, 2, u->email);              listview_add_sub_item (lv, j, UID_COL_EMAIL, u->email);
1208    
1209          ks = get_selfsig (u, k->keyid, 1);          ks = get_selfsig (u->signatures, k->keyid, 1);
1210          if (ks)          if (ks)
1211              listview_add_sub_item (lv, j, 3, get_key_created (ks->timestamp));              listview_add_sub_item (lv, j, UID_COL_CREATION,
1212                                       get_key_created (ks->timestamp));
1213      }      }
1214      if( !k->key_pair ) {      if( !k->key_pair ) {
1215          CheckDlgButton( dlg, IDC_KEYUID_ADD, BST_INDETERMINATE );          CheckDlgButton (dlg, IDC_KEYUID_ADD, BST_INDETERMINATE);
1216          CheckDlgButton( dlg, IDC_KEYUID_REVOKE, BST_INDETERMINATE );              CheckDlgButton (dlg, IDC_KEYUID_REVOKE, BST_INDETERMINATE);
1217      }      }
1218      return lv;      return lv;
1219  }  }
# Line 1300  do_show_help (HWND dlg) Line 1280  do_show_help (HWND dlg)
1280           "SIGN      \t\tsign a user-id (exportable)\r\n"           "SIGN      \t\tsign a user-id (exportable)\r\n"
1281           "LSIGN     \t\tsign a user-id (non-exportable)\r\n"           "LSIGN     \t\tsign a user-id (non-exportable)\r\n"
1282           "CLEAN     \t\tremove unusable signatures from key\r\n"           "CLEAN     \t\tremove unusable signatures from key\r\n"
1283             "MINIMIZE  \t\tremove all signatures from key\r\n"
1284           ));           ));
1285      msg_box (dlg, helptext, _("Key Edit Help"), MB_OK);      msg_box (dlg, helptext, _("Key Edit Help"), MB_OK);
1286  }  }
# Line 1703  BOOL CALLBACK Line 1684  BOOL CALLBACK
1684  showpref_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  showpref_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
1685  {  {
1686      static keyedit_cb_t cb = NULL;      static keyedit_cb_t cb = NULL;
1687      gpg_uid_info_t inf=NULL;      gpg_uid_info_t inf=NULL, u;
1688      gpgme_key_t key;      gpgme_key_t key;
1689      char buf[128];      char buf[128];
1690      int pos;      int pos;
# Line 1714  showpref_dlg_proc (HWND dlg, UINT msg, W Line 1695  showpref_dlg_proc (HWND dlg, UINT msg, W
1695          if (!cb)          if (!cb)
1696              BUG (NULL);              BUG (NULL);
1697          key = (gpgme_key_t)cb->opaque;          key = (gpgme_key_t)cb->opaque;
1698          _snprintf (buf, sizeof (buf)-1, "%s <%s>",          listview_get_item_text (cb->lv, cb->lv_pos,
1699                      key->uids->name, key->uids->email);                                  UID_COL_EMAIL, buf, sizeof (buf)-1);
1700          SetDlgItemText (dlg, IDC_SHOWPREF_INFO, buf);          pos = do_find_userid (cb->keyid, buf, NULL, &inf);
1701          pos = do_find_userid (cb->keyid, key->uids->email, NULL, &inf);          if (pos < 0 || !inf) {
         if (inf) {  
             const char *prefs = inf->prefs;  
             if (prefs && *prefs) {  
                 if (parse_preflist (dlg, prefs) <= 0)  
                     pos = -1;  
             }  
             else  
                 pos = -1;  
1702              gpg_uid_info_release (inf);              gpg_uid_info_release (inf);
1703              if (pos == -1) {              EndDialog (dlg, FALSE);
1704                  msg_box (dlg, _("No preferences available."), _("Key Edit"), MB_ERR);              break;
1705                  EndDialog (dlg, TRUE);          }
1706            for (u=inf; u; u = u->next) {
1707                if (u->index == pos && u->prefs && *u->prefs) {
1708                    _snprintf (buf, sizeof (buf)-1, "%s", u->name);
1709                    SetDlgItemText (dlg, IDC_SHOWPREF_INFO, buf);
1710                    if (parse_preflist (dlg, u->prefs) <= 0)
1711                        pos = -1;
1712                    if (u->flags.mdc)
1713                        CheckDlgButton (dlg, IDC_SHOWPREF_MDC, BST_CHECKED);
1714                    break;
1715              }              }
1716              if (inf->flags.mdc)          }
1717                  CheckDlgButton (dlg, IDC_SHOWPREF_MDC, BST_CHECKED);          gpg_uid_info_release (inf);
1718            if (pos == -1) {        
1719                msg_box (dlg, _("No preferences available."), _("Key Edit"), MB_ERR);
1720                EndDialog (dlg, FALSE);
1721                break;
1722          }          }
1723          SetDlgItemText (dlg, IDC_SHOWPREF_MDC, _("MDC feature"));          SetDlgItemText (dlg, IDC_SHOWPREF_MDC, _("MDC feature"));
1724          SetDlgItemText (dlg, IDC_SHOWPREF_PREFINF, _("Preferences"));          SetDlgItemText (dlg, IDC_SHOWPREF_PREFINF, _("Preferences"));
# Line 1746  showpref_dlg_proc (HWND dlg, UINT msg, W Line 1732  showpref_dlg_proc (HWND dlg, UINT msg, W
1732          case IDOK:          case IDOK:
1733              EndDialog (dlg, TRUE);              EndDialog (dlg, TRUE);
1734              break;              break;
1735    
1736            case IDCANCEL:
1737                EndDialog (dlg, FALSE);
1738                break;
1739          }          }
1740          break;          break;
1741      }      }
# Line 1757  static int Line 1747  static int
1747  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)
1748  {  {
1749      struct keyedit_cb_s cb;      struct keyedit_cb_s cb;
1750        char status[32];
1751    
1752      if (k->is_v3)      if (k->is_v3)
1753          return TRUE;          return TRUE;
# Line 1765  do_editkey_showpref (winpt_key_t k, HWND Line 1756  do_editkey_showpref (winpt_key_t k, HWND
1756          msg_box (dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR);          msg_box (dlg, _("Please select a user ID."), _("Key Edit"), MB_ERR);
1757          return FALSE;          return FALSE;
1758      }      }
   
1759      memset (&cb, 0, sizeof (cb));      memset (&cb, 0, sizeof (cb));
1760      cb.opaque = k->ctx;      cb.opaque = k->ctx;
1761      cb.keyid = k->keyid;      cb.keyid = k->keyid;
1762        cb.lv = lv;
1763        cb.lv_pos = listview_get_curr_pos (lv);
1764    
1765        listview_get_item_text (lv, cb.lv_pos, UID_COL_VALID,
1766                                status, sizeof (status)-1);
1767        if (!strcmp (status, _("Revoked")))
1768            return TRUE;
1769        
1770      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_SHOWPREF, dlg,      DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT_SHOWPREF, dlg,
1771                      showpref_dlg_proc, (LPARAM)&cb);                      showpref_dlg_proc, (LPARAM)&cb);
1772      return TRUE;      return TRUE;
# Line 1918  get_default_key (void) Line 1916  get_default_key (void)
1916    
1917    
1918  static void  static void
1919    do_editkey_minimize (winpt_key_t k, HWND dlg)
1920    {
1921        gpgme_error_t err;
1922        GpgKeyEdit *ke;
1923    
1924        ke = create_GpgKeyEdit (k->keyid);
1925        err = ke->minimizeKey ();
1926        if (err)
1927            msg_box (dlg, gpgme_strerror (err), _("Key Edit"), MB_ERR);
1928        else {
1929            msg_box (dlg, _("Finished to compact key."), _("Key Edit"), MB_OK);
1930            k->update = 1;
1931        }
1932        delete ke;
1933    }
1934    
1935    
1936    static void
1937  do_editkey_clean (winpt_key_t k, HWND dlg)  do_editkey_clean (winpt_key_t k, HWND dlg)
1938  {  {
1939      gpgme_error_t err;      gpgme_error_t err;
# Line 2018  lookup_cmd (HWND dlg) Line 2034  lookup_cmd (HWND dlg)
2034  }  }
2035    
2036    
2037    
2038    gpgme_error_t key_get_revokers (winpt_key_t key, int reload,
2039                                    gpg_desig_rev_t *r_rev);
2040    
2041    /* Check if the key supports designated revokers and if
2042        secret keys exist to generate such a revoke cert. */
2043    static bool
2044    check_desig_rev (winpt_key_t key)
2045    {
2046        gpg_desig_rev_t rev, u;
2047        struct winpt_key_s sk;
2048    
2049        if (!key->ext->gloflags.has_desig_rev)
2050            return false;
2051        key_get_revokers (key, 0, &rev);
2052        for (u = rev; u; u = u->next) {
2053            memset (&sk, 0, sizeof (sk));
2054            if (!winpt_get_seckey (u->fpr+32, &sk))
2055                return true;
2056        }
2057        return false;
2058    }
2059    
2060    
2061    /* Use the gpg --desig-revoker command to create a revocation
2062       cert for a key that lists our key as a designated revoker. */
2063    static void
2064    gen_desig_revoke_cert (winpt_key_t key, HWND dlg)
2065    {
2066        const char *warn;
2067        char *inf, *p;
2068        int id;
2069    
2070        inf = km_key_get_info (key, 0);
2071        warn = _("Your keys is listed as a designated revoker for the key\n\n"
2072                 "%s\n\n"
2073                 "Are you sure you want to create a revocation certificate\n"
2074                 "which allow to revoke the key listed above?");
2075        p = new char[strlen (inf)+1+strlen (warn)+1];
2076        sprintf (p, warn, inf);
2077        free_if_alloc (inf);
2078    
2079        id = msg_box (dlg, p, _("Key Edit"), MB_YESNO|MB_ICONWARNING);
2080        free_if_alloc (p);
2081        if (id == IDNO)
2082            return;
2083    
2084        key->internal = 1;
2085        DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYREVOKE, dlg,
2086                        key_revoke_dlg_proc, (LPARAM)key);
2087    }
2088    
2089    
2090  /* Dialog box procedure for the edit key dialog. */  /* Dialog box procedure for the edit key dialog. */
2091  BOOL CALLBACK  BOOL CALLBACK
2092  keyedit_main_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  keyedit_main_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
# Line 2072  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2141  keyedit_main_dlg_proc (HWND dlg, UINT ms
2141          SetDlgItemText (dlg, IDC_KEYEDIT_CMDINF, _("Command>"));          SetDlgItemText (dlg, IDC_KEYEDIT_CMDINF, _("Command>"));
2142          SetDlgItemText (dlg, IDCANCEL, _("&Close"));          SetDlgItemText (dlg, IDCANCEL, _("&Close"));
2143          SetDlgItemText (dlg, IDC_KEYEDIT_HELP, _("&Help"));          SetDlgItemText (dlg, IDC_KEYEDIT_HELP, _("&Help"));
2144            SetDlgItemText (dlg, IDC_KEYEDIT_REVOKE, _("&Revoke..."));
2145            if (!check_desig_rev (k))
2146                ShowWindow (GetDlgItem (dlg, IDC_KEYEDIT_REVOKE), SW_HIDE);
2147          SetWindowText (dlg, _("Key Edit"));          SetWindowText (dlg, _("Key Edit"));
2148          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
2149          center_window (dlg, NULL);          center_window (dlg, NULL);
# Line 2132  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2204  keyedit_main_dlg_proc (HWND dlg, UINT ms
2204                                                      lvuid, cmd);                                                      lvuid, cmd);
2205                              break;                              break;
2206              case CMD_CLEAN: do_editkey_clean (k, dlg);              case CMD_CLEAN: do_editkey_clean (k, dlg);
2207                case CMD_MINIMIZE: do_editkey_minimize (k, dlg);
2208              }              }
2209              break;              break;
2210                
2211          case IDCANCEL:          case IDCANCEL:
2212              EndDialog (dlg, FALSE);              EndDialog (dlg, FALSE);
2213              break;              break;
# Line 2142  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2215  keyedit_main_dlg_proc (HWND dlg, UINT ms
2215          case IDC_KEYEDIT_HELP:          case IDC_KEYEDIT_HELP:
2216              do_show_help (dlg);              do_show_help (dlg);
2217              break;              break;
2218    
2219            case IDC_KEYEDIT_REVOKE:
2220                gen_desig_revoke_cert (k, dlg);
2221                break;
2222          }          }
2223          break;          break;
2224      }      }

Legend:
Removed from v.205  
changed lines
  Added in v.211

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26