120 |
|
|
121 |
/* Key edit callback context. */ |
/* Key edit callback context. */ |
122 |
struct keyedit_cb_s { |
struct keyedit_cb_s { |
123 |
const char *keyid; |
HWND parent; /* parent window handle. */ |
124 |
const char *pass; |
const char *keyid; /* key ID of the key. */ |
125 |
|
const char *pass; /* pointer to the passphrase. */ |
126 |
listview_ctrl_t lv; |
listview_ctrl_t lv; |
127 |
int lv_pos; |
int lv_pos; |
128 |
void *opaque; |
void *opaque; |
210 |
const char *utf8_name, const char *email, |
const char *utf8_name, const char *email, |
211 |
const char *utf8_comment) |
const char *utf8_comment) |
212 |
{ |
{ |
213 |
char *p; |
char *p, *native; |
214 |
size_t n; |
size_t n; |
215 |
|
|
216 |
n = strlen (utf8_name) + strlen (email) + 16; |
n = strlen (utf8_name) + strlen (email) + 16; |
219 |
p = new char[n+1]; |
p = new char[n+1]; |
220 |
if (!p) |
if (!p) |
221 |
BUG (NULL); |
BUG (NULL); |
222 |
if (utf8_comment) { |
if (utf8_comment) |
223 |
sprintf (p, "%s (%s)", utf8_name, utf8_comment); |
sprintf (p, "%s (%s)", utf8_name, utf8_comment); |
|
} |
|
224 |
else |
else |
225 |
sprintf (p, "%s", utf8_name); |
sprintf (p, "%s", utf8_name); |
226 |
|
native = utf8_to_native (p); |
227 |
|
free_if_alloc (p); |
228 |
|
|
229 |
listview_add_item (lv, ""); |
listview_add_item (lv, ""); |
230 |
listview_add_sub_item (lv, 0, 0, _("Ultimate" )); |
listview_add_sub_item (lv, 0, UID_COL_VALID, _("Ultimate" )); |
231 |
listview_add_sub_item (lv, 0, 1, p); |
listview_add_sub_item (lv, 0, UID_COL_NAME, native); |
232 |
listview_add_sub_item (lv, 0, 2, email && *email? email : ""); |
listview_add_sub_item (lv, 0, UID_COL_EMAIL, email && *email? email : ""); |
233 |
listview_add_sub_item (lv, 0, 3, get_key_created (time (NULL))); |
listview_add_sub_item (lv, 0, UID_COL_CREATION, get_key_created (time (NULL))); |
234 |
free_if_alloc (p); |
free_if_alloc (native); |
235 |
} |
} |
236 |
|
|
237 |
|
|
243 |
int n; |
int n; |
244 |
|
|
245 |
expdate = keygen->expire? get_key_expire_date (keygen->expire) : _("Never"); |
expdate = keygen->expire? get_key_expire_date (keygen->expire) : _("Never"); |
246 |
_snprintf (info, sizeof info-1, "%d-bit %s", |
_snprintf (info, sizeof (info)-1, "%d-bit %s", |
247 |
keygen->bits, |
keygen->bits, |
248 |
get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo)); |
get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo)); |
249 |
_snprintf (keyid, sizeof keyid-1, "0x%s", keygen->fpr+8); |
_snprintf (keyid, sizeof (keyid)-1, "0x%s", keygen->fpr+8); |
250 |
s = get_key_created (time (NULL)); |
s = get_key_created (time (NULL)); |
251 |
n = listview_count_items (lv, 0); |
n = listview_count_items (lv, 0); |
252 |
listview_add_item_pos (lv, n); |
listview_add_item_pos (lv, n); |
390 |
msg_box( dlg, _("Please enter a file name."), _("Add Photo"), MB_ERR); |
msg_box( dlg, _("Please enter a file name."), _("Add Photo"), MB_ERR); |
391 |
return FALSE; |
return FALSE; |
392 |
} |
} |
393 |
if (get_file_size (file) == 0 || get_file_size (file) > 6144 ) { |
if (get_file_size (file) == 0 || get_file_size (file) > 6144) { |
394 |
id = msg_box (dlg, _("The JPEG is really large.\n" |
id = msg_box (dlg, _("The JPEG is really large.\n" |
395 |
"Are you sure you want to use it?"), |
"Are you sure you want to use it?"), |
396 |
_("Add Photo"), MB_YESNO|MB_INFO); |
_("Add Photo"), MB_YESNO|MB_INFO); |
448 |
SetDlgItemText (dlg, IDCANCEL, _("&Cancel")); |
SetDlgItemText (dlg, IDCANCEL, _("&Cancel")); |
449 |
SetWindowText (dlg, _("Add Revoker")); |
SetWindowText (dlg, _("Add Revoker")); |
450 |
SetForegroundWindow (dlg); |
SetForegroundWindow (dlg); |
451 |
|
center_window (dlg, cb->parent); |
452 |
break; |
break; |
453 |
|
|
454 |
case WM_SYSCOMMAND: |
case WM_SYSCOMMAND: |
518 |
SetDlgItemText (dlg, IDC_ADDUID_INFCOMMENT, _("&Comment")); |
SetDlgItemText (dlg, IDC_ADDUID_INFCOMMENT, _("&Comment")); |
519 |
SetDlgItemText (dlg, IDCANCEL, _("&Cancel")); |
SetDlgItemText (dlg, IDCANCEL, _("&Cancel")); |
520 |
SetForegroundWindow (dlg); |
SetForegroundWindow (dlg); |
521 |
|
center_window (dlg, ctx->parent); |
522 |
return FALSE; |
return FALSE; |
523 |
|
|
524 |
case WM_SYSCOMMAND: |
case WM_SYSCOMMAND: |
663 |
EnableWindow (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), FALSE); |
EnableWindow (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), FALSE); |
664 |
init_keysize_box (dlg, IDC_ADDSUBKEY_SIZE); |
init_keysize_box (dlg, IDC_ADDSUBKEY_SIZE); |
665 |
SetForegroundWindow (dlg); |
SetForegroundWindow (dlg); |
666 |
|
center_window (dlg, ctx->parent); |
667 |
return FALSE; |
return FALSE; |
668 |
|
|
669 |
case WM_SYSCOMMAND: |
case WM_SYSCOMMAND: |
778 |
|
|
779 |
memset (&keygen, 0, sizeof (keygen)); |
memset (&keygen, 0, sizeof (keygen)); |
780 |
memset (&cb, 0, sizeof cb); |
memset (&cb, 0, sizeof cb); |
781 |
|
cb.parent = dlg; |
782 |
cb.opaque = &keygen; |
cb.opaque = &keygen; |
783 |
cb.is_protected = k->is_protected; |
cb.is_protected = k->is_protected; |
784 |
cb.pass = pass; |
cb.pass = pass; |
924 |
if (cancel) |
if (cancel) |
925 |
return FALSE; |
return FALSE; |
926 |
} |
} |
927 |
|
cb.parent = dlg; |
928 |
cb.pass = pass; |
cb.pass = pass; |
929 |
cb.keyid = k->keyid; |
cb.keyid = k->keyid; |
930 |
|
|
957 |
} |
} |
958 |
|
|
959 |
memset (&cb, 0, sizeof (cb)); |
memset (&cb, 0, sizeof (cb)); |
960 |
|
cb.parent = dlg; |
961 |
cb.is_protected = k->is_protected; |
cb.is_protected = k->is_protected; |
962 |
cb.keyid = k->keyid; |
cb.keyid = k->keyid; |
963 |
cb.pass = pass; |
cb.pass = pass; |
1046 |
} |
} |
1047 |
new_pass = request_passphrase2 (_("New Passphrase" ), 1, &cancel); |
new_pass = request_passphrase2 (_("New Passphrase" ), 1, &cancel); |
1048 |
if (cancel) { |
if (cancel) { |
1049 |
free_if_alloc (old_pass); |
sfree_if_alloc (old_pass); |
1050 |
return FALSE; |
return FALSE; |
1051 |
} |
} |
1052 |
|
|
1053 |
|
if (strlen (new_pass) == 0) { |
1054 |
|
cancel = msg_box (dlg, _("Are you sure that you really don't want a passphrase?\n" |
1055 |
|
"This is propably a bad idea, still proceed?"), |
1056 |
|
_("Key Edit"), MB_WARN_ASK); |
1057 |
|
if (cancel != IDYES) { |
1058 |
|
sfree_if_alloc (old_pass); |
1059 |
|
sfree_if_alloc (new_pass); |
1060 |
|
return FALSE; |
1061 |
|
} |
1062 |
|
} |
1063 |
|
|
1064 |
if (is_8bit_string (new_pass)) { |
if (is_8bit_string (new_pass)) { |
1065 |
msg_box (dlg, _("The passphrase contains 8-bit characters.\n" |
msg_box (dlg, _("The passphrase contains 8-bit characters.\n" |
1066 |
"It is not suggested to use charset specific characters."), |
"It is not suggested to use charset specific characters."), |
1067 |
_("Key Edit"), MB_ERR); |
_("Key Edit"), MB_ERR); |
1068 |
free_if_alloc (old_pass); |
sfree_if_alloc (old_pass); |
1069 |
free_if_alloc (new_pass); |
sfree_if_alloc (new_pass); |
1070 |
return FALSE; |
return FALSE; |
1071 |
} |
} |
1072 |
|
|
1073 |
ke = create_GpgKeyEdit (k->keyid); |
ke = create_GpgKeyEdit (k->keyid); |
1074 |
ke->setPassphrase (k->is_protected? old_pass : NULL); |
ke->setPassphrase (k->is_protected? old_pass : NULL); |
1075 |
err = ke->changePassphrase (new_pass, 0); |
if (!k->is_protected) |
1076 |
|
ke->setNoPassphrase (true); |
1077 |
|
err = ke->changePassphrase (new_pass, 1); |
1078 |
if (err) |
if (err) |
1079 |
msg_box (dlg, gpgme_strerror (err), _("Change Passwd"), MB_ERR); |
msg_box (dlg, gpgme_strerror (err), _("Change Passwd"), MB_ERR); |
1080 |
else |
else |
1120 |
for (i = 0; cols[i].fieldname != NULL; i++) |
for (i = 0; cols[i].fieldname != NULL; i++) |
1121 |
listview_add_column (lv, &cols[i]); |
listview_add_column (lv, &cols[i]); |
1122 |
|
|
1123 |
for( i = 0; i < nkeys; i++ ) { |
for (i = 0; i < nkeys; i++) { |
1124 |
listview_add_item( lv, "" ); |
listview_add_item (lv, ""); |
1125 |
listview_add_sub_item( lv, 0, 1, "" ); |
listview_add_sub_item (lv, 0, 1, ""); |
1126 |
memset( &lvi, 0, sizeof lvi ); |
memset (&lvi, 0, sizeof (lvi)); |
1127 |
lvi.mask = LVIF_PARAM; |
lvi.mask = LVIF_PARAM; |
1128 |
lvi.lParam = (LPARAM)k->ctx; |
lvi.lParam = (LPARAM)k->ext; |
1129 |
if( ListView_SetItem( lv->ctrl, &lvi ) == FALSE ) |
if( ListView_SetItem (lv->ctrl, &lvi) == FALSE) |
1130 |
return NULL; |
return NULL; |
1131 |
} |
} |
1132 |
|
|
1133 |
listview_set_ext_style( lv ); |
listview_set_ext_style( lv ); |
1746 |
SetDlgItemText (dlg, IDC_SHOWPREF_UIDHINT, _("user ID:")); |
SetDlgItemText (dlg, IDC_SHOWPREF_UIDHINT, _("user ID:")); |
1747 |
SetWindowText (dlg, _("Key Preferences")); |
SetWindowText (dlg, _("Key Preferences")); |
1748 |
SetForegroundWindow (dlg); |
SetForegroundWindow (dlg); |
1749 |
|
center_window (dlg, cb->parent); |
1750 |
break; |
break; |
1751 |
|
|
1752 |
case WM_COMMAND: |
case WM_COMMAND: |
1779 |
return FALSE; |
return FALSE; |
1780 |
} |
} |
1781 |
memset (&cb, 0, sizeof (cb)); |
memset (&cb, 0, sizeof (cb)); |
1782 |
|
cb.parent = dlg; |
1783 |
cb.opaque = k->ctx; |
cb.opaque = k->ctx; |
1784 |
cb.keyid = k->keyid; |
cb.keyid = k->keyid; |
1785 |
cb.lv = lv; |
cb.lv = lv; |
2186 |
case WM_NOTIFY: |
case WM_NOTIFY: |
2187 |
NMHDR * notify; |
NMHDR * notify; |
2188 |
notify = (NMHDR *)lparam; |
notify = (NMHDR *)lparam; |
2189 |
if (notify && notify->code == NM_DBLCLK && |
if (!notify || notify->idFrom != IDC_KEYEDIT_UIDLIST) |
2190 |
notify->idFrom == IDC_KEYEDIT_UIDLIST) |
break; |
2191 |
|
if (notify->code == NM_DBLCLK) |
2192 |
do_editkey_showpref (k, dlg, lvuid); |
do_editkey_showpref (k, dlg, lvuid); |
2193 |
|
if (notify->code == NM_RCLICK && k->key_pair) { |
2194 |
|
HMENU hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYEDIT)); |
2195 |
|
HMENU popup = GetSubMenu (hm, 0); |
2196 |
|
POINT p; |
2197 |
|
|
2198 |
|
GetCursorPos (&p); |
2199 |
|
TrackPopupMenu (popup, TPM_RIGHTALIGN, p.x, p.y, 0, dlg, NULL); |
2200 |
|
DestroyMenu (hm); |
2201 |
|
DestroyMenu (popup); |
2202 |
|
} |
2203 |
break; |
break; |
2204 |
|
|
2205 |
case WM_COMMAND: |
case WM_COMMAND: |
2206 |
switch( LOWORD( wparam ) ) { |
switch (LOWORD (wparam)) { |
2207 |
case IDOK: |
case IDOK: |
2208 |
cmd = lookup_cmd (dlg); |
cmd = lookup_cmd (dlg); |
2209 |
if (cmd == LB_ERR) { |
if (cmd == LB_ERR) { |
2237 |
case CMD_LSIGN: do_editkey_sign_userid (k, dlg, |
case CMD_LSIGN: do_editkey_sign_userid (k, dlg, |
2238 |
lvuid, cmd); |
lvuid, cmd); |
2239 |
break; |
break; |
2240 |
case CMD_CLEAN: do_editkey_clean (k, dlg); |
case CMD_CLEAN: do_editkey_clean (k, dlg); break; |
2241 |
case CMD_MINIMIZE: do_editkey_minimize (k, dlg); |
case CMD_MINIMIZE: do_editkey_minimize (k, dlg); break; |
2242 |
} |
} |
2243 |
break; |
break; |
2244 |
|
|
2245 |
case IDCANCEL: |
case IDCANCEL: |
2246 |
EndDialog (dlg, FALSE); |
EndDialog (dlg, FALSE); |
2247 |
break; |
break; |
2253 |
case IDC_KEYEDIT_REVOKE: |
case IDC_KEYEDIT_REVOKE: |
2254 |
gen_desig_revoke_cert (k, dlg); |
gen_desig_revoke_cert (k, dlg); |
2255 |
break; |
break; |
2256 |
|
|
2257 |
|
case ID_KEYEDIT_UID_PRIM: |
2258 |
|
do_editkey_primary (k, dlg, lvuid); |
2259 |
|
break; |
2260 |
|
|
2261 |
|
case ID_KEYEDIT_UID_DEL: |
2262 |
|
do_editkey_deluid (k, dlg, lvuid); |
2263 |
|
break; |
2264 |
|
|
2265 |
|
case ID_KEYEDIT_UID_REV: |
2266 |
|
do_editkey_revuid (k, dlg, lvuid); |
2267 |
|
break; |
2268 |
} |
} |
2269 |
break; |
break; |
2270 |
} |
} |