

# include <stdio.h>
# include <string.h>
# include </usr/include/des.h>
#include  <sys/file.h>
#include <sys/types.h>
#include <netinet/in.h>
#define buflen 1800

des_cblock           my_cblock;
  /*my_cblock            *key;   */

Key_schedule      my_key_schedule;
char unsigned     ivec[buflen];

int o,m,i;
char unsigned  buf[buflen];
char unsigned  output[buflen];
char unsigned  newbuf[buflen];


main()
{
int len;
char passwd[30];
i = open("welcome",O_RDONLY);
m = open("middle",O_WRONLY|O_CREAT,0644);
o = open("output",O_WRONLY|O_CREAT,0644);

/**key = my_cblock;  */
printf("Password:");fflush(stdout);
 gets(passwd);
/* des_read_password( my_cblock,"Passwd:",0); */
des_string_to_key(passwd,my_cblock);
printf("after reading passwd\n");
des_key_sched(my_cblock, my_key_schedule);

while ((len = read(i,buf, buflen)) != NULL)
{
    des_cbc_encrypt (buf, output, len, my_key_schedule, ivec, DES_ENCRYPT);
    write(m,output,len);

    des_cbc_encrypt (output, newbuf, len, my_key_schedule, ivec, DES_DECRYPT);

    write(o,newbuf,len);

}

system("date");
close ( o);
close ( i);
close ( m );

}




