summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Matteo Bernardini2018-07-21 12:39:23 +0200
committer Matteo Bernardini2021-04-10 16:30:28 +0200
commit69d304706694ba45f26fe6eba8c36818744ca1dd (patch)
tree7a4a312e06797a154406d45bbfef2279147c86b3
parentcf65c072371dbcb73b7ea6d75de27bb6b96899f7 (diff)
downloadslackbuilds-vde2.tar.gz
network/vde2: Patch to build against openssl-1.1.x.vde2
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r--network/vde2/vde2.SlackBuild3
-rw-r--r--network/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch92
2 files changed, 95 insertions, 0 deletions
diff --git a/network/vde2/vde2.SlackBuild b/network/vde2/vde2.SlackBuild
index f0d9d64035..910dbd409f 100644
--- a/network/vde2/vde2.SlackBuild
+++ b/network/vde2/vde2.SlackBuild
@@ -71,6 +71,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Patch to build against openssl-1.1.x - thanks archlinux!
+patch -p1 < $CWD/vde_cryptcab-compile-against-openssl-1.1.0.patch
+
EXPERIMENTAL=${EXPERIMENTAL:-false}
OPTIONS=""
diff --git a/network/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch b/network/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch
new file mode 100644
index 0000000000..227312eabb
--- /dev/null
+++ b/network/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch
@@ -0,0 +1,92 @@
+--- a/src/vde_cryptcab/cryptcab.c 2011-11-23 16:41:17.000000000 +0000
++++ b/src/vde_cryptcab/cryptcab.c 2017-03-20 22:54:20.452975075 +0000
+@@ -22,7 +22,7 @@
+ exit(1);
+ }
+
+-static EVP_CIPHER_CTX ctx;
++static EVP_CIPHER_CTX *ctx;
+ static int ctx_initialized = 0;
+ static int encryption_disabled = 0;
+ static int nfd;
+@@ -30,6 +30,10 @@
+ static struct vde_open_args open_args={.port=0,.group=NULL,.mode=0700};
+ static int verbose = 0;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++#define EVP_CIPHER_CTX_reset(x) EVP_CIPHER_CTX_cleanup(x)
++#endif
++
+ void vc_printlog(int priority, const char *format, ...)
+ {
+ va_list arg;
+@@ -103,19 +107,21 @@
+ }
+
+ if (!ctx_initialized) {
+- EVP_CIPHER_CTX_init (&ctx);
++ ctx = EVP_CIPHER_CTX_new ();
++ if (!ctx)
++ return -1;
+ ctx_initialized = 1;
+ }
+
+- EVP_EncryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv);
+- if (EVP_EncryptUpdate (&ctx, dst, &olen, src, len) != 1)
++ EVP_EncryptInit (ctx, EVP_bf_cbc (), p->key, p->iv);
++ if (EVP_EncryptUpdate (ctx, dst, &olen, src, len) != 1)
+ {
+ fprintf (stderr,"error in encrypt update\n");
+ olen = -1;
+ goto cleanup;
+ }
+
+- if (EVP_EncryptFinal (&ctx, dst + olen, &tlen) != 1)
++ if (EVP_EncryptFinal (ctx, dst + olen, &tlen) != 1)
+ {
+ fprintf (stderr,"error in encrypt final\n");
+ olen = -1;
+@@ -124,7 +130,7 @@
+ olen += tlen;
+
+ cleanup:
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_reset(ctx);
+ return olen;
+ }
+
+@@ -138,19 +144,21 @@
+ }
+
+ if (!ctx_initialized) {
+- EVP_CIPHER_CTX_init (&ctx);
++ ctx = EVP_CIPHER_CTX_new ();
++ if (!ctx)
++ return -1;
+ ctx_initialized = 1;
+ }
+
+- EVP_DecryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv);
+- if (EVP_DecryptUpdate (&ctx, dst, &olen, src, len) != 1)
++ EVP_DecryptInit (ctx, EVP_bf_cbc (), p->key, p->iv);
++ if (EVP_DecryptUpdate (ctx, dst, &olen, src, len) != 1)
+ {
+ fprintf (stderr,"error in decrypt update\n");
+ olen = -1;
+ goto cleanup;
+ }
+
+- if (EVP_DecryptFinal (&ctx, dst + olen, &tlen) != 1)
++ if (EVP_DecryptFinal (ctx, dst + olen, &tlen) != 1)
+ {
+ fprintf (stderr,"error in decrypt final\n");
+ olen = -1;
+@@ -159,7 +167,7 @@
+ olen += tlen;
+
+ cleanup:
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_reset (ctx);
+ return olen;
+ }
+