libssh: Fix compilation without deprecated OpenSSL APIs

Last patch was already fixed upstream. First patch was sent.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2019-04-28 16:48:16 -07:00
parent 0038d6e971
commit 2d440dd267
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
3 changed files with 68 additions and 1 deletions

View File

@ -12,7 +12,7 @@ PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_NAME:=libssh
PKG_VERSION:=0.7.6
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.libssh.org/files/0.7/

View File

@ -0,0 +1,39 @@
--- a/src/dh.c
+++ b/src/dh.c
@@ -131,11 +131,15 @@ int ssh_get_random(void *where, int len, int strong){
return 1;
#elif defined HAVE_LIBCRYPTO
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
if (strong) {
return RAND_bytes(where,len);
} else {
return RAND_pseudo_bytes(where,len);
}
+#else
+ return RAND_bytes(where,len);
+#endif
#endif
/* never reached */
@@ -198,7 +202,9 @@ int ssh_crypto_init(void) {
}
bignum_bin2bn(p_group14_value, P_GROUP14_LEN, p_group14);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
OpenSSL_add_all_algorithms();
+#endif
#endif
@@ -219,8 +225,10 @@ void ssh_crypto_finalize(void) {
#ifdef HAVE_LIBGCRYPT
gcry_control(GCRYCTL_TERM_SECMEM);
#elif defined HAVE_LIBCRYPTO
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();
+#endif
#endif
ssh_crypto_initialized=0;
}

View File

@ -0,0 +1,28 @@
--- a/src/threads.c
+++ b/src/threads.c
@@ -106,6 +106,8 @@ static int libgcrypt_thread_init(void){
static void **libcrypto_mutexes;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+
static void libcrypto_lock_callback(int mode, int i, const char *file, int line){
(void)file;
(void)line;
@@ -160,6 +162,16 @@ static void libcrypto_thread_finalize(void){
}
+#else
+
+static int libcrypto_thread_init(void){
+ return SSH_OK;
+}
+
+static void libcrypto_thread_finalize(void){
+}
+#endif
+
#endif
/** @internal