VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Crypto/Serpent.c
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2014-09-27 16:04:07 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2014-11-08 23:23:37 +0100
commit0178a6d33ff6afc7d0305619d3d250235ae55d09 (patch)
tree5c0cdc28b7ff07b02de5f05f70f16a46416f97b6 /src/Crypto/Serpent.c
parent411e8599f39a601b26429b3d1183488c413eb21b (diff)
downloadVeraCrypt-0178a6d33ff6afc7d0305619d3d250235ae55d09.tar.gz
VeraCrypt-0178a6d33ff6afc7d0305619d3d250235ae55d09.zip
Optimize code space and solve the Serpent issue (https://sourceforge.net/p/veracrypt/discussion/technical/thread/fb09633a/#6406) by removing key length parameter from serpent_set_key and twofish_set_key
Diffstat (limited to 'src/Crypto/Serpent.c')
-rw-r--r--src/Crypto/Serpent.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/Crypto/Serpent.c b/src/Crypto/Serpent.c
index ac77b397..91a4eadf 100644
--- a/src/Crypto/Serpent.c
+++ b/src/Crypto/Serpent.c
@@ -630,19 +630,16 @@ static void KXf (const unsigned __int32 *k, unsigned int r, unsigned __int32 *a,
#ifndef TC_MINIMIZE_CODE_SIZE
-void serpent_set_key(const unsigned __int8 userKey[], int keylen, unsigned __int8 *ks)
+void serpent_set_key(const unsigned __int8 userKey[],unsigned __int8 *ks)
{
unsigned __int32 a,b,c,d,e;
unsigned __int32 *k = (unsigned __int32 *)ks;
unsigned __int32 t;
int i;
- for (i = 0; i < keylen / (int)sizeof(__int32); i++)
+ for (i = 0; i < 8; i++)
k[i] = LE32(((unsigned __int32*)userKey)[i]);
- if (keylen < 32)
- k[keylen/4] |= (unsigned __int32)1 << ((keylen%4)*8);
-
k += 8;
t = k[-1];
for (i = 0; i < 132; ++i)
@@ -694,19 +691,16 @@ static void SKf (unsigned __int32 *k, unsigned int r, unsigned __int32 *a, unsig
k[r + 7] = *d;
}
-void serpent_set_key(const unsigned __int8 userKey[], int keylen, unsigned __int8 *ks)
+void serpent_set_key(const unsigned __int8 userKey[], unsigned __int8 *ks)
{
unsigned __int32 a,b,c,d,e;
unsigned __int32 *k = (unsigned __int32 *)ks;
unsigned __int32 t;
int i;
- for (i = 0; i < keylen / (int)sizeof(__int32); i++)
+ for (i = 0; i < 8; i++)
k[i] = LE32(((unsigned __int32*)userKey)[i]);
- if (keylen < 32)
- k[keylen/4] |= (unsigned __int32)1 << ((keylen%4)*8);
-
k += 8;
t = k[-1];
for (i = 0; i < 132; ++i)