| 1 | You need the GNU `patch' utility to apply this patch. Get: |
| 2 | |
| 3 | ftp://fractal.mta.ca/pub/crypto/SSLeay/DES/libdes-3.06.tar.gz |
| 4 | |
| 5 | Uncompress it somewhere, and use the command line: |
| 6 | |
| 7 | patch -p1 -N < this_file |
| 8 | |
| 9 | to apply the patch. Move the fcrypt.c file to the win32 subdirectory |
| 10 | of the Perl source distribution. |
| 11 | |
| 12 | --- libdes-3.06/fcrypt.c.dist Tue Aug 4 18:41:49 1998 |
| 13 | +++ libdes-3.06/fcrypt.c Tue Aug 4 18:42:03 1998 |
| 14 | @@ -325,12 +325,15 @@ |
| 15 | |
| 16 | static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; |
| 17 | |
| 18 | -static int body(); |
| 19 | -static int des_set_key(); |
| 20 | +static int body( |
| 21 | + unsigned long *out0, |
| 22 | + unsigned long *out1, |
| 23 | + des_key_schedule ks, |
| 24 | + unsigned long Eswap0, |
| 25 | + unsigned long Eswap1); |
| 26 | |
| 27 | -static int des_set_key(key,schedule) |
| 28 | -des_cblock *key; |
| 29 | -des_key_schedule schedule; |
| 30 | +static int |
| 31 | +des_set_key(des_cblock *key, des_key_schedule schedule) |
| 32 | { |
| 33 | register unsigned long c,d,t,s; |
| 34 | register unsigned char *in; |
| 35 | @@ -460,16 +463,14 @@ |
| 36 | 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A |
| 37 | }; |
| 38 | |
| 39 | -char *crypt(buf,salt) |
| 40 | -char *buf; |
| 41 | -char *salt; |
| 42 | +char * |
| 43 | +des_fcrypt(const char *buf, const char *salt, char *buff) |
| 44 | { |
| 45 | unsigned int i,j,x,y; |
| 46 | unsigned long Eswap0=0,Eswap1=0; |
| 47 | unsigned long out[2],ll; |
| 48 | des_cblock key; |
| 49 | des_key_schedule ks; |
| 50 | - static unsigned char buff[20]; |
| 51 | unsigned char bb[9]; |
| 52 | unsigned char *b=bb; |
| 53 | unsigned char c,u; |
| 54 | @@ -521,13 +522,15 @@ |
| 55 | buff[i]=cov_2char[c]; |
| 56 | } |
| 57 | buff[13]='\0'; |
| 58 | - return((char *)buff); |
| 59 | + return buff; |
| 60 | } |
| 61 | |
| 62 | -static int body(out0,out1,ks,Eswap0,Eswap1) |
| 63 | -unsigned long *out0,*out1; |
| 64 | -des_key_schedule *ks; |
| 65 | -unsigned long Eswap0,Eswap1; |
| 66 | +static int |
| 67 | +body( unsigned long *out0, |
| 68 | + unsigned long *out1, |
| 69 | + des_key_schedule ks, |
| 70 | + unsigned long Eswap0, |
| 71 | + unsigned long Eswap1) |
| 72 | { |
| 73 | register unsigned long l,r,t,u,v; |
| 74 | #ifdef ALT_ECB |
| 75 | End of Patch. |