diff options
Diffstat (limited to 'tools/card-tool-misc.c')
-rw-r--r-- | tools/card-tool-misc.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/tools/card-tool-misc.c b/tools/card-tool-misc.c index 5e0461cb8..06fcb6705 100644 --- a/tools/card-tool-misc.c +++ b/tools/card-tool-misc.c @@ -77,61 +77,3 @@ hex_to_buffer (const char *string, size_t *r_length) *r_length = n; return buffer; } - - - -/* Given the public key S_PKEY, return a new buffer with a descriptive - * string for its algorithm. This function always returns a string. */ -char * -pubkey_algo_string (gcry_sexp_t s_pkey) -{ - const char *prefix; - gcry_sexp_t l1; - char *algoname; - int algo; - char *result; - - l1 = gcry_sexp_find_token (s_pkey, "public-key", 0); - if (!l1) - return xstrdup ("E_no_key"); - { - gcry_sexp_t l_tmp = gcry_sexp_cadr (l1); - gcry_sexp_release (l1); - l1 = l_tmp; - } - algoname = gcry_sexp_nth_string (l1, 0); - gcry_sexp_release (l1); - if (!algoname) - return xstrdup ("E_no_algo"); - - algo = gcry_pk_map_name (algoname); - switch (algo) - { - case GCRY_PK_RSA: prefix = "rsa"; break; - case GCRY_PK_ELG: prefix = "elg"; break; - case GCRY_PK_DSA: prefix = "dsa"; break; - case GCRY_PK_ECC: prefix = ""; break; - default: prefix = NULL; break; - } - - if (prefix && *prefix) - result = xasprintf ("%s%u", prefix, gcry_pk_get_nbits (s_pkey)); - else if (prefix) - { - const char *curve = gcry_pk_get_curve (s_pkey, 0, NULL); - const char *name = openpgp_oid_to_curve - (openpgp_curve_to_oid (curve, NULL), 0); - - if (name) - result = xstrdup (name); - else if (curve) - result = xasprintf ("X_%s", curve); - else - result = xstrdup ("E_unknown"); - } - else - result = xasprintf ("X_algo_%d", algo); - - xfree (algoname); - return result; -} |