You need the GNU `patch' utility to apply this patch. Get: ftp://fractal.mta.ca/pub/crypto/SSLeay/DES/libdes-3.06.tar.gz Uncompress it somewhere, and use the command line: patch -p1 -N < this_file to apply the patch. Move the fcrypt.c file to the win32 subdirectory of the Perl source distribution. --- libdes-3.06/fcrypt.c.dist Tue Aug 4 18:41:49 1998 +++ libdes-3.06/fcrypt.c Tue Aug 4 18:42:03 1998 @@ -325,12 +325,15 @@ static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; -static int body(); -static int des_set_key(); +static int body( + unsigned long *out0, + unsigned long *out1, + des_key_schedule ks, + unsigned long Eswap0, + unsigned long Eswap1); -static int des_set_key(key,schedule) -des_cblock *key; -des_key_schedule schedule; +static int +des_set_key(des_cblock *key, des_key_schedule schedule) { register unsigned long c,d,t,s; register unsigned char *in; @@ -460,16 +463,14 @@ 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A }; -char *crypt(buf,salt) -char *buf; -char *salt; +char * +des_fcrypt(const char *buf, const char *salt, char *buff) { unsigned int i,j,x,y; unsigned long Eswap0=0,Eswap1=0; unsigned long out[2],ll; des_cblock key; des_key_schedule ks; - static unsigned char buff[20]; unsigned char bb[9]; unsigned char *b=bb; unsigned char c,u; @@ -521,13 +522,15 @@ buff[i]=cov_2char[c]; } buff[13]='\0'; - return((char *)buff); + return buff; } -static int body(out0,out1,ks,Eswap0,Eswap1) -unsigned long *out0,*out1; -des_key_schedule *ks; -unsigned long Eswap0,Eswap1; +static int +body( unsigned long *out0, + unsigned long *out1, + des_key_schedule ks, + unsigned long Eswap0, + unsigned long Eswap1) { register unsigned long l,r,t,u,v; #ifdef ALT_ECB End of Patch.