/* idx == -1 indicates main key * otherwise the subkey. */ static void print_key_fingerprint(gnutls_buffer_st * str, gnutls_openpgp_crt_t cert) { uint8_t fpr[128]; size_t fpr_size = sizeof(fpr); int err; const char *name; char *p; unsigned int bits; err = gnutls_openpgp_crt_get_fingerprint(cert, fpr, &fpr_size); if (err < 0) addf(str, "error: get_fingerprint: %s\n", gnutls_strerror(err)); else { adds(str, _("\tFingerprint (hex): ")); _gnutls_buffer_hexprint(str, fpr, fpr_size); addf(str, "\n"); } err = gnutls_openpgp_crt_get_pk_algorithm(cert, &bits); if (err < 0) return; name = gnutls_pk_get_name(err); if (name == NULL) return; p = _gnutls_key_fingerprint_randomart(fpr, fpr_size, name, bits, "\t\t"); if (p == NULL) return; adds(str, _("\tFingerprint's random art:\n")); adds(str, p); adds(str, "\n"); gnutls_free(p); }
static void main_texinfo (void) { { size_t i; const char *name; char id[2]; gnutls_kx_algorithm_t kx; gnutls_cipher_algorithm_t cipher; gnutls_mac_algorithm_t mac; gnutls_protocol_t version; printf ("@heading Ciphersuites\n"); printf ("@multitable @columnfractions .60 .20 .20\n"); printf("@headitem Ciphersuite name @tab TLS ID @tab Since\n"); for (i = 0; (name = gnutls_cipher_suite_info (i, id, &kx, &cipher, &mac, &version)); i++) { printf ("@item %s\n@tab 0x%02X 0x%02X\n@tab %s\n", escape_texi_string(name, buffer, sizeof(buffer)), (unsigned char) id[0], (unsigned char) id[1], gnutls_protocol_get_name (version)); } printf ("@end multitable\n"); } { const gnutls_certificate_type_t *p = gnutls_certificate_type_list (); printf ("\n\n@heading Certificate types\n"); printf ("@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_certificate_type_get_name (*p)); } printf ("@end table\n"); } { const gnutls_protocol_t *p = gnutls_protocol_list (); printf ("\n@heading Protocols\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_protocol_get_name (*p)); } printf ("@end table\n"); } { const gnutls_cipher_algorithm_t *p = gnutls_cipher_list (); printf ("\n@heading Ciphers\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_cipher_get_name (*p)); } printf ("@end table\n"); } { const gnutls_mac_algorithm_t *p = gnutls_mac_list (); printf ("\n@heading MAC algorithms\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_mac_get_name (*p)); } printf ("@end table\n"); } { const gnutls_kx_algorithm_t *p = gnutls_kx_list (); printf ("\n@heading Key exchange methods\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_kx_get_name (*p)); } printf ("@end table\n"); } { const gnutls_pk_algorithm_t *p = gnutls_pk_list (); printf ("\n@heading Public key algorithms\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_pk_get_name (*p)); } printf ("@end table\n"); } { const gnutls_sign_algorithm_t *p = gnutls_sign_list (); printf ("\n@heading Public key signature algorithms\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_sign_get_name (*p)); } printf ("@end table\n"); } { const gnutls_ecc_curve_t *p = gnutls_ecc_curve_list (); printf ("\n@heading Elliptic curves\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_ecc_curve_get_name (*p)); } printf ("@end table\n"); } { const gnutls_compression_method_t *p = gnutls_compression_list (); printf ("\n@heading Compression methods\n@table @code\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_compression_get_name (*p)); } printf ("@end table\n"); } }
int main (void) { { size_t i; const char *name; char id[2]; gnutls_kx_algorithm_t kx; gnutls_cipher_algorithm_t cipher; gnutls_mac_algorithm_t mac; gnutls_protocol_t version; printf ("Available cipher suites:\n"); printf ("@multitable @columnfractions .60 .20 .20\n"); for (i = 0; (name = gnutls_cipher_suite_info (i, id, &kx, &cipher, &mac, &version)); i++) { printf ("@item %s\n@tab 0x%02x 0x%02x\n@tab %s\n", name, (unsigned char) id[0], (unsigned char) id[1], gnutls_protocol_get_name (version)); } printf ("@end multitable\n"); } { const gnutls_certificate_type_t *p = gnutls_certificate_type_list (); printf ("\n\nAvailable certificate types:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_certificate_type_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_protocol_t *p = gnutls_protocol_list (); printf ("\nAvailable protocols:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_protocol_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_cipher_algorithm_t *p = gnutls_cipher_list (); printf ("\nAvailable ciphers:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_cipher_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_mac_algorithm_t *p = gnutls_mac_list (); printf ("\nAvailable MAC algorithms:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_mac_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_kx_algorithm_t *p = gnutls_kx_list (); printf ("\nAvailable key exchange methods:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_kx_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_pk_algorithm_t *p = gnutls_pk_list (); printf ("\nAvailable public key algorithms:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_pk_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_sign_algorithm_t *p = gnutls_sign_list (); printf ("\nAvailable public key signature algorithms:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_sign_get_name (*p)); } printf ("@end itemize\n"); } { const gnutls_compression_method_t *p = gnutls_compression_list (); printf ("\nAvailable compression methods:\n@itemize\n"); for (; *p; p++) { printf ("@item %s\n", gnutls_compression_get_name (*p)); } printf ("@end itemize\n"); } }