aboutsummaryrefslogtreecommitdiffstats
path: root/main/libshout/01-libshout-tls-compile-with-OpenSSL-1.1.0.patch
blob: befd16e3846464df05831d530f78d0d9083f7449 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
From 01fafc449f0de56743d08e7976933c49e2915bfa Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Wed, 15 Nov 2017 12:46:25 +0000
Subject: [PATCH] tls: compile with OpenSSL 1.1.0

The init functions are not longer required in OpenSSL 1.1 so I dropped
them.

TLSv1_client_method() should not be used because it enables only the
TLSv1.0 protocol. Better is to use SSLv23_client_method() which enable
all the protocols including TLSv1.2. With this functions SSLv2 and SSLv3
is theoretically possible but as of today those protocols are usually
build-time disabled.
To avoid all this OpenSSL 1.1 provides TLS_client_method() which is aim
to provide to highest TLS protocol version (same as
SSLv23_client_method() but it is deprecated in 1.1).

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 src/tls.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/tls.c b/src/tls.c
index 4562c7327077..e0e5c1a5f079 100644
--- a/src/tls.c
+++ b/src/tls.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <shout/shout.h>
+#include <string.h>
 #include "shout_private.h"
 
 #ifndef XXX_HAVE_X509_check_host
@@ -61,14 +62,17 @@ shout_tls_t *shout_tls_new(shout_t *self, sock_t socket)
 
 static inline int tls_setup(shout_tls_t *tls)
 {
-	SSL_METHOD *meth;
-
+	const SSL_METHOD *meth;
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
 	SSL_library_init();
 	SSL_load_error_strings();
 	SSLeay_add_all_algorithms();
- 	SSLeay_add_ssl_algorithms();
+	SSLeay_add_ssl_algorithms();
 
-	meth = TLSv1_client_method();
+	meth = SSLv23_client_method();
+#else
+	meth = TLS_client_method();
+#endif
 	if (!meth)
 		goto error;
 
-- 
2.15.0