495 |
static void |
static void |
496 |
menu_gpg_readonly (HWND dlg, HMENU hm, int id) |
menu_gpg_readonly (HWND dlg, HMENU hm, int id) |
497 |
{ |
{ |
498 |
int key_resids[] = |
int key_resids[] = { |
|
{ |
|
499 |
ID_KEYMISC_SIGN, |
ID_KEYMISC_SIGN, |
500 |
ID_KEYMISC_DELETE, |
ID_KEYMISC_DELETE, |
501 |
ID_KEYMISC_REVCERT, |
ID_KEYMISC_REVCERT, |
508 |
ID_KEYMISC_NEWKEY, |
ID_KEYMISC_NEWKEY, |
509 |
0, |
0, |
510 |
}; |
}; |
511 |
int edit_resids[] = |
int edit_resids[] = { |
|
{ |
|
512 |
ID_KEYMISC_PASTE, |
ID_KEYMISC_PASTE, |
513 |
ID_KEYMISC_OT, |
ID_KEYMISC_OT, |
514 |
ID_KEYMISC_EDITKEY, |
ID_KEYMISC_EDITKEY, |
520 |
|
|
521 |
if (gpg_read_only == 0) |
if (gpg_read_only == 0) |
522 |
return; |
return; |
523 |
switch (id) |
switch (id) { |
|
{ |
|
524 |
case 0: return; |
case 0: return; |
525 |
case 3: resids = key_resids; break; |
case 3: resids = key_resids; break; |
526 |
case 1: resids = edit_resids;break; |
case 1: resids = edit_resids;break; |
543 |
HMENU hm; |
HMENU hm; |
544 |
gpgme_keycache_t c; |
gpgme_keycache_t c; |
545 |
gpgme_key_t pk; |
gpgme_key_t pk; |
546 |
km_group_cb_s gcb; |
km_group_cb_s gcb; |
547 |
|
struct genkey_s genkey; |
548 |
struct winpt_key_s k = {0}; |
struct winpt_key_s k = {0}; |
549 |
struct http_file_s * http; |
struct URL_ctx_s *url; |
550 |
refresh_cache_s rcs = {0}; |
refresh_cache_s rcs = {0}; |
551 |
char keyid[48], uid[128], type[32], * q; |
char keyid[48], uid[128], type[32], * q; |
552 |
const char *t, * host; |
const char *t, * host; |
776 |
set_menu_text( popup, ID_KEYCTX_RECVFROM, _("Refresh from Keyserver") ); |
set_menu_text( popup, ID_KEYCTX_RECVFROM, _("Refresh from Keyserver") ); |
777 |
#endif |
#endif |
778 |
idx = listview_get_curr_pos (kmi->lv); |
idx = listview_get_curr_pos (kmi->lv); |
779 |
if (km_check_for_seckey (kmi->lv, idx, &i) && i == 0) |
if (km_check_for_seckey (kmi->lv, idx, &i) && i == 0) { |
|
{ |
|
780 |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
781 |
set_menu_state (popup, ID_KEYCTX_MAXTRUST, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_MAXTRUST, MF_ENABLED); |
782 |
} |
} |
783 |
if( !km_check_for_seckey( kmi->lv, idx, NULL ) ) { |
if (!km_check_for_seckey (kmi->lv, idx, NULL)) { |
784 |
set_menu_state( popup, ID_KEYCTX_REV, MF_DISABLED|MF_GRAYED ); |
set_menu_state( popup, ID_KEYCTX_REV, MF_DISABLED|MF_GRAYED ); |
785 |
set_menu_state( popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED ); |
set_menu_state( popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED ); |
786 |
set_menu_state( popup, ID_KEYCTX_ADDUID, MF_DISABLED|MF_GRAYED ); |
set_menu_state( popup, ID_KEYCTX_ADDUID, MF_DISABLED|MF_GRAYED ); |
793 |
{ |
{ |
794 |
/* PGP 2 keys, version 3 have no no support for photo-id's, |
/* PGP 2 keys, version 3 have no no support for photo-id's, |
795 |
designated revokers and secondary keys. */ |
designated revokers and secondary keys. */ |
796 |
set_menu_state( popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED ); |
set_menu_state (popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED); |
797 |
set_menu_state( popup, ID_KEYCTX_ADDREV, MF_DISABLED|MF_GRAYED ); |
set_menu_state (popup, ID_KEYCTX_ADDREV, MF_DISABLED|MF_GRAYED); |
798 |
set_menu_state( popup, ID_KEYCTX_ADDPHOTO, MF_DISABLED|MF_GRAYED ); |
set_menu_state (popup, ID_KEYCTX_ADDPHOTO, MF_DISABLED|MF_GRAYED); |
799 |
} |
} |
800 |
if( km_get_key_status( kmi->lv, idx ) & KM_FLAG_DISABLED ) |
if( km_get_key_status( kmi->lv, idx ) & KM_FLAG_DISABLED ) |
801 |
set_menu_state( popup, ID_KEYCTX_DISABLE, MF_DISABLED|MF_GRAYED ); |
set_menu_state( popup, ID_KEYCTX_DISABLE, MF_DISABLED|MF_GRAYED ); |
943 |
} |
} |
944 |
|
|
945 |
q = km_quote_uid (uid); |
q = km_quote_uid (uid); |
946 |
|
memset (&k, 0, sizeof (k)); |
947 |
k.key_pair = 1; |
k.key_pair = 1; |
948 |
k.keyid = keyid; |
k.keyid = keyid; |
949 |
k.uid = q; |
k.uid = q; |
966 |
msg_box( dlg, _("It does not make any sense with a key pair!"), _("Key Manager"), MB_OK ); |
msg_box( dlg, _("It does not make any sense with a key pair!"), _("Key Manager"), MB_OK ); |
967 |
return FALSE; |
return FALSE; |
968 |
} |
} |
969 |
|
memset (&k, 0, sizeof (k)); |
970 |
k.keyid = keyid; |
k.keyid = keyid; |
971 |
k.uid = uid; |
k.uid = uid; |
972 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYTRUST, dlg, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYTRUST, dlg, |
980 |
msg_box( dlg, _("Please select a key."), _("Key Manager"), MB_ERR ); |
msg_box( dlg, _("Please select a key."), _("Key Manager"), MB_ERR ); |
981 |
return FALSE; |
return FALSE; |
982 |
} |
} |
983 |
listview_get_item_text( kmi->lv, idx, 0, uid, sizeof uid-1 ); |
listview_get_item_text (kmi->lv, idx, 0, uid, DIM (uid)-1); |
984 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid-1 ); |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
985 |
|
memset (&k, 0, sizeof (k)); |
986 |
k.keyid = keyid; |
k.keyid = keyid; |
987 |
k.uid = uid; |
k.uid = uid; |
988 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYSIG, dlg, |
dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYSIG, dlg, |
989 |
keysig_dlg_proc, (LPARAM)&k, |
keysig_dlg_proc, (LPARAM)&k, |
990 |
_("Key Signature List" ), IDS_WINPT_KEYSIG ); |
_("Key Signature List" ), IDS_WINPT_KEYSIG); |
991 |
return TRUE; |
return TRUE; |
992 |
|
|
993 |
case ID_KEYMISC_PROPS: |
case ID_KEYMISC_PROPS: |
998 |
} |
} |
999 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid -1 ); |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid -1 ); |
1000 |
listview_get_item_text( kmi->lv, idx, 2, type, sizeof type -1 ); |
listview_get_item_text( kmi->lv, idx, 2, type, sizeof type -1 ); |
1001 |
|
memset (&k, 0, sizeof (k)); |
1002 |
k.key_pair = 0; |
k.key_pair = 0; |
1003 |
k.keyid = keyid; |
k.keyid = keyid; |
1004 |
if( !strcmp( type, "pub/sec" ) || !strcmp( type, "pub/crd" ) ) |
if( !strcmp( type, "pub/sec" ) || !strcmp( type, "pub/crd" ) ) |
1052 |
return TRUE; |
return TRUE; |
1053 |
|
|
1054 |
case ID_KEYMISC_NEWKEY: |
case ID_KEYMISC_NEWKEY: |
1055 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYGEN, dlg, |
memset (&genkey, 0, sizeof (genkey)); |
1056 |
keygen_dlg_proc, NULL, _("Key Generation"), |
dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYGEN, dlg, |
1057 |
IDS_WINPT_KEYGEN ); |
keygen_dlg_proc, (LPARAM)&genkey, _("Key Generation"), |
1058 |
if( keycache_get_reload( ) ) |
IDS_WINPT_KEYGEN); |
1059 |
send_cmd_id( dlg, ID_KEYMISC_RECACHE ); |
if (genkey.newkey) |
1060 |
|
keylist_add_key (kmi->lv, KEYLIST_LIST, genkey.newkey); |
1061 |
return TRUE; |
return TRUE; |
1062 |
|
|
1063 |
case ID_KEYMISC_CARDNEW: |
case ID_KEYMISC_CARDNEW: |
1073 |
return TRUE; |
return TRUE; |
1074 |
|
|
1075 |
case ID_KEYMISC_KEYWIZARD: |
case ID_KEYMISC_KEYWIZARD: |
1076 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYWIZARD, dlg, |
memset (&genkey, 0, sizeof (genkey)); |
1077 |
keygen_wizard_dlg_proc, NULL, _("Key Generation Wizard"), |
dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYWIZARD, dlg, |
1078 |
IDS_WINPT_KEYWIZARD ); |
keygen_wizard_dlg_proc, (LPARAM)&genkey, _("Key Generation Wizard"), |
1079 |
if( keycache_get_reload() ) |
IDS_WINPT_KEYWIZARD); |
1080 |
send_cmd_id( dlg, ID_KEYMISC_RECACHE ); |
if (genkey.newkey) |
1081 |
|
keylist_add_key (kmi->lv, KEYLIST_LIST, genkey.newkey); |
1082 |
return TRUE; |
return TRUE; |
1083 |
|
|
1084 |
case ID_KEYMISC_SENDRECV: |
case ID_KEYMISC_SENDRECV: |
1106 |
return TRUE; |
return TRUE; |
1107 |
|
|
1108 |
case ID_KEYMISC_IMPORT_HTTP: |
case ID_KEYMISC_IMPORT_HTTP: |
1109 |
http = (struct http_file_s *)get_http_file_dlg (dlg); |
url = (struct URL_ctx_s*)get_http_file_dlg (dlg); |
1110 |
if (http->cancel == 0) |
if (url->cancel == 0) |
1111 |
km_http_import (dlg, http->url); |
km_http_import (dlg, url->url); |
1112 |
delete http; |
delete url; url=NULL; |
1113 |
break; |
break; |
1114 |
|
|
1115 |
case ID_KEYMISC_EXPORT: |
case ID_KEYMISC_EXPORT: |
1190 |
break; |
break; |
1191 |
listview_get_item_text (kmi->lv, idx, 1, keyid, sizeof (keyid)-1); |
listview_get_item_text (kmi->lv, idx, 1, keyid, sizeof (keyid)-1); |
1192 |
/* XXX: pub/crd = secret key does not work */ |
/* XXX: pub/crd = secret key does not work */ |
1193 |
|
memset (&k, 0, sizeof (k)); |
1194 |
k.is_protected = km_check_if_protected (kmi->lv, idx); |
k.is_protected = km_check_if_protected (kmi->lv, idx); |
1195 |
k.key_pair = km_check_for_seckey (kmi->lv, idx, NULL); |
k.key_pair = km_check_for_seckey (kmi->lv, idx, NULL); |
1196 |
k.keyid = keyid; |
k.keyid = keyid; |
1197 |
|
k.is_v3 = km_key_is_v3 (kmi->lv, idx); |
1198 |
k.flags = km_get_key_status (kmi->lv, idx); |
k.flags = km_get_key_status (kmi->lv, idx); |
1199 |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT, dlg, |
dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_KEYEDIT, dlg, |
1200 |
keyedit_main_dlg_proc, (LPARAM)&k, |
keyedit_main_dlg_proc, (LPARAM)&k, |
1226 |
break; |
break; |
1227 |
|
|
1228 |
case ID_KEYCTX_SETPREFKS: |
case ID_KEYCTX_SETPREFKS: |
1229 |
/* XXX: todo */ |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM(keyid)-1); |
1230 |
|
memset (&k, 0, sizeof (k)); |
1231 |
|
k.keyid = keyid; |
1232 |
|
keyedit_set_pref_keyserver (&k, dlg); |
1233 |
break; |
break; |
1234 |
|
|
1235 |
case ID_KEYMISC_REFRESH_KEYS: |
case ID_KEYMISC_REFRESH_KEYS: |
1236 |
if (listview_count_items (kmi->lv, 1) == 0) |
if (listview_count_items (kmi->lv, 1) == 0) { |
|
{ |
|
1237 |
msg_box (dlg, _("No key was selected, select all by default."), _("Key Manager"), MB_INFO); |
msg_box (dlg, _("No key was selected, select all by default."), _("Key Manager"), MB_INFO); |
1238 |
listview_select_all (kmi->lv); |
listview_select_all (kmi->lv); |
1239 |
} |
} |
1276 |
|
|
1277 |
case ID_KEYCTX_ADDKEY: |
case ID_KEYCTX_ADDKEY: |
1278 |
idx = listview_get_curr_pos( kmi->lv ); |
idx = listview_get_curr_pos( kmi->lv ); |
1279 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid - 1 ); |
listview_get_item_text( kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
1280 |
|
memset (&k, 0, sizeof (k)); |
1281 |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
1282 |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
1283 |
k.keyid = keyid; |
k.keyid = keyid; |
1286 |
|
|
1287 |
case ID_KEYCTX_ADDUID: |
case ID_KEYCTX_ADDUID: |
1288 |
idx = listview_get_curr_pos( kmi->lv ); |
idx = listview_get_curr_pos( kmi->lv ); |
1289 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid-1 ); |
listview_get_item_text( kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
1290 |
|
memset (&k, 0, sizeof (k)); |
1291 |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
1292 |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
1293 |
k.keyid = keyid; |
k.keyid = keyid; |
1295 |
break; |
break; |
1296 |
|
|
1297 |
case ID_KEYCTX_ADDREV: |
case ID_KEYCTX_ADDREV: |
1298 |
idx = listview_get_curr_pos( kmi->lv ); |
idx = listview_get_curr_pos (kmi->lv); |
1299 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid-1 ); |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
1300 |
|
memset (&k, 0, sizeof (k)); |
1301 |
k.keyid = keyid; |
k.keyid = keyid; |
1302 |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
1303 |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
1305 |
break; |
break; |
1306 |
|
|
1307 |
case ID_KEYCTX_ADDPHOTO: |
case ID_KEYCTX_ADDPHOTO: |
1308 |
idx = listview_get_curr_pos( kmi->lv ); |
idx = listview_get_curr_pos (kmi->lv); |
1309 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof keyid-1 ); |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
1310 |
|
memset (&k, 0, sizeof (k)); |
1311 |
k.keyid = keyid; |
k.keyid = keyid; |
1312 |
k.is_protected = km_check_if_protected( kmi->lv, idx ); |
k.is_protected = km_check_if_protected (kmi->lv, idx); |
1313 |
k.key_pair = km_check_for_seckey( kmi->lv, idx, NULL ); |
k.key_pair = km_check_for_seckey (kmi->lv, idx, NULL); |
1314 |
keyedit_add_photo( &k, dlg ); |
keyedit_add_photo (&k, dlg); |
1315 |
break; |
break; |
1316 |
|
|
1317 |
case ID_KEYCTX_KS_NL: |
case ID_KEYCTX_KS_NL: |