490 |
gpgme_recipients_t rset; |
gpgme_recipients_t rset; |
491 |
char keyid[32], uid[256], date[64], keylen[64]; |
char keyid[32], uid[256], date[64], keylen[64]; |
492 |
int with_seckey, seckey_type=0; |
int with_seckey, seckey_type=0; |
493 |
int i, rc; |
int i, rc, n; |
494 |
|
|
495 |
if( listview_get_curr_pos( lv ) == -1 ) { |
if( listview_get_curr_pos( lv ) == -1 ) { |
496 |
msg_box( dlg, _("Please select a key."), _("Key Manager"), MB_ERR ); |
msg_box( dlg, _("Please select a key."), _("Key Manager"), MB_ERR ); |
500 |
err = gpgme_recipients_new (&rset); |
err = gpgme_recipients_new (&rset); |
501 |
if (err) |
if (err) |
502 |
BUG (0); |
BUG (0); |
503 |
|
n = listview_count_items (lv, 0); |
504 |
for( i = 0; i < listview_count_items( lv, 0 ); i++ ) { |
for( i = 0; i < n; i++ ) { |
505 |
if( listview_get_item_state( lv, i ) ) { |
if( listview_get_item_state( lv, i ) ) { |
506 |
listview_get_item_text( lv, i, 0, uid, sizeof uid - 1 ); |
listview_get_item_text( lv, i, 0, uid, sizeof uid - 1 ); |
507 |
listview_get_item_text( lv, i, 1, keyid, sizeof keyid - 1 ); |
listview_get_item_text( lv, i, 1, keyid, sizeof keyid - 1 ); |
704 |
|
|
705 |
|
|
706 |
int |
int |
707 |
km_key_is_v3( listview_ctrl_t lv, int pos ) |
km_key_is_v3 (listview_ctrl_t lv, int pos) |
708 |
{ |
{ |
709 |
gpgme_key_t pk; |
gpgme_key_t pk; |
|
const char * fpr; |
|
|
unsigned long algo; |
|
710 |
char keyid[32]; |
char keyid[32]; |
711 |
|
|
712 |
listview_get_item_text( lv, pos, 1, keyid, sizeof keyid-1 ); |
listview_get_item_text (lv, pos, 1, keyid, sizeof keyid-1); |
713 |
if( get_pubkey( keyid, &pk ) ) |
if (get_pubkey (keyid, &pk)) |
714 |
BUG( NULL ); |
BUG (NULL); |
715 |
algo = gpgme_key_get_ulong_attr( pk, GPGME_ATTR_ALGO, NULL, 0 ); |
return gpgme_key_get_ulong_attr (pk, GPGME_ATTR_VERSION, NULL, 0); |
|
fpr = gpgme_key_get_string_attr( pk, GPGME_ATTR_FPR, NULL, 0 ); |
|
|
return strlen( fpr ) == 32 && algo == GPGME_PK_RSA? 1 : 0; |
|
716 |
} /* km_key_is_v3 */ |
} /* km_key_is_v3 */ |
717 |
|
|
718 |
|
|