From 95de69efeb7e34f0abf5bfa554e19ff69a92c4c9 Mon Sep 17 00:00:00 2001 From: Jan Vidar Krey Date: Tue, 5 Aug 2014 17:43:24 +0200 Subject: [PATCH] Added functionality to fetch the TLS version and cipher info for a connection. --- src/network/openssl.c | 12 ++++++++++++ src/network/tls.h | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/network/openssl.c b/src/network/openssl.c index 5f6dce0..c69ee05 100644 --- a/src/network/openssl.c +++ b/src/network/openssl.c @@ -394,6 +394,18 @@ void net_ssl_callback(struct net_connection* con, int events) } } +const char* net_ssl_get_tls_version(struct net_connection* con) +{ + struct net_ssl_openssl* handle = get_handle(con); + return SSL_get_version(handle->ssl); +} + +const char* net_ssl_get_tls_cipher(struct net_connection* con) +{ + struct net_ssl_openssl* handle = get_handle(con); + const SSL_CIPHER *cipher = SSL_get_current_cipher(handle->ssl); + return SSL_CIPHER_get_name(cipher); +} #endif /* SSL_USE_OPENSSL */ #endif /* SSL_SUPPORT */ diff --git a/src/network/tls.h b/src/network/tls.h index 7ddb8b7..dc959ba 100644 --- a/src/network/tls.h +++ b/src/network/tls.h @@ -103,10 +103,12 @@ extern void net_ssl_destroy(struct net_connection* con); extern void net_ssl_callback(struct net_connection* con, int events); - extern ssize_t net_con_ssl_handshake(struct net_connection* con, enum net_con_ssl_mode, struct ssl_context_handle* ssl_ctx); extern int net_con_is_ssl(struct net_connection* con); +extern const char* net_ssl_get_tls_version(struct net_connection* con); +extern const char* net_ssl_get_tls_cipher(struct net_connection* con); + #endif /* SSL_SUPPORT */ #endif /* HAVE_UHUB_NETWORK_TLS_H */