Commit 4e31df2c authored by Ben Laurie's avatar Ben Laurie
Browse files

Fix ghastly DES declarations, and all consequential warnings.

parent e4119b93
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5,6 +5,12 @@

 Changes between 0.9.1c and 0.9.2

  *) Major rework of DES function declarations, in the pursuit of correctness
     and purity. As a result, many evil casts evaporated, and some weirdness,
     too. You may find this causes warnings in your code. Zapping your evil
     casts will probably fix them. Mostly.
     [Ben Laurie]

  *) Fix for a typo in asn1.h. Bug fix to object creation script
     obj_dat.pl. It considered a zero in an object definition to mean
     "end of object": none of the objects in objects.h have any zeros
+8 −11
Original line number Diff line number Diff line
@@ -601,9 +601,9 @@ char **argv;
#endif

#ifndef NO_DES
	des_set_key((C_Block *)key,sch);
	des_set_key((C_Block *)key2,sch2);
	des_set_key((C_Block *)key3,sch3);
	des_set_key(key,sch);
	des_set_key(key2,sch2);
	des_set_key(key3,sch3);
#endif
#ifndef NO_IDEA
	idea_set_encrypt_key(key16,&idea_ks);
@@ -851,10 +851,8 @@ char **argv;
			print_message(names[D_CBC_DES],c[D_CBC_DES][j],lengths[j]);
			Time_F(START);
			for (count=0,run=1; COND(c[D_CBC_DES][j]); count++)
				des_ncbc_encrypt((C_Block *)buf,
					(C_Block *)buf,
					(long)lengths[j],sch,
					(C_Block *)&(iv[0]),DES_ENCRYPT);
				des_ncbc_encrypt(buf,buf,lengths[j],sch,
						 &(iv[0]),DES_ENCRYPT);
			d=Time_F(STOP);
			BIO_printf(bio_err,"%ld %s's in %.2fs\n",
				count,names[D_CBC_DES],d);
@@ -869,10 +867,9 @@ char **argv;
			print_message(names[D_EDE3_DES],c[D_EDE3_DES][j],lengths[j]);
			Time_F(START);
			for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++)
				des_ede3_cbc_encrypt((C_Block *)buf,
					(C_Block *)buf,
					(long)lengths[j],sch,sch2,sch3,
					(C_Block *)&(iv[0]),DES_ENCRYPT);
				des_ede3_cbc_encrypt(buf,buf,lengths[j],
						     sch,sch2,sch3,
						     &(iv[0]),DES_ENCRYPT);
			d=Time_F(STOP);
			BIO_printf(bio_err,"%ld %s's in %.2fs\n",
				count,names[D_EDE3_DES],d);
+4 −9
Original line number Diff line number Diff line
@@ -58,21 +58,16 @@

#include "des_locl.h"

DES_LONG des_cbc_cksum(input, output, length, schedule, ivec)
des_cblock (*input);
des_cblock (*output);
DES_LONG des_cbc_cksum(in, out, length, schedule, iv)
const unsigned char *in;
des_cblock out;
long length;
des_key_schedule schedule;
des_cblock (*ivec);
des_cblock iv;
	{
	register DES_LONG tout0,tout1,tin0,tin1;
	register long l=length;
	DES_LONG tin[2];
	unsigned char *in,*out,*iv;

	in=(unsigned char *)input;
	out=(unsigned char *)output;
	iv=(unsigned char *)ivec;

	c2l(iv,tout0);
	c2l(iv,tout1);
+7 −8
Original line number Diff line number Diff line
@@ -58,24 +58,23 @@

#include "des_locl.h"

void des_cbc_encrypt(input, output, length, schedule, ivec, enc)
des_cblock (*input);
des_cblock (*output);
/* Note that this is inconsistent with other DES functions, in that it doesn't
   update ivec */
void des_cbc_encrypt(in, out, length, schedule, ivec, enc)
const unsigned char *in;
unsigned char *out;
long length;
des_key_schedule schedule;
des_cblock (*ivec);
des_cblock ivec;
int enc;
	{
	register DES_LONG tin0,tin1;
	register DES_LONG tout0,tout1,xor0,xor1;
	register unsigned char *in,*out;
	register long l=length;
	DES_LONG tin[2];
	unsigned char *iv;

	in=(unsigned char *)input;
	out=(unsigned char *)output;
	iv=(unsigned char *)ivec;
	iv=ivec;

	if (enc)
		{
+9 −9
Original line number Diff line number Diff line
@@ -64,11 +64,11 @@
 */

void des_ede3_cfb64_encrypt(in, out, length, ks1,ks2,ks3, ivec, num, enc)
unsigned char *in;
const unsigned char *in;
unsigned char *out;
long length;
des_key_schedule ks1,ks2,ks3;
des_cblock (*ivec);
des_cblock ivec;
int *num;
int enc;
	{
@@ -78,7 +78,7 @@ int enc;
	DES_LONG ti[2];
	unsigned char *iv,c,cc;

	iv=(unsigned char *)ivec;
	iv=ivec;
	if (enc)
		{
		while (l--)
@@ -90,14 +90,14 @@ int enc;

				ti[0]=v0;
				ti[1]=v1;
				des_encrypt3((DES_LONG *)ti,ks1,ks2,ks3);
				des_encrypt3(ti,ks1,ks2,ks3);
				v0=ti[0];
				v1=ti[1];

				iv=(unsigned char *)ivec;
				iv=ivec;
				l2c(v0,iv);
				l2c(v1,iv);
				iv=(unsigned char *)ivec;
				iv=ivec;
				}
			c= *(in++)^iv[n];
			*(out++)=c;
@@ -116,14 +116,14 @@ int enc;

				ti[0]=v0;
				ti[1]=v1;
				des_encrypt3((DES_LONG *)ti,ks1,ks2,ks3);
				des_encrypt3(ti,ks1,ks2,ks3);
				v0=ti[0];
				v1=ti[1];

				iv=(unsigned char *)ivec;
				iv=ivec;
				l2c(v0,iv);
				l2c(v1,iv);
				iv=(unsigned char *)ivec;
				iv=ivec;
				}
			cc= *(in++);
			c=iv[n];
Loading