1 |
/* wptKeyManager.cpp - Handy functions for the Key Manager dialog |
/* wptKeyManager.cpp - Handy functions for the Key Manager dialog |
2 |
* Copyright (C) 2001-2005 Timo Schulz |
* Copyright (C) 2001-2005 Timo Schulz |
3 |
|
* Copyright (C) 2005 g10 Code GmbH |
4 |
* |
* |
5 |
* This file is part of WinPT. |
* This file is part of WinPT. |
6 |
* |
* |
202 |
|
|
203 |
for (i=0; rset[i] != NULL; i++) |
for (i=0; rset[i] != NULL; i++) |
204 |
n++; |
n++; |
205 |
p = (char *)calloc (1, n*(8+1)+n); |
if (!n) |
206 |
|
return NULL; |
207 |
|
p = (char *)calloc (1, n*(16+1)+n+2); |
208 |
if (!p) |
if (!p) |
209 |
return NULL; |
return NULL; |
210 |
for (i=0; rset[i] != NULL; i++) { |
for (i=0; rset[i] != NULL; i++) { |
533 |
|
|
534 |
/* Mark the keys in @rset as deleted in the keycache. */ |
/* Mark the keys in @rset as deleted in the keycache. */ |
535 |
static void |
static void |
536 |
delete_keys_from_cache (gpgme_key_t *rset) |
delete_keys_from_cache (gpgme_key_t *rset, size_t n) |
537 |
{ |
{ |
538 |
gpgme_keycache_t pub = keycache_get_ctx (1); |
gpgme_keycache_t pub = keycache_get_ctx (1); |
539 |
int i=0; |
int i=0; |
540 |
|
|
541 |
while (rset[i++] != NULL) |
while (n-- > 0) |
542 |
gpgme_keycache_delete_key (pub, rset[i]->subkeys->keyid); |
gpgme_keycache_delete_key (pub, rset[i++]->subkeys->keyid); |
543 |
} |
} |
544 |
|
|
545 |
|
|
624 |
err = gpgme_new (&ctx); |
err = gpgme_new (&ctx); |
625 |
if (err) |
if (err) |
626 |
BUG (NULL); |
BUG (NULL); |
627 |
for (i=0; i < n; i++) { |
for (i=0; i < k_pos; i++) { |
628 |
err = gpgme_op_delete (ctx, rset[i], with_seckey); |
err = gpgme_op_delete (ctx, rset[i], with_seckey); |
629 |
if (err) |
if (err) |
630 |
msg_box (dlg, gpgme_strerror (err), _("Key Manager"), MB_ERR); |
msg_box (dlg, gpgme_strerror (err), _("Key Manager"), MB_ERR); |
631 |
else |
else |
632 |
show_msg (dlg, 1500, _("GnuPG Status: Finished")); |
show_msg (dlg, 1500, _("GnuPG Status: Finished")); |
633 |
|
/* XXX: somethings 'conflict use' when k_pos > 3 */ |
634 |
} |
} |
635 |
gpgme_release (ctx); |
gpgme_release (ctx); |
636 |
listview_del_items (lv); |
listview_del_items (lv); |
637 |
delete_keys_from_cache (rset); |
delete_keys_from_cache (rset, k_pos); |
638 |
free (rset); |
free (rset); |
639 |
|
|
640 |
return (int)err; |
return (int)err; |