mirror of
https://repo.or.cz/socat.git
synced 2024-12-22 23:42:34 +00:00
With OPENSSL_API_COMPAT=0x10000000L the files openssl/dh.h, openssl/bn.h must be included
This commit is contained in:
parent
9209312c3c
commit
b7a277472b
7 changed files with 49 additions and 10 deletions
7
CHANGES
7
CHANGES
|
@ -101,6 +101,13 @@ Porting:
|
||||||
OpenSSL set-macros and substitute deprecated version-specific methods.
|
OpenSSL set-macros and substitute deprecated version-specific methods.
|
||||||
Test: OPENSSL_MIN_VERSION
|
Test: OPENSSL_MIN_VERSION
|
||||||
|
|
||||||
|
With OpenSSL use OPENSSL_init_SSL when available, instead of deprecated
|
||||||
|
SSL_library_init.
|
||||||
|
|
||||||
|
With OPENSSL_API_COMPAT=0x10000000L the files openssl/dh.h, openssl/bn.h
|
||||||
|
must explicitely be included.
|
||||||
|
Thanks to Rosen Penev for reporting and sending a patch.
|
||||||
|
|
||||||
Testing:
|
Testing:
|
||||||
test.sh now produces a list of tests that could not be performed for
|
test.sh now produces a list of tests that could not be performed for
|
||||||
any reason. This helps to analyse these cases.
|
any reason. This helps to analyse these cases.
|
||||||
|
|
|
@ -447,6 +447,12 @@
|
||||||
# define HAVE_TERMIOS_SPEED 1
|
# define HAVE_TERMIOS_SPEED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Define if you have the OPENSSL_init_ssl function */
|
||||||
|
#undef HAVE_OPENSSL_init_ssl
|
||||||
|
|
||||||
|
/* Define if you have the SSL_library_init function */
|
||||||
|
#undef HAVE_SSL_library_init
|
||||||
|
|
||||||
/* Define if you have the SSLv2 client and server method functions. not in new openssl */
|
/* Define if you have the SSLv2 client and server method functions. not in new openssl */
|
||||||
#undef HAVE_SSLv2_client_method
|
#undef HAVE_SSLv2_client_method
|
||||||
#undef HAVE_SSLv2_server_method
|
#undef HAVE_SSLv2_server_method
|
||||||
|
|
15
configure.ac
15
configure.ac
|
@ -550,17 +550,16 @@ if test -n "$WITH_OPENSSL" -a "$sc_cv_have_openssl_ssl_h" = 'yes'; then
|
||||||
AC_CACHE_VAL(sc_cv_have_libssl,
|
AC_CACHE_VAL(sc_cv_have_libssl,
|
||||||
[ LIBS0="$LIBS"
|
[ LIBS0="$LIBS"
|
||||||
if test -n "$OPENSSL_BASE"; then
|
if test -n "$OPENSSL_BASE"; then
|
||||||
L="$OPENSSL_BASE/lib"; LIBS="$LIBS -L$L -lssl"
|
L="$OPENSSL_BASE/lib"; LIBS="$LIBS -L$L -lssl -lcrypto"
|
||||||
else
|
else
|
||||||
LIBS="$LIBS -lssl"
|
LIBS="$LIBS -lssl -lcrypto"
|
||||||
fi
|
fi
|
||||||
AC_TRY_LINK([#include <openssl/ssl.h>],
|
AC_TRY_LINK([#include <openssl/ssl.h>],
|
||||||
[SSL_library_init();ERR_error_string()],
|
[OPENSSL_init_ssl(0,NULL)],
|
||||||
[sc_cv_have_libssl='yes'],
|
[sc_cv_have_libssl='yes'; sc_cv_have_OPENSSL_init_ssl='yes'; AC_DEFINE(HAVE_OPENSSL_init_ssl)],
|
||||||
[ LIBS="$LIBS -lcrypto"
|
[AC_TRY_LINK([#include <openssl/ssl.h>],
|
||||||
AC_TRY_LINK([#include <openssl/ssl.h>],
|
|
||||||
[SSL_library_init()],
|
[SSL_library_init()],
|
||||||
[sc_cv_have_libssl='yes'],
|
[sc_cv_have_libssl='yes'; sc_cv_have_SSL_library_init='yes'; AC_DEFINE(HAVE_SSL_library_init)],
|
||||||
[sc_cv_have_libssl='no'])
|
[sc_cv_have_libssl='no'])
|
||||||
])
|
])
|
||||||
if test "$sc_cv_have_libssl" != 'yes'; then
|
if test "$sc_cv_have_libssl" != 'yes'; then
|
||||||
|
@ -1521,6 +1520,8 @@ AC_CHECK_FUNC(ASN1_STRING_get0_data, AC_DEFINE(HAVE_ASN1_STRING_get0_data), AC_C
|
||||||
AC_CHECK_FUNC(RAND_status, AC_DEFINE(HAVE_RAND_status))
|
AC_CHECK_FUNC(RAND_status, AC_DEFINE(HAVE_RAND_status))
|
||||||
AC_CHECK_FUNC(SSL_CTX_clear_mode, AC_DEFINE(HAVE_SSL_CTX_clear_mode))
|
AC_CHECK_FUNC(SSL_CTX_clear_mode, AC_DEFINE(HAVE_SSL_CTX_clear_mode))
|
||||||
AC_CHECK_FUNC(SSL_set_tlsext_host_name, AC_DEFINE(HAVE_SSL_set_tlsext_host_name))
|
AC_CHECK_FUNC(SSL_set_tlsext_host_name, AC_DEFINE(HAVE_SSL_set_tlsext_host_name))
|
||||||
|
AC_CHECK_FUNC(SSL_library_init, AC_DEFINE(HAVE_SSL_library_init))
|
||||||
|
AC_CHECK_FUNC(ERR_error_string, AC_DEFINE(HAVE_ERR_error_string))
|
||||||
|
|
||||||
AC_MSG_CHECKING(for type EC_KEY)
|
AC_MSG_CHECKING(for type EC_KEY)
|
||||||
AC_CACHE_VAL(sc_cv_type_EC_TYPE,
|
AC_CACHE_VAL(sc_cv_type_EC_TYPE,
|
||||||
|
|
14
sslcls.c
14
sslcls.c
|
@ -21,12 +21,25 @@
|
||||||
#include "sysutils.h"
|
#include "sysutils.h"
|
||||||
#include "sycls.h"
|
#include "sycls.h"
|
||||||
|
|
||||||
|
#if HAVE_OPENSSL_init_ssl
|
||||||
|
int sycOPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) {
|
||||||
|
int result;
|
||||||
|
Debug2("OPENSSL_init_ssl("F_uint64_t", %p)", opts, settings);
|
||||||
|
result = OPENSSL_init_ssl(opts, settings);
|
||||||
|
Debug1("OPENSSL_init_ssl() -> %d", result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_OPENSSL_init_ssl
|
||||||
void sycSSL_load_error_strings(void) {
|
void sycSSL_load_error_strings(void) {
|
||||||
Debug("SSL_load_error_strings()");
|
Debug("SSL_load_error_strings()");
|
||||||
SSL_load_error_strings();
|
SSL_load_error_strings();
|
||||||
Debug("SSL_load_error_strings() ->");
|
Debug("SSL_load_error_strings() ->");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_OPENSSL_init_ssl
|
||||||
int sycSSL_library_init(void) {
|
int sycSSL_library_init(void) {
|
||||||
int result;
|
int result;
|
||||||
Debug("SSL_library_init()");
|
Debug("SSL_library_init()");
|
||||||
|
@ -34,6 +47,7 @@ int sycSSL_library_init(void) {
|
||||||
Debug1("SSL_library_init() -> %d", result);
|
Debug1("SSL_library_init() -> %d", result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAVE_TLS_client_method
|
#if HAVE_TLS_client_method
|
||||||
const SSL_METHOD *sycTLS_client_method(void) {
|
const SSL_METHOD *sycTLS_client_method(void) {
|
||||||
|
|
2
sslcls.h
2
sslcls.h
|
@ -8,6 +8,7 @@
|
||||||
#if WITH_SYCLS
|
#if WITH_SYCLS
|
||||||
#if WITH_OPENSSL
|
#if WITH_OPENSSL
|
||||||
|
|
||||||
|
int sycOPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||||
void sycSSL_load_error_strings(void);
|
void sycSSL_load_error_strings(void);
|
||||||
int sycSSL_library_init(void);
|
int sycSSL_library_init(void);
|
||||||
const SSL_METHOD *sycTLS_client_method(void);
|
const SSL_METHOD *sycTLS_client_method(void);
|
||||||
|
@ -73,6 +74,7 @@ const char *sycSSL_COMP_get_name(const COMP_METHOD *comp);
|
||||||
|
|
||||||
#if WITH_OPENSSL
|
#if WITH_OPENSSL
|
||||||
|
|
||||||
|
#define sycOPENSSL_init_ssl(o,s) OPENSSL_init_ssl(o,s)
|
||||||
#define sycSSL_load_error_strings() SSL_load_error_strings()
|
#define sycSSL_load_error_strings() SSL_load_error_strings()
|
||||||
#define sycSSL_library_init() SSL_library_init()
|
#define sycSSL_library_init() SSL_library_init()
|
||||||
#define sycTLS_client_method() TLS_client_method()
|
#define sycTLS_client_method() TLS_client_method()
|
||||||
|
|
|
@ -184,6 +184,8 @@
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
#include <openssl/dh.h>
|
||||||
|
#include <openssl/bn.h>
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_LINUX_VM_SOCKETS_H
|
#if HAVE_LINUX_VM_SOCKETS_H
|
||||||
#include <linux/vm_sockets.h>
|
#include <linux/vm_sockets.h>
|
||||||
|
|
|
@ -956,13 +956,20 @@ int
|
||||||
|
|
||||||
openssl_delete_cert_info();
|
openssl_delete_cert_info();
|
||||||
|
|
||||||
|
/* OpenSSL preparation */
|
||||||
|
#if HAVE_OPENSSL_init_ssl
|
||||||
|
{
|
||||||
|
OPENSSL_INIT_SETTINGS *settings;
|
||||||
|
settings = OPENSSL_INIT_new();
|
||||||
|
sycOPENSSL_init_ssl(0, settings);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
sycSSL_library_init();
|
||||||
OpenSSL_add_all_algorithms();
|
OpenSSL_add_all_algorithms();
|
||||||
OpenSSL_add_all_ciphers();
|
OpenSSL_add_all_ciphers();
|
||||||
OpenSSL_add_all_digests();
|
OpenSSL_add_all_digests();
|
||||||
sycSSL_load_error_strings();
|
sycSSL_load_error_strings();
|
||||||
|
#endif
|
||||||
/* OpenSSL preparation */
|
|
||||||
sycSSL_library_init();
|
|
||||||
|
|
||||||
/*! actions_to_seed_PRNG();*/
|
/*! actions_to_seed_PRNG();*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue