summaryrefslogtreecommitdiffstats
path: root/ssl_openssl.c
diff options
context:
space:
mode:
authorAdriaan de Jong <dejong@fox-it.com>2011-06-27 09:52:59 +0200
committerDavid Sommerseth <davids@redhat.com>2011-10-19 22:31:46 +0200
commitb64ffdcf09edd7110c1f851942d0e8d4e05d883c (patch)
tree01e55f356f3032e663961ab3bf37ec520278a580 /ssl_openssl.c
parent397c0a35c5b36c270678c717e931476dc42bfa5c (diff)
downloadopenvpn-b64ffdcf09edd7110c1f851942d0e8d4e05d883c.tar.gz
openvpn-b64ffdcf09edd7110c1f851942d0e8d4e05d883c.tar.xz
openvpn-b64ffdcf09edd7110c1f851942d0e8d4e05d883c.zip
Refactored get_highest_preference_tls_cipher
Signed-off-by: Adriaan de Jong <dejong@fox-it.com> Acked-by: Gert Doering <gert@greenie.muc.de> Signed-off-by: David Sommerseth <davids@redhat.com>
Diffstat (limited to 'ssl_openssl.c')
-rw-r--r--ssl_openssl.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/ssl_openssl.c b/ssl_openssl.c
index 6f6f1b3..c80dfb1 100644
--- a/ssl_openssl.c
+++ b/ssl_openssl.c
@@ -100,3 +100,24 @@ show_available_tls_ciphers ()
SSL_free (ssl);
SSL_CTX_free (ctx);
}
+
+void
+get_highest_preference_tls_cipher (char *buf, int size)
+{
+ SSL_CTX *ctx;
+ SSL *ssl;
+ const char *cipher_name;
+
+ ctx = SSL_CTX_new (TLSv1_method ());
+ if (!ctx)
+ msg (M_SSLERR, "Cannot create SSL_CTX object");
+ ssl = SSL_new (ctx);
+ if (!ssl)
+ msg (M_SSLERR, "Cannot create SSL object");
+
+ cipher_name = SSL_get_cipher_list (ssl, 0);
+ strncpynt (buf, cipher_name, size);
+
+ SSL_free (ssl);
+ SSL_CTX_free (ctx);
+}