Commit c77f47ab authored by Bodo Möller's avatar Bodo Möller
Browse files

DES CBC change looks dubious to me.

parent 8151f52a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -10,8 +10,15 @@
     according to Mark Crispin <MRC@Panda.COM>.
     [Bodo Moeller]

#if 0
  *) DES CBC did not update the IV. Weird.
     [Ben Laurie]
#else
     Look at des.c, cbc3_enc.c etc.: Those rely on that bevaviour of
     des_cbc_encrypt and copy IVs themselves when they have to.
     Either all those have to be changed too, or things must stay as they
     are.
#endif

  *) When bntest is run from "make test" it drives bc to check its
     calculations, as well as internally checking them. If an internal check
+6 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@

#include "des_locl.h"

/* Note that this is inconsistent with other DES functions in that it doesn't
   update ivec */
void des_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
	     des_key_schedule schedule, des_cblock *ivec, int enc)
	{
@@ -92,9 +94,11 @@ void des_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
			tout0=tin[0]; l2c(tout0,out);
			tout1=tin[1]; l2c(tout1,out);
			}
#if 0
		iv = &(*ivec)[0];
		l2c(tout0,iv);
		l2c(tout1,iv);
#endif
		}
	else
		{
@@ -123,9 +127,11 @@ void des_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
		/*	xor0=tin0;
			xor1=tin1; */
			}
#if 0
		iv = &(*ivec)[0];
		l2c(xor0,iv);
		l2c(xor1,iv);
#endif
		}
	tin0=tin1=tout0=tout1=xor0=xor1=0;
	tin[0]=tin[1]=0;