From: Nikos Mavrogiannopoulos Date: Mon, 30 May 2016 08:50:38 +0000 (+0200) Subject: exported function to convert TLS extension numbers to strings X-Git-Tag: gnutls_3_5_1~86 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf925c4a9f7364589552c51641a3e228be75360a;p=thirdparty%2Fgnutls.git exported function to convert TLS extension numbers to strings The exported function is gnutls_ext_get_name() --- diff --git a/lib/extensions.c b/lib/extensions.c index a2bc732e88..988d9a4627 100644 --- a/lib/extensions.c +++ b/lib/extensions.c @@ -1,5 +1,6 @@ /* - * Copyright (C) 2001-2012 Free Software Foundation, Inc. + * Copyright (C) 2001-2016 Free Software Foundation, Inc. + * Copyright (C) 2015-2016 Red Hat, Inc. * * Author: Nikos Mavrogiannopoulos, Simon Josefsson * @@ -136,12 +137,21 @@ static gnutls_ext_unpack_func _gnutls_ext_func_unpack(uint16_t type) } -const char *_gnutls_extension_get_name(uint16_t type) +/** + * gnutls_ext_get_name: + * @ext: is a TLS extension numeric ID + * + * Convert a TLS extension numeric ID to a printable string. + * + * Returns: a pointer to a string that contains the name of the + * specified cipher, or %NULL. + **/ +const char *gnutls_ext_get_name(unsigned int ext) { size_t i; for (i = 0; extfunc[i] != NULL; i++) - if (extfunc[i]->type == type) + if (extfunc[i]->type == ext) return extfunc[i]->name; return NULL; @@ -184,7 +194,7 @@ _gnutls_parse_extensions(gnutls_session_t session, _gnutls_handshake_log ("EXT[%d]: expecting extension '%s'\n", session, - _gnutls_extension_get_name(session->internals. + gnutls_ext_get_name(session->internals. extensions_sent [i])); } @@ -223,14 +233,14 @@ _gnutls_parse_extensions(gnutls_session_t session, if (ext_recv == NULL) { _gnutls_handshake_log ("EXT[%p]: Found extension '%s/%d'\n", session, - _gnutls_extension_get_name(type), type); + gnutls_ext_get_name(type), type); continue; } _gnutls_handshake_log ("EXT[%p]: Parsing extension '%s/%d' (%d bytes)\n", - session, _gnutls_extension_get_name(type), type, + session, gnutls_ext_get_name(type), type, size); if ((ret = ext_recv(session, sdata, size)) < 0) { diff --git a/lib/extensions.h b/lib/extensions.h index bd78c2e069..7ef1b64782 100644 --- a/lib/extensions.h +++ b/lib/extensions.h @@ -88,6 +88,4 @@ typedef struct { int _gnutls_ext_register(extension_entry_st *); -const char *_gnutls_extension_get_name(uint16_t type); - #endif diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in index 3c6bd5be9d..0f35358d40 100644 --- a/lib/includes/gnutls/gnutls.h.in +++ b/lib/includes/gnutls/gnutls.h.in @@ -2515,6 +2515,8 @@ int gnutls_ext_register(const char *name, int type, gnutls_ext_parse_type_t pars gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func, gnutls_ext_unpack_func unpack_func); +const char *gnutls_ext_get_name(unsigned int ext); + /* Public supplemental data related functions */ typedef int (*gnutls_supp_recv_func) (gnutls_session_t session, diff --git a/lib/libgnutls.map b/lib/libgnutls.map index 32c9353a37..1416504936 100644 --- a/lib/libgnutls.map +++ b/lib/libgnutls.map @@ -1096,6 +1096,7 @@ GNUTLS_3_4 gnutls_x509_crt_set_tlsfeatures; gnutls_x509_crq_get_tlsfeatures; gnutls_x509_crq_set_tlsfeatures; + gnutls_ext_get_name; local: *; }; diff --git a/lib/x509/output.c b/lib/x509/output.c index 9258225e82..eeeb6e999b 100644 --- a/lib/x509/output.c +++ b/lib/x509/output.c @@ -910,7 +910,7 @@ static void print_tlsfeatures(gnutls_buffer_st * str, const char *prefix, const goto cleanup; } - name = _gnutls_extension_get_name(feature); + name = gnutls_ext_get_name(feature); if (name == NULL) addf(str, "%s\t\t\t%u\n", prefix, feature); else