Revision: 557
http://vde.svn.sourceforge.net/vde/?rev=557&view=rev
Author: danielel
Date: 2013-03-07 20:55:56 +0000 (Thu, 07 Mar 2013)
Log Message:
-----------
Fixed encryption/decryption lenght
Closed SourceForge #3603904
Modified Paths:
--------------
trunk/vde-2/src/vde_cryptcab/cryptcab.c
Modified: trunk/vde-2/src/vde_cryptcab/cryptcab.c
===================================================================
--- trunk/vde-2/src/vde_cryptcab/cryptcab.c 2013-03-07 20:18:59 UTC (rev
556)
+++ trunk/vde-2/src/vde_cryptcab/cryptcab.c 2013-03-07 20:55:56 UTC (rev
557)
@@ -95,7 +95,9 @@
int data_encrypt(unsigned char *src, unsigned char *dst, int len, struct peer
*p)
{
- int tlen, olen;
+ int tlen, olen, ulen;
+
+ ulen = len - (len % 8);
if (encryption_disabled){
memcpy(dst,src,len);
@@ -115,7 +117,7 @@
goto cleanup;
}
- if (EVP_EncryptFinal (&ctx, dst + olen, &tlen) != 1)
+ if (EVP_EncryptFinal (&ctx, dst + ulen, &tlen) != 1)
{
fprintf (stderr,"error in encrypt final\n");
olen = -1;
@@ -130,8 +132,10 @@
int data_decrypt(unsigned char *src, unsigned char *dst, int len, struct peer
*p)
{
- int tlen, olen;
+ int tlen, olen, ulen;
+ ulen = len - (len % 8);
+
if (encryption_disabled){
memcpy(dst,src,len);
return len;
@@ -143,16 +147,16 @@
}
EVP_DecryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv);
- if (EVP_DecryptUpdate (&ctx, dst, &olen, src, len) != 1)
+ if (EVP_DecryptUpdate (&ctx, dst, &olen, src, ulen) != 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 + ulen, &tlen) != 1)
{
- fprintf (stderr,"error in decrypt final\n");
+ fprintf (stderr,"error in decrypt final, ulen = %d, tlen =
%d\n", ulen, tlen);
olen = -1;
goto cleanup;
}
@@ -193,6 +197,13 @@
int olen;
struct sockaddr_in *destination=&(p->in_a);
unsigned char *crc;
+
+ if (len + 8 - 1 > MAXPKT) {
+ len = MAXPKT - 8 + 1;
+ vc_printlog(2,"Warning: Cropping down packet size to %d", len);
+ }
+
+
if (encryption_disabled || (flags==CMD_CHALLENGE || flags==CMD_LOGIN ||
flags==CMD_DENY || flags==CMD_AUTH_OK || flags == CMD_KEEPALIVE)){
memcpy(outbuf,data,len);
olen=len;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
endpoint security space. For insight on selecting the right partner to
tackle endpoint security challenges, access the full report.
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
vde-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vde-users