net-vpn/vtun: Port to EAPI 7

Closes: https://bugs.gentoo.org/708372
Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr>
Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
Jakov Smolic
2021-01-12 11:48:46 +01:00
committed by David Seifert
parent 27562468d1
commit fe3fa62844
7 changed files with 342 additions and 268 deletions

View File

@@ -1,5 +1,5 @@
--- Makefile.in.orig 2012-06-11 23:31:11.416075337 +0400
+++ Makefile.in 2012-06-11 23:31:21.247324839 +0400
--- a/Makefile.in
+++ b/Makefile.in
@@ -86,9 +86,7 @@
install_config:

View File

@@ -0,0 +1,49 @@
--- a/lfd_shaper.c
+++ b/lfd_shaper.c
@@ -69,7 +69,7 @@ int shaper_counter(int len, char *in, char **out)
}
/* Convert tv struct to milisec */
-unsigned long inline tv2ms(struct timeval tv)
+unsigned long tv2ms(struct timeval tv)
{
register unsigned long ms = (tv.tv_sec * 1000)+(tv.tv_usec / 1000);
return ms ? ms : 1;
--- a/linkfd.c
+++ b/linkfd.c
@@ -105,7 +105,7 @@ int lfd_free_mod(void)
}
/* Run modules down (from head to tail) */
-inline int lfd_run_down(int len, char *in, char **out)
+int lfd_run_down(int len, char *in, char **out)
{
register struct lfd_mod *mod;
@@ -119,7 +119,7 @@ inline int lfd_run_down(int len, char *in, char **out)
}
/* Run modules up (from tail to head) */
-inline int lfd_run_up(int len, char *in, char **out)
+int lfd_run_up(int len, char *in, char **out)
{
register struct lfd_mod *mod;
@@ -133,7 +133,7 @@ inline int lfd_run_up(int len, char *in, char **out)
}
/* Check if modules are accepting the data(down) */
-inline int lfd_check_down(void)
+int lfd_check_down(void)
{
register struct lfd_mod *mod;
int err = 1;
@@ -145,7 +145,7 @@ inline int lfd_check_down(void)
}
/* Check if modules are accepting the data(up) */
-inline int lfd_check_up(void)
+int lfd_check_up(void)
{
register struct lfd_mod *mod;
int err = 1;

View File

@@ -0,0 +1,25 @@
https://bugs.gentoo.org/708372
--- a/auth.c
+++ b/auth.c
@@ -70,7 +70,7 @@ void gen_chal(char *buf)
void encrypt_chal(char *chal, char *pwd)
{
register int i;
- BF_KEY key;
+ extern BF_KEY key;
BF_set_key(&key, 16, MD5(pwd,strlen(pwd),NULL));
--- a/lfd_encrypt.c
+++ b/lfd_encrypt.c
@@ -64,8 +64,8 @@
#define ENC_BUF_SIZE VTUN_FRAME_SIZE + 128
#define ENC_KEY_SIZE 16
-BF_KEY key;
-char * enc_buf;
+extern BF_KEY key;
+extern char * enc_buf;
char * dec_buf;
#define CIPHER_INIT 0

View File

@@ -1,7 +1,5 @@
Index: vtun-3.0.3/cfg_file.y
===================================================================
--- vtun-3.0.3.orig/cfg_file.y
+++ vtun-3.0.3/cfg_file.y
--- a/cfg_file.y
+++ b/cfg_file.y
@@ -624,7 +624,7 @@ int clear_nat_hack_client(void *d, void
}

View File

@@ -1,5 +1,5 @@
--- a/lfd_encrypt.c 2008-01-07 23:35:32.000000000 +0100
+++ b/lfd_encrypt.c 2010-09-18 04:53:31.000000000 +0200
--- a/lfd_encrypt.c
+++ b/lfd_encrypt.c
@@ -44,6 +44,7 @@
#include <strings.h>
#include <string.h>
@@ -8,8 +8,8 @@
#include "vtun.h"
#include "linkfd.h"
--- a/lib.c 2008-01-07 23:35:40.000000000 +0100
+++ b/lib.c 2010-09-18 04:52:51.000000000 +0200
--- a/lib.c
+++ b/lib.c
@@ -34,6 +34,7 @@
#include <sys/wait.h>
#include <syslog.h>
@@ -18,8 +18,8 @@
#include "vtun.h"
#include "linkfd.h"
--- a/lib.h 2008-01-07 23:35:41.000000000 +0100
+++ b/lib.h 2010-09-18 04:56:50.000000000 +0200
--- a/lib.h
+++ b/lib.h
@@ -26,6 +26,7 @@
#include <sys/types.h>
#include <signal.h>
@@ -28,8 +28,8 @@
#ifdef HAVE_LIBUTIL_H
#include <libutil.h>
--- a/vtun.h 2008-01-07 23:36:07.000000000 +0100
+++ b/vtun.h 2010-09-18 04:56:08.000000000 +0200
--- a/vtun.h
+++ b/vtun.h
@@ -232,5 +232,9 @@
int read_config(char *file);
struct vtun_host * find_host(char *host);
@@ -40,8 +40,8 @@
+int recv_ib_mesg(int *len, char **in);
#endif
--- a/lock.c 2008-01-07 23:35:50.000000000 +0100
+++ b/lock.c 2010-09-18 05:01:21.000000000 +0200
--- a/lock.c
+++ b/lock.c
@@ -32,6 +32,7 @@
#include <sys/types.h>
#include <signal.h>
@@ -50,8 +50,8 @@
#include "vtun.h"
#include "linkfd.h"
--- a/lfd_shaper.c 2008-01-07 23:35:36.000000000 +0100
+++ b/lfd_shaper.c 2010-09-18 05:07:12.000000000 +0200
--- a/lfd_shaper.c
+++ b/lfd_shaper.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <sys/time.h>

View File

@@ -1,229 +1,229 @@
--- vtun-3.0.3/lfd_encrypt.c.orig 2019-02-25 18:43:39.310480427 -0500
+++ vtun-3.0.3/lfd_encrypt.c 2019-02-25 18:55:26.956441285 -0500
@@ -96,11 +96,11 @@
char * pkey;
char * iv_buf;
-EVP_CIPHER_CTX ctx_enc; /* encrypt */
-EVP_CIPHER_CTX ctx_dec; /* decrypt */
+EVP_CIPHER_CTX *ctx_enc; /* encrypt */
+EVP_CIPHER_CTX *ctx_dec; /* decrypt */
-EVP_CIPHER_CTX ctx_enc_ecb; /* sideband ecb encrypt */
-EVP_CIPHER_CTX ctx_dec_ecb; /* sideband ecb decrypt */
+EVP_CIPHER_CTX *ctx_enc_ecb; /* sideband ecb encrypt */
+EVP_CIPHER_CTX *ctx_dec_ecb; /* sideband ecb decrypt */
int prep_key(char **key, int size, struct vtun_host *host)
{
@@ -152,6 +152,11 @@
EVP_CIPHER_CTX *pctx_enc;
EVP_CIPHER_CTX *pctx_dec;
+ ctx_enc = EVP_CIPHER_CTX_new();
+ ctx_dec = EVP_CIPHER_CTX_new();
+ ctx_enc_ecb = EVP_CIPHER_CTX_new();
+ ctx_dec_ecb = EVP_CIPHER_CTX_new();
+
enc_init_first_time = 1;
dec_init_first_time = 1;
@@ -178,15 +183,15 @@
keysize = 32;
sb_init = 1;
cipher_type = EVP_aes_256_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_AES256ECB:
blocksize = 16;
keysize = 32;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_aes_256_ecb();
strcpy(cipher_name,"AES-256-ECB");
break;
@@ -197,14 +202,14 @@
keysize = 16;
sb_init=1;
cipher_type = EVP_aes_128_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_AES128ECB:
blocksize = 16;
keysize = 16;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_aes_128_ecb();
strcpy(cipher_name,"AES-128-ECB");
break;
@@ -217,16 +222,16 @@
var_key = 1;
sb_init = 1;
cipher_type = EVP_bf_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_BF256ECB:
blocksize = 8;
keysize = 32;
var_key = 1;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_bf_ecb();
strcpy(cipher_name,"Blowfish-256-ECB");
break;
@@ -239,16 +244,16 @@
var_key = 1;
sb_init = 1;
cipher_type = EVP_bf_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_BF128ECB: /* blowfish 128 ecb is the default */
default:
blocksize = 8;
keysize = 16;
var_key = 1;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_bf_ecb();
strcpy(cipher_name,"Blowfish-128-ECB");
break;
@@ -290,10 +295,10 @@
lfd_free(enc_buf); enc_buf = NULL;
lfd_free(dec_buf); dec_buf = NULL;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
- EVP_CIPHER_CTX_cleanup(&ctx_dec);
- EVP_CIPHER_CTX_cleanup(&ctx_enc_ecb);
- EVP_CIPHER_CTX_cleanup(&ctx_dec_ecb);
+ EVP_CIPHER_CTX_free(ctx_enc);
+ EVP_CIPHER_CTX_free(ctx_dec);
+ EVP_CIPHER_CTX_free(ctx_enc_ecb);
+ EVP_CIPHER_CTX_free(ctx_dec_ecb);
return 0;
}
@@ -319,7 +324,7 @@
outlen=len+pad;
if (pad == blocksize)
RAND_bytes(in_ptr+len, blocksize-1);
- EVP_EncryptUpdate(&ctx_enc, out_ptr, &outlen, in_ptr, len+pad);
+ EVP_EncryptUpdate(ctx_enc, out_ptr, &outlen, in_ptr, len+pad);
*out = enc_buf;
sequence_num++;
@@ -339,7 +344,7 @@
outlen=len;
if (!len) return 0;
- EVP_DecryptUpdate(&ctx_dec, out_ptr, &outlen, in_ptr, len);
+ EVP_DecryptUpdate(ctx_dec, out_ptr, &outlen, in_ptr, len);
recv_ib_mesg(&outlen, &out_ptr);
if (!outlen) return 0;
tmp_ptr = out_ptr + outlen; tmp_ptr--;
@@ -427,13 +432,13 @@
break;
} /* switch(cipher) */
- EVP_CIPHER_CTX_init(&ctx_enc);
- EVP_EncryptInit_ex(&ctx_enc, cipher_type, NULL, NULL, NULL);
+ EVP_CIPHER_CTX_init(ctx_enc);
+ EVP_EncryptInit_ex(ctx_enc, cipher_type, NULL, NULL, NULL);
if (var_key)
- EVP_CIPHER_CTX_set_key_length(&ctx_enc, keysize);
- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, pkey, NULL);
- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, NULL, iv);
- EVP_CIPHER_CTX_set_padding(&ctx_enc, 0);
+ EVP_CIPHER_CTX_set_key_length(ctx_enc, keysize);
+ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, pkey, NULL);
+ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, NULL, iv);
+ EVP_CIPHER_CTX_set_padding(ctx_enc, 0);
if (enc_init_first_time)
{
sprintf(tmpstr,"%s encryption initialized", cipher_name);
@@ -517,13 +522,13 @@
break;
} /* switch(cipher) */
- EVP_CIPHER_CTX_init(&ctx_dec);
- EVP_DecryptInit_ex(&ctx_dec, cipher_type, NULL, NULL, NULL);
+ EVP_CIPHER_CTX_init(ctx_dec);
+ EVP_DecryptInit_ex(ctx_dec, cipher_type, NULL, NULL, NULL);
if (var_key)
- EVP_CIPHER_CTX_set_key_length(&ctx_dec, keysize);
- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, pkey, NULL);
- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, NULL, iv);
- EVP_CIPHER_CTX_set_padding(&ctx_dec, 0);
+ EVP_CIPHER_CTX_set_key_length(ctx_dec, keysize);
+ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, pkey, NULL);
+ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, NULL, iv);
+ EVP_CIPHER_CTX_set_padding(ctx_dec, 0);
if (dec_init_first_time)
{
sprintf(tmpstr,"%s decryption initialized", cipher_name);
@@ -555,7 +560,7 @@
in_ptr = in - blocksize*2;
outlen = blocksize*2;
- EVP_EncryptUpdate(&ctx_enc_ecb, in_ptr,
+ EVP_EncryptUpdate(ctx_enc_ecb, in_ptr,
&outlen, in_ptr, blocksize*2);
*out = in_ptr;
len = outlen;
@@ -582,7 +587,7 @@
in_ptr = in;
iv = malloc(blocksize);
outlen = blocksize*2;
- EVP_DecryptUpdate(&ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2);
+ EVP_DecryptUpdate(ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2);
if ( !strncmp(in_ptr, "ivec", 4) )
{
@@ -625,7 +630,7 @@
if (cipher_enc_state != CIPHER_INIT)
{
cipher_enc_state = CIPHER_INIT;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
+ EVP_CIPHER_CTX_cleanup(ctx_enc);
#ifdef LFD_ENCRYPT_DEBUG
vtun_syslog(LOG_INFO,
"Forcing local encryptor re-init");
@@ -706,7 +711,7 @@
if (cipher_enc_state != CIPHER_INIT)
{
cipher_enc_state = CIPHER_INIT;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
+ EVP_CIPHER_CTX_cleanup(ctx_enc);
}
#ifdef LFD_ENCRYPT_DEBUG
vtun_syslog(LOG_INFO, "Remote requests encryptor re-init");
@@ -720,7 +725,7 @@
cipher_enc_state != CIPHER_REQ_INIT &&
cipher_enc_state != CIPHER_INIT)
{
- EVP_CIPHER_CTX_cleanup (&ctx_dec);
+ EVP_CIPHER_CTX_cleanup (ctx_dec);
cipher_dec_state = CIPHER_INIT;
cipher_enc_state = CIPHER_REQ_INIT;
}
--- a/lfd_encrypt.c
+++ b/lfd_encrypt.c
@@ -96,11 +96,11 @@ unsigned long sequence_num;
char * pkey;
char * iv_buf;
-EVP_CIPHER_CTX ctx_enc; /* encrypt */
-EVP_CIPHER_CTX ctx_dec; /* decrypt */
+EVP_CIPHER_CTX *ctx_enc; /* encrypt */
+EVP_CIPHER_CTX *ctx_dec; /* decrypt */
-EVP_CIPHER_CTX ctx_enc_ecb; /* sideband ecb encrypt */
-EVP_CIPHER_CTX ctx_dec_ecb; /* sideband ecb decrypt */
+EVP_CIPHER_CTX *ctx_enc_ecb; /* sideband ecb encrypt */
+EVP_CIPHER_CTX *ctx_dec_ecb; /* sideband ecb decrypt */
int prep_key(char **key, int size, struct vtun_host *host)
{
@@ -151,6 +151,11 @@ int alloc_encrypt(struct vtun_host *host)
char cipher_name[32];
EVP_CIPHER_CTX *pctx_enc;
EVP_CIPHER_CTX *pctx_dec;
+
+ ctx_enc = EVP_CIPHER_CTX_new();
+ ctx_dec = EVP_CIPHER_CTX_new();
+ ctx_enc_ecb = EVP_CIPHER_CTX_new();
+ ctx_dec_ecb = EVP_CIPHER_CTX_new();
enc_init_first_time = 1;
dec_init_first_time = 1;
@@ -178,15 +183,15 @@ int alloc_encrypt(struct vtun_host *host)
keysize = 32;
sb_init = 1;
cipher_type = EVP_aes_256_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_AES256ECB:
blocksize = 16;
keysize = 32;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_aes_256_ecb();
strcpy(cipher_name,"AES-256-ECB");
break;
@@ -197,14 +202,14 @@ int alloc_encrypt(struct vtun_host *host)
keysize = 16;
sb_init=1;
cipher_type = EVP_aes_128_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_AES128ECB:
blocksize = 16;
keysize = 16;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_aes_128_ecb();
strcpy(cipher_name,"AES-128-ECB");
break;
@@ -217,16 +222,16 @@ int alloc_encrypt(struct vtun_host *host)
var_key = 1;
sb_init = 1;
cipher_type = EVP_bf_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_BF256ECB:
blocksize = 8;
keysize = 32;
var_key = 1;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_bf_ecb();
strcpy(cipher_name,"Blowfish-256-ECB");
break;
@@ -239,16 +244,16 @@ int alloc_encrypt(struct vtun_host *host)
var_key = 1;
sb_init = 1;
cipher_type = EVP_bf_ecb();
- pctx_enc = &ctx_enc_ecb;
- pctx_dec = &ctx_dec_ecb;
+ pctx_enc = ctx_enc_ecb;
+ pctx_dec = ctx_dec_ecb;
break;
case VTUN_ENC_BF128ECB: /* blowfish 128 ecb is the default */
default:
blocksize = 8;
keysize = 16;
var_key = 1;
- pctx_enc = &ctx_enc;
- pctx_dec = &ctx_dec;
+ pctx_enc = ctx_enc;
+ pctx_dec = ctx_dec;
cipher_type = EVP_bf_ecb();
strcpy(cipher_name,"Blowfish-128-ECB");
break;
@@ -290,10 +295,10 @@ int free_encrypt()
lfd_free(enc_buf); enc_buf = NULL;
lfd_free(dec_buf); dec_buf = NULL;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
- EVP_CIPHER_CTX_cleanup(&ctx_dec);
- EVP_CIPHER_CTX_cleanup(&ctx_enc_ecb);
- EVP_CIPHER_CTX_cleanup(&ctx_dec_ecb);
+ EVP_CIPHER_CTX_cleanup(ctx_enc);
+ EVP_CIPHER_CTX_cleanup(ctx_dec);
+ EVP_CIPHER_CTX_cleanup(ctx_enc_ecb);
+ EVP_CIPHER_CTX_cleanup(ctx_dec_ecb);
return 0;
}
@@ -319,7 +324,7 @@ int encrypt_buf(int len, char *in, char **out)
outlen=len+pad;
if (pad == blocksize)
RAND_bytes(in_ptr+len, blocksize-1);
- EVP_EncryptUpdate(&ctx_enc, out_ptr, &outlen, in_ptr, len+pad);
+ EVP_EncryptUpdate(&ctx_enc, out_ptr, outlen, in_ptr, len+pad);
*out = enc_buf;
sequence_num++;
@@ -339,7 +344,7 @@ int decrypt_buf(int len, char *in, char **out)
outlen=len;
if (!len) return 0;
- EVP_DecryptUpdate(&ctx_dec, out_ptr, &outlen, in_ptr, len);
+ EVP_DecryptUpdate(ctx_dec, out_ptr, &outlen, in_ptr, len);
recv_ib_mesg(&outlen, &out_ptr);
if (!outlen) return 0;
tmp_ptr = out_ptr + outlen; tmp_ptr--;
@@ -427,13 +432,13 @@ int cipher_enc_init(char * iv)
break;
} /* switch(cipher) */
- EVP_CIPHER_CTX_init(&ctx_enc);
- EVP_EncryptInit_ex(&ctx_enc, cipher_type, NULL, NULL, NULL);
+ EVP_CIPHER_CTX_init(ctx_enc);
+ EVP_EncryptInit_ex(ctx_enc, cipher_type, NULL, NULL, NULL);
if (var_key)
- EVP_CIPHER_CTX_set_key_length(&ctx_enc, keysize);
- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, pkey, NULL);
- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, NULL, iv);
- EVP_CIPHER_CTX_set_padding(&ctx_enc, 0);
+ EVP_CIPHER_CTX_set_key_length(ctx_enc, keysize);
+ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, pkey, NULL);
+ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, NULL, iv);
+ EVP_CIPHER_CTX_set_padding(ctx_enc, 0);
if (enc_init_first_time)
{
sprintf(tmpstr,"%s encryption initialized", cipher_name);
@@ -517,13 +522,13 @@ int cipher_dec_init(char * iv)
break;
} /* switch(cipher) */
- EVP_CIPHER_CTX_init(&ctx_dec);
- EVP_DecryptInit_ex(&ctx_dec, cipher_type, NULL, NULL, NULL);
+ EVP_CIPHER_CTX_init(ctx_dec);
+ EVP_DecryptInit_ex(ctx_dec, cipher_type, NULL, NULL, NULL);
if (var_key)
- EVP_CIPHER_CTX_set_key_length(&ctx_dec, keysize);
- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, pkey, NULL);
- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, NULL, iv);
- EVP_CIPHER_CTX_set_padding(&ctx_dec, 0);
+ EVP_CIPHER_CTX_set_key_length(ctx_dec, keysize);
+ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, pkey, NULL);
+ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, NULL, iv);
+ EVP_CIPHER_CTX_set_padding(ctx_dec, 0);
if (dec_init_first_time)
{
sprintf(tmpstr,"%s decryption initialized", cipher_name);
@@ -555,7 +560,7 @@ int send_msg(int len, char *in, char **out)
in_ptr = in - blocksize*2;
outlen = blocksize*2;
- EVP_EncryptUpdate(&ctx_enc_ecb, in_ptr,
+ EVP_EncryptUpdate(ctx_enc_ecb, in_ptr,
&outlen, in_ptr, blocksize*2);
*out = in_ptr;
len = outlen;
@@ -582,7 +587,7 @@ int recv_msg(int len, char *in, char **out)
in_ptr = in;
iv = malloc(blocksize);
outlen = blocksize*2;
- EVP_DecryptUpdate(&ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2);
+ EVP_DecryptUpdate(ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2);
if ( !strncmp(in_ptr, "ivec", 4) )
{
@@ -625,7 +630,7 @@ int recv_msg(int len, char *in, char **out)
if (cipher_enc_state != CIPHER_INIT)
{
cipher_enc_state = CIPHER_INIT;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
+ EVP_CIPHER_CTX_cleanup(ctx_enc);
#ifdef LFD_ENCRYPT_DEBUG
vtun_syslog(LOG_INFO,
"Forcing local encryptor re-init");
@@ -706,7 +711,7 @@ int recv_ib_mesg(int *len, char **in)
if (cipher_enc_state != CIPHER_INIT)
{
cipher_enc_state = CIPHER_INIT;
- EVP_CIPHER_CTX_cleanup(&ctx_enc);
+ EVP_CIPHER_CTX_cleanup(ctx_enc);
}
#ifdef LFD_ENCRYPT_DEBUG
vtun_syslog(LOG_INFO, "Remote requests encryptor re-init");
@@ -720,7 +725,7 @@ int recv_ib_mesg(int *len, char **in)
cipher_enc_state != CIPHER_REQ_INIT &&
cipher_enc_state != CIPHER_INIT)
{
- EVP_CIPHER_CTX_cleanup (&ctx_dec);
+ EVP_CIPHER_CTX_cleanup (ctx_dec);
cipher_dec_state = CIPHER_INIT;
cipher_enc_state = CIPHER_REQ_INIT;
}

View File

@@ -1,7 +1,7 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EAPI=7
inherit linux-info
@@ -14,32 +14,33 @@ SLOT="0"
KEYWORDS="~alpha amd64 ppc ~sparc x86"
IUSE="lzo socks5 ssl zlib"
RDEPEND="ssl? ( dev-libs/openssl:0 )
RDEPEND="
lzo? ( dev-libs/lzo:2 )
zlib? ( sys-libs/zlib )
socks5? ( net-proxy/dante )"
DEPEND="${RDEPEND}
sys-devel/bison"
DOCS="ChangeLog Credits FAQ README README.Setup README.Shaper TODO"
socks5? ( net-proxy/dante )
ssl? ( dev-libs/openssl:0= )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}"
BDEPEND="sys-devel/bison"
DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO )
CONFIG_CHECK="~TUN"
src_prepare() {
sed -i Makefile.in \
-e '/^LDFLAGS/s|=|+=|g' \
|| die "sed Makefile"
eapply "${FILESDIR}"/${P}-includes.patch
PATCHES=(
"${FILESDIR}"/${P}-includes.patch
# remove unneeded checking for /etc/vtund.conf
eapply -p0 "${FILESDIR}"/${PN}-3.0.2-remove-config-presence-check.patch
"${FILESDIR}"/${PN}-3.0.2-remove-config-presence-check.patch
# GCC 5 compatibility, patch from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=778164
eapply "${FILESDIR}"/${P}-gcc5.patch
"${FILESDIR}"/${P}-gcc5.patch
# openssl 1.1 compatibility, bug 674280
eapply -l "${FILESDIR}"/${PN}-libssl-1.1.patch
# portage takes care about striping binaries itself
sed -i 's:$(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund::' Makefile.in || die
"${FILESDIR}"/${PN}-libssl-1.1.patch
"${FILESDIR}"/${P}-fno-common.patch
"${FILESDIR}"/${P}-C99-inline.patch
)
eapply_user
src_prepare() {
default
sed -i -e '/^LDFLAGS/s|=|+=|g' Makefile.in || die
sed -i 's:$(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund::' Makefile.in || die
}
src_configure() {
@@ -54,6 +55,7 @@ src_configure() {
src_install() {
default
newinitd "${FILESDIR}"/vtun.rc vtun
insinto etc
insinto /etc
doins "${FILESDIR}"/vtund-start.conf
rm -r "${ED}"/var || die
}