Browse Source

GnuTLS: Implement tls_get_version()

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 7 years ago
parent
commit
f8697e8109
1 changed files with 13 additions and 3 deletions
  1. 13 3
      src/crypto/tls_gnutls.c

+ 13 - 3
src/crypto/tls_gnutls.c

@@ -1,6 +1,6 @@
 /*
 /*
  * SSL/TLS interface functions for GnuTLS
  * SSL/TLS interface functions for GnuTLS
- * Copyright (c) 2004-2011, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2017, Jouni Malinen <j@w1.fi>
  *
  *
  * This software may be distributed under the terms of the BSD license.
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
  * See README for more details.
@@ -1501,8 +1501,18 @@ int tls_connection_set_cipher_list(void *tls_ctx, struct tls_connection *conn,
 int tls_get_version(void *ssl_ctx, struct tls_connection *conn,
 int tls_get_version(void *ssl_ctx, struct tls_connection *conn,
 		    char *buf, size_t buflen)
 		    char *buf, size_t buflen)
 {
 {
-	/* TODO */
-	return -1;
+	gnutls_protocol_t ver;
+
+	ver = gnutls_protocol_get_version(conn->session);
+	if (ver == GNUTLS_TLS1_0)
+		os_strlcpy(buf, "TLSv1", buflen);
+	else if (ver == GNUTLS_TLS1_1)
+		os_strlcpy(buf, "TLSv1.1", buflen);
+	else if (ver == GNUTLS_TLS1_2)
+		os_strlcpy(buf, "TLSv1.2", buflen);
+	else
+		return -1;
+	return 0;
 }
 }