38 |
case 1: |
case 1: |
39 |
case 2: |
case 2: |
40 |
case 3: return "RSA"; |
case 3: return "RSA"; |
|
case 16: |
|
41 |
case 17: return "DSA"; |
case 17: return "DSA"; |
42 |
|
case 16: |
43 |
case 20: return "ELG"; |
case 20: return "ELG"; |
44 |
default: return "???"; |
default: return "???"; |
45 |
} |
} |
511 |
|
|
512 |
|
|
513 |
unsigned long |
unsigned long |
514 |
gpgme_key_get_ulong_attr( gpgme_key_t key, gpgme_attr_t what, |
gpgme_key_get_ulong_attr (gpgme_key_t key, gpgme_attr_t what, |
515 |
void ** reserved, int idx ) |
void **reserved, int idx) |
516 |
{ |
{ |
517 |
unsigned long val = 0; |
unsigned long val = 0; |
518 |
struct subkey_s * k; |
struct subkey_s * k; |
522 |
struct mpi_s * m; |
struct mpi_s * m; |
523 |
int n=0; |
int n=0; |
524 |
|
|
525 |
if( !key ) |
if (!key || idx < 0) |
|
return 0; |
|
|
if( idx < 0 ) |
|
526 |
return 0; |
return 0; |
527 |
|
|
528 |
switch( what ) { |
switch( what ) { |
529 |
case GPGME_ATTR_ALGO: |
case GPGME_ATTR_ALGO: |
530 |
for (k=&key->keys; k && idx; k=k->next, idx-- ) |
for (k=&key->keys; k && idx; k=k->next, idx--) |
531 |
; |
; |
532 |
if (k) |
if (k) |
533 |
val = (unsigned long)k->key_algo; |
val = (unsigned long)k->key_algo; |
534 |
break; |
break; |
535 |
|
|
536 |
case GPGME_ATTR_LEN: |
case GPGME_ATTR_LEN: |
537 |
for (k=&key->keys; k && idx; k=k->next, idx-- ) |
for (k=&key->keys; k && idx; k=k->next, idx--) |
538 |
; |
; |
539 |
if (k) |
if (k) |
540 |
val = (unsigned long)k->key_len; |
val = (unsigned long)k->key_len; |
711 |
val = key->gloflags.disabled; |
val = key->gloflags.disabled; |
712 |
break; |
break; |
713 |
|
|
714 |
|
case GPGME_ATTR_VERSION: { |
715 |
|
char *fpr = key->keys.fingerprint; |
716 |
|
if (!fpr) |
717 |
|
val = 4; |
718 |
|
else if (key->keys.key_algo == GPGME_PK_RSA && |
719 |
|
strlen (fpr) == 32) |
720 |
|
val = 3; |
721 |
|
} |
722 |
|
break; |
723 |
|
|
724 |
case GPGME_ATTR_KEY_USABLE: |
case GPGME_ATTR_KEY_USABLE: |
725 |
n = 4; |
n = 4; |
726 |
for (k=&key->keys; k && idx; k=k->next, idx--) |
for (k=&key->keys; k && idx; k=k->next, idx--) |