

# 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 )
{

char *s;

FILE *f;
FILE *t;

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

f  =  fopen ( f_spec, "r" );
t  =  fopen ( "sys$output");

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

fputs  ( s, t );
fclose ( f );
fclose ( t );

}

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 );



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 );

}




