summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorKoichiro IWAO <meta@vmeta.jp>2016-09-09 15:42:04 +0900
committerKoichiro IWAO <meta@vmeta.jp>2016-11-22 10:50:30 +0900
commit40e8194122ea914be0679b8c21f2d4aa30b47b96 (patch)
tree0184c9e2d4544ad93ddda9bcd26c928ed716cca9 /common
parenta59645d3c5bb143764bab538fa83a8483a2157d8 (diff)
downloadxrdp-proprietary-40e8194122ea914be0679b8c21f2d4aa30b47b96.tar.gz
xrdp-proprietary-40e8194122ea914be0679b8c21f2d4aa30b47b96.zip
TLS: log TLS version and cipher
Diffstat (limited to 'common')
-rw-r--r--common/ssl_calls.c14
-rw-r--r--common/ssl_calls.h3
-rw-r--r--common/trans.c3
-rw-r--r--common/trans.h2
4 files changed, 22 insertions, 0 deletions
diff --git a/common/ssl_calls.c b/common/ssl_calls.c
index 72ab5eb7..f20ea76c 100644
--- a/common/ssl_calls.c
+++ b/common/ssl_calls.c
@@ -891,3 +891,17 @@ ssl_tls_can_recv(struct ssl_tls *tls, int sck, int millis)
return g_sck_can_recv(sck, millis);
}
+
+/*****************************************************************************/
+const char*
+ssl_get_version(const struct ssl_st *ssl)
+{
+ return SSL_get_version(ssl);
+}
+
+/*****************************************************************************/
+const char*
+ssl_get_cipher_name(const struct ssl_st *ssl)
+{
+ return SSL_get_cipher_name(ssl);
+}
diff --git a/common/ssl_calls.h b/common/ssl_calls.h
index 1277505c..38eaeec2 100644
--- a/common/ssl_calls.h
+++ b/common/ssl_calls.h
@@ -109,4 +109,7 @@ ssl_tls_write(struct ssl_tls *tls, const char *data, int length);
int APP_CC
ssl_tls_can_recv(struct ssl_tls *tls, int sck, int millis);
+const char *ssl_get_version(const struct ssl_st *ssl);
+const char *ssl_get_cipher_name(const struct ssl_st *ssl);
+
#endif
diff --git a/common/trans.c b/common/trans.c
index 432b6334..4beaa56e 100644
--- a/common/trans.c
+++ b/common/trans.c
@@ -902,6 +902,9 @@ trans_set_tls_mode(struct trans *self, const char *key, const char *cert,
self->trans_send = trans_tls_send;
self->trans_can_recv = trans_tls_can_recv;
+ self->ssl_protocol = ssl_get_version(self->tls->ssl);
+ self->cipher_name = ssl_get_cipher_name(self->tls->ssl);
+
return 0;
}
diff --git a/common/trans.h b/common/trans.h
index 39fba5c0..73c6d591 100644
--- a/common/trans.h
+++ b/common/trans.h
@@ -79,6 +79,8 @@ struct trans
int no_stream_init_on_data_in;
int extra_flags; /* user defined */
struct ssl_tls *tls;
+ const char *ssl_protocol; /* e.g. TLSv1, TLSv1.1, TLSv1.2, unknown */
+ const char *cipher_name; /* e.g. AES256-GCM-SHA384 */
trans_recv_proc trans_recv;
trans_send_proc trans_send;
trans_can_recv_proc trans_can_recv;