798 |
static void |
static void |
799 |
update_key (listview_ctrl_t lv, int pos, const char *keyid, int keypair) |
update_key (listview_ctrl_t lv, int pos, const char *keyid, int keypair) |
800 |
{ |
{ |
801 |
gpgme_key_t key; |
struct winpt_key_s key; |
802 |
|
|
803 |
keycache_update (0, keyid); |
keycache_update (0, keyid); |
804 |
if (keypair) |
if (keypair) |
806 |
|
|
807 |
/* because we replaced the key item, we need to update the |
/* because we replaced the key item, we need to update the |
808 |
address of the pointer in the ListView control. */ |
address of the pointer in the ListView control. */ |
809 |
get_pubkey (keyid, &key); |
memset (&key, 0, sizeof (key)); |
810 |
keylist_upd_key (lv, pos, key); |
winpt_get_pubkey (keyid, &key); |
811 |
|
keylist_upd_key (lv, pos, key.ext, key.ctx); |
812 |
keyring_check_last_access (); |
keyring_check_last_access (); |
813 |
} |
} |
814 |
|
|
1039 |
kc = keycache_get_ctx (1); |
kc = keycache_get_ctx (1); |
1040 |
while (!gpg_keycache_next_updated_key (kc, &ctx, &status)) { |
while (!gpg_keycache_next_updated_key (kc, &ctx, &status)) { |
1041 |
if (status == KC_FLAG_ADD) |
if (status == KC_FLAG_ADD) |
1042 |
keylist_add_key (kmi->lv, KEYLIST_LIST, ctx->key); |
keylist_add_key (kmi->lv, KEYLIST_LIST, ctx, ctx->key); |
1043 |
else { |
else { |
1044 |
pos = find_keypos (kmi->lv, ctx->key); |
pos = find_keypos (kmi->lv, ctx->key); |
1045 |
if (pos != -1) |
if (pos != -1) |
1046 |
keylist_upd_key (kmi->lv, pos, ctx->key); |
keylist_upd_key (kmi->lv, pos, ctx, ctx->key); |
1047 |
} |
} |
1048 |
} |
} |
1049 |
keylist_sort (kmi->lv, KEY_SORT_USERID); |
keylist_sort (kmi->lv, KEY_SORT_USERID); |
1126 |
struct km_info_s *kmi = NULL; |
struct km_info_s *kmi = NULL; |
1127 |
HWND kl; |
HWND kl; |
1128 |
HMENU hm; |
HMENU hm; |
1129 |
|
struct keycache_s *kci; |
1130 |
gpg_keycache_t c; |
gpg_keycache_t c; |
1131 |
gpgme_key_t key; |
gpgme_key_t key; |
1132 |
struct genkey_s genkey; |
struct genkey_s genkey; |
1680 |
if (listview_count_items (kmi->lv, 1) > 1) |
if (listview_count_items (kmi->lv, 1) > 1) |
1681 |
name = m_strdup ("Exported_GPG_Keys.asc"); |
name = m_strdup ("Exported_GPG_Keys.asc"); |
1682 |
else { |
else { |
1683 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
1684 |
name = km_gen_export_filename (key->subkeys->keyid+8, 0); |
name = km_gen_export_filename (key->subkeys->keyid+8, 0); |
1685 |
} |
} |
1686 |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
1713 |
"Do you really want to export the key?"), |
"Do you really want to export the key?"), |
1714 |
_("WARNING"), MB_INFO|MB_YESNO); |
_("WARNING"), MB_INFO|MB_YESNO); |
1715 |
if (i == IDYES) { |
if (i == IDYES) { |
1716 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
|
if (!key) |
|
|
BUG (NULL); |
|
1717 |
name = km_gen_export_filename (key->subkeys->keyid+8, 1); |
name = km_gen_export_filename (key->subkeys->keyid+8, 1); |
1718 |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
1719 |
if (t != NULL) |
if (t != NULL) |
1850 |
case ID_KEYCTX_UID_COPY: |
case ID_KEYCTX_UID_COPY: |
1851 |
/* XXX: add generic function to support multiple selection |
/* XXX: add generic function to support multiple selection |
1852 |
with a callback */ |
with a callback */ |
1853 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, &kci); |
1854 |
name = utf8_to_native (key->uids->uid); |
name = kci->uids->name; |
1855 |
set_clip_text (NULL, name, strlen (name)); |
set_clip_text (NULL, name, strlen (name)); |
|
safe_free (name); |
|
1856 |
break; |
break; |
1857 |
|
|
1858 |
case ID_KEYCTX_KEYID_COPY: |
case ID_KEYCTX_KEYID_COPY: |
1859 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
1860 |
set_clip_text (NULL, key->subkeys->keyid+8, |
set_clip_text (NULL, key->subkeys->keyid+8, |
1861 |
strlen (key->subkeys->keyid+8)); |
strlen (key->subkeys->keyid+8)); |
1862 |
break; |
break; |
1863 |
|
|
1864 |
case ID_KEYCTX_FPR_COPY: |
case ID_KEYCTX_FPR_COPY: |
1865 |
key = (gpgme_key_t) listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
1866 |
t = key->subkeys->fpr; |
t = key->subkeys->fpr; |
1867 |
set_clip_text (NULL, t? t : "", t? strlen (t): 0); |
set_clip_text (NULL, t? t : "", t? strlen (t): 0); |
1868 |
break; |
break; |
1869 |
|
|
1870 |
case ID_KEYCTX_KINFO_COPY: |
case ID_KEYCTX_KINFO_COPY: |
1871 |
key = (gpgme_key_t) listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
|
if (!key) |
|
|
BUG (NULL); |
|
1872 |
km_set_clip_info (key->subkeys->keyid+8); |
km_set_clip_info (key->subkeys->keyid+8); |
1873 |
break; |
break; |
1874 |
|
|
1904 |
|
|
1905 |
case ID_KEYCTX_SETDEFKEY: |
case ID_KEYCTX_SETDEFKEY: |
1906 |
if (!km_check_key_status (kmi->lv, kmi->lv_idx)) { |
if (!km_check_key_status (kmi->lv, kmi->lv_idx)) { |
1907 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = km_get_key_ptr (kmi->lv, kmi->lv_idx, NULL); |
1908 |
rc = set_gnupg_default_key (key->subkeys->keyid+8); |
rc = set_gnupg_default_key (key->subkeys->keyid+8); |
1909 |
if (rc) |
if (rc) |
1910 |
msg_box (dlg, winpt_strerror (rc), _("Key Manager"), MB_ERR); |
msg_box (dlg, winpt_strerror (rc), _("Key Manager"), MB_ERR); |