

# include <stdio.h>
# include <string.h>
# include </usr/include/des.h>



des_cblock           my_cblock;
  /*my_cblock            *key;   */

Key_schedule      my_key_schedule;

long              len = 1800;

char unsigned     ivec[1800];



void repread ( s )


unsigned char  *s;
{

FILE *f;

char *f_spec  =  "welcome";
char line_buf[260];

f  =  fopen ( f_spec, "r" );

while ( fgets ( &line_buf[0], 256, f ) != NULL )
  {
  strcat ( s, &line_buf[0] );
  }

fclose ( f );

}

main()
{

int  key_parity;
char unsigned buf_before[1801];
char unsigned buf_middle[1801];
char unsigned buf_after [1801];

FILE  *b, /* before encryption */
      *a; /* after  encryption */
  

b  =  fopen ( "before",  "w" );
a  =  fopen  ( "after",  "w" );

buf_before[0] = '\0';

repread ( &buf_before[0] );



fputs ( buf_before, b );

des_random_key ( my_cblock );

key_parity = des_key_sched (my_cblock, my_key_schedule);

if (key_parity != 0)
  printf ("After des_key_sched Key_parity = %d\n", key_parity);

system("date");

des_cbc_encrypt (buf_before, buf_middle, len, my_key_schedule, ivec,
                 DES_ENCRYPT);

system("date");
 /*   fputs (output, m ); */

des_cbc_encrypt (buf_middle, buf_after, len, my_key_schedule, ivec, 
                 DES_DECRYPT);

system("date");

fputs ( buf_after, a );


fclose ( a );
fclose ( b );

}




