diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-09-20 13:43:14 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-02-19 15:29:34 +0100 |
commit | 732707b1faa412eef6081899e9a58a95e4c19f51 (patch) | |
tree | aecd2546c6103e7476b5dce522110c54370a5a26 /lib/session.c | |
parent | 2ac8d9219ead0c48f6ed277b4d70fc721201c53f (diff) | |
download | gnutls-732707b1faa412eef6081899e9a58a95e4c19f51.tar.gz |
gnutls_session_get_desc: more descriptive name for TLS1.3 ciphersuites
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'lib/session.c')
-rw-r--r-- | lib/session.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/session.c b/lib/session.c index edbf548be5..6c2671d70e 100644 --- a/lib/session.c +++ b/lib/session.c @@ -273,7 +273,7 @@ char *gnutls_session_get_desc(gnutls_session_t session) gnutls_kx_algorithm_t kx; const char *kx_str, *sign_str; unsigned type; - char kx_name[64]; + char kx_name[64] = ""; char proto_name[32]; char _group_name[24]; const char *group_name = NULL; @@ -282,6 +282,7 @@ char *gnutls_session_get_desc(gnutls_session_t session) unsigned sign_algo; char *desc; const struct gnutls_group_entry_st *group = get_group(session); + const version_entry_st *ver = get_version(session); if (session->internals.initial_negotiation_completed == 0) return NULL; @@ -304,8 +305,22 @@ char *gnutls_session_get_desc(gnutls_session_t session) sign_algo = gnutls_sign_algorithm_get(session); sign_str = gnutls_sign_get_name(sign_algo); - kx_str = gnutls_kx_get_name(kx); - if (kx_str) { + if (kx == 0 && ver->tls13_sem) { /* TLS 1.3 */ + if (group && sign_str) { + if (group->curve) + snprintf(kx_name, sizeof(kx_name), "(ECDHE-%s)-(%s)", + group_name, sign_str); + else + snprintf(kx_name, sizeof(kx_name), "(DHE-%s)-(%s)", + group_name, sign_str); + } + } else { + kx_str = gnutls_kx_get_name(kx); + if (kx_str == NULL) { + gnutls_assert(); + return NULL; + } + if (kx == GNUTLS_KX_ECDHE_ECDSA || kx == GNUTLS_KX_ECDHE_RSA || kx == GNUTLS_KX_ECDHE_PSK) { if (sign_str) @@ -327,8 +342,6 @@ char *gnutls_session_get_desc(gnutls_session_t session) snprintf(kx_name, sizeof(kx_name), "(%s)", kx_str); } - } else { - strcpy(kx_name, "(NULL)"); } |