#define FLDSIZE_Y (FLDBASE + 1)
#define FLDSIZE_X (FLDBASE * 2 + 1)
char *
-key_fingerprint_randomart (uint8_t * dgst_raw, u_int dgst_raw_len,
- const char *key_type, unsigned int key_size)
+_gnutls_key_fingerprint_randomart (uint8_t * dgst_raw, u_int dgst_raw_len,
+ const char *key_type, unsigned int key_size)
{
/*
* Chars to be used after each other every time the worm
if (type != GNUTLS_RANDOM_ART_OPENSSH)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- art->data = key_fingerprint_randomart(fpr, fpr_size, key_type, key_size);
+ art->data = _gnutls_key_fingerprint_randomart(fpr, fpr_size, key_type, key_size);
if (art->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
static void privkey_info_int (gnutls_x509_privkey_t key)
{
-int ret;
+int ret, key_type, bits = 0;
size_t size;
const char *cprint;
ret = gnutls_x509_privkey_get_pk_algorithm (key);
fprintf (outfile, "\tPublic Key Algorithm: ");
- cprint = gnutls_pk_algorithm_get_name (ret);
+ key_type = ret;
+
+ cprint = gnutls_pk_algorithm_get_name (key_type);
fprintf (outfile, "%s\n", cprint ? cprint : "Unknown");
fprintf (outfile, "\tKey Security Level: %s\n\n",
gnutls_sec_param_get_name (gnutls_x509_privkey_sec_param (key)));
/* Print the raw public and private keys
*/
- if (ret == GNUTLS_PK_RSA)
+ if (key_type == GNUTLS_PK_RSA)
{
gnutls_datum_t m, e, d, p, q, u, exp1, exp2;
else
{
print_rsa_pkey (&m, &e, &d, &p, &q, &u, &exp1, &exp2);
+ bits = m.size * 8;
+
gnutls_free (m.data);
gnutls_free (e.data);
gnutls_free (d.data);
gnutls_free (exp2.data);
}
}
- else if (ret == GNUTLS_PK_DSA)
+ else if (key_type == GNUTLS_PK_DSA)
{
gnutls_datum_t p, q, g, y, x;
else
{
print_dsa_pkey (&x, &y, &p, &q, &g);
+ bits = y.size * 8;
+
gnutls_free (x.data);
gnutls_free (y.data);
gnutls_free (p.data);
gnutls_free (g.data);
}
}
- else if (ret == GNUTLS_PK_ECC)
+ else if (key_type == GNUTLS_PK_ECC)
{
gnutls_datum_t y, x, k;
gnutls_ecc_curve_t curve;
else
{
print_ecc_pkey (curve, &k, &x, &y);
+ bits = gnutls_ecc_curve_get_size(curve);
+
gnutls_free (x.data);
gnutls_free (y.data);
gnutls_free (k.data);
}
else
{
+ gnutls_datum_t art;
+
fprintf (outfile, "Public Key ID: %s\n", raw_to_string (buffer, size));
+
+ ret = gnutls_random_art(GNUTLS_RANDOM_ART_OPENSSH, cprint, bits, buffer, size, &art);
+ if (ret >= 0)
+ {
+ fprintf (outfile, "public key's randomart:\n%s\n", art.data);
+ gnutls_free(art.data);
+ }
}
fprintf (outfile, "\n");