Browse Source

Fix compilation without deprecated OpenSSL APIs

This is an optional part of OpenWrt designed to save space.
Rosen Penev 5 years ago
parent
commit
b1b5cbc597
4 changed files with 12 additions and 2 deletions
  1. 2 2
      src/connection.c
  2. 4 0
      src/connection.h
  3. 1 0
      src/net_setup.c
  4. 5 0
      src/tincd.c

+ 2 - 2
src/connection.c

@@ -96,13 +96,13 @@ void free_connection_partially(connection_t *c) {
 	c->outbudget = 0;
 
 	if(c->inctx) {
-		EVP_CIPHER_CTX_cleanup(c->inctx);
+		EVP_CIPHER_CTX_reset(c->inctx);
 		free(c->inctx);
 		c->inctx = NULL;
 	}
 
 	if(c->outctx) {
-		EVP_CIPHER_CTX_cleanup(c->outctx);
+		EVP_CIPHER_CTX_reset(c->outctx);
 		free(c->outctx);
 		c->outctx = NULL;
 	}

+ 4 - 0
src/connection.h

@@ -24,6 +24,10 @@
 #include <openssl/rsa.h>
 #include <openssl/evp.h>
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#define EVP_CIPHER_CTX_reset(c)	EVP_CIPHER_CTX_cleanup(c)
+#endif
+
 #include "avl_tree.h"
 
 #define OPTION_INDIRECT         0x0001

+ 1 - 0
src/net_setup.c

@@ -27,6 +27,7 @@
 #include <openssl/rand.h>
 #include <openssl/err.h>
 #include <openssl/evp.h>
+#include <openssl/bn.h>
 
 #include "avl_tree.h"
 #include "conf.h"

+ 5 - 0
src/tincd.c

@@ -40,6 +40,7 @@
 #ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
 #endif
+#include <openssl/bn.h>
 
 #ifdef HAVE_LZO
 #include LZO1X_H
@@ -692,7 +693,9 @@ int main(int argc, char **argv) {
 	ENGINE_register_all_complete();
 #endif
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
 	OpenSSL_add_all_algorithms();
+#endif
 
 	if(generate_keys) {
 		read_server_config();
@@ -811,10 +814,12 @@ end:
 
 	free(priority);
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
 	EVP_cleanup();
 	ERR_free_strings();
 #ifndef OPENSSL_NO_ENGINE
 	ENGINE_cleanup();
+#endif
 #endif
 
 	exit_configuration(&config_tree);