fixing DES ECB decryption
This commit is contained in:
@@ -1128,10 +1128,8 @@ static void des_ecb_encrypt(des_cblock *input, des_cblock *output, long length,
|
|||||||
{
|
{
|
||||||
for (l-=8; l>=0; l-=8)
|
for (l-=8; l>=0; l-=8)
|
||||||
{
|
{
|
||||||
c2l(in,tin0);
|
c2l(in,tin0); tin[0]=tin0;
|
||||||
c2l(in,tin1);
|
c2l(in,tin1); tin[1]=tin1;
|
||||||
tin[0]=tin0;
|
|
||||||
tin[1]=tin1;
|
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0]; l2c(tout0,out);
|
tout0=tin[0]; l2c(tout0,out);
|
||||||
tout1=tin[1]; l2c(tout1,out);
|
tout1=tin[1]; l2c(tout1,out);
|
||||||
@@ -1153,14 +1151,16 @@ static void des_ecb_encrypt(des_cblock *input, des_cblock *output, long length,
|
|||||||
c2l(in,tin0); tin[0]=tin0;
|
c2l(in,tin0); tin[0]=tin0;
|
||||||
c2l(in,tin1); tin[1]=tin1;
|
c2l(in,tin1); tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
||||||
l2c(tout0,out);
|
tout0=tin[0]; l2c(tout0,out);
|
||||||
l2c(tout1,out);
|
tout1=tin[1]; l2c(tout1,out);
|
||||||
}
|
}
|
||||||
if (l != -8)
|
if (l != -8)
|
||||||
{
|
{
|
||||||
c2l(in,tin0); tin[0]=tin0;
|
c2l(in,tin0); tin[0]=tin0;
|
||||||
c2l(in,tin1); tin[1]=tin1;
|
c2l(in,tin1); tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
||||||
|
tout0=tin[0];
|
||||||
|
tout1=tin[1];
|
||||||
l2cn(tout0,tout1,out,l+8);
|
l2cn(tout0,tout1,out,l+8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user