unsigned char *in;
const unsigned char *in;
void des_cfb64_encrypt(in, out, length, schedule, ivec, num, enc)unsigned char *in;unsigned char *out;long length;des_key_schedule schedule;des_cblock (*ivec);int *num;int enc;	{	register DES_LONG v0,v1;	register long l=length;	register int n= *num;	DES_LONG ti[2];	unsigned char *iv,c,cc;	iv=(unsigned char *)ivec;	if (enc)		{		while (l--)			{			if (n == 0)				{				c2l(iv,v0); ti[0]=v0;				c2l(iv,v1); ti[1]=v1;				des_encrypt((DES_LONG *)ti,					schedule,DES_ENCRYPT);				iv=(unsigned char *)ivec;				v0=ti[0]; l2c(v0,iv);				v0=ti[1]; l2c(v0,iv);				iv=(unsigned char *)ivec;				}			c= *(in++)^iv[n];			*(out++)=c;			iv[n]=c;			n=(n+1)&0x07;			}		}	else		{		while (l--)			{			if (n == 0)				{				c2l(iv,v0); ti[0]=v0;				c2l(iv,v1); ti[1]=v1;				des_encrypt((DES_LONG *)ti,					schedule,DES_ENCRYPT);				iv=(unsigned char *)ivec;				v0=ti[0]; l2c(v0,iv);				v0=ti[1]; l2c(v0,iv);				iv=(unsigned char *)ivec;				}			cc= *(in++);			c=iv[n];			iv[n]=cc;			*(out++)=c^cc;			n=(n+1)&0x07;			}		}	v0=v1=ti[0]=ti[1]=c=cc=0;	*num=n;	}