home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / compiler / small_c / cb / sources / cpt.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-08-11  |  705 b   |  32 lines

  1. /*
  2. ** cpt.c -- encrypt or decrypt ASCII or binary files
  3. **
  4. ** Copyright 1982 J. E. Hendrix.  All rights reserved.
  5. */
  6. #include <stdio.h>
  7. #define NOCCARGC
  8. #define MAXKEY 81
  9. #define CTLZ   26
  10. main(argc, argv) int argc, *argv; {
  11.   char c, key[MAXKEY];
  12.   int i, keylen;
  13.   auxbuf(stdin, 4096);
  14.   keylen=getarg(1, key, MAXKEY, argc, argv);
  15.   if((keylen==EOF)|(key[0]=='-')) {
  16.     fputs("usage: CPT key\n", stderr);
  17.     abort(7);
  18.     }
  19.   i=1;
  20.   while(read(stdin, &c, 1) > 0) {
  21.     poll(YES);
  22.     if(isatty(stdin) && (c==CTLZ)) break;
  23.     c=c^key[i-1];
  24.     if(write(stdout, &c, 1) !=1 ) {
  25.       fputs("output error\n", stderr);
  26.       abort(7);
  27.       }
  28.     i=(i%keylen)+1;
  29.     }
  30.   }
  31.  
  32.