Annotation of researchv10no/cmd/descrypt/setup.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     Process Arguments to Command and Set Up Key and Permutation
                      3:  *     D.P.Mitchell  83/07/01.
                      4:  */
                      5: 
                      6: #include <stdio.h>
                      7: #include "crypt.h"
                      8: 
                      9: Block random;
                     10: int pflag;
                     11: 
                     12: Block
                     13: setup(argc, argv)
                     14: int argc;
                     15: char *argv[];
                     16: {
                     17:        char tempkey[128];
                     18:        Block key;
                     19:        char *keystring;
                     20:        int i;
                     21:        extern Block key_crunch(), recrunch(), rand_block();
                     22:        extern char *getpass(), *strcpy();
                     23: 
                     24:        if (--argc > 0 && argv[1][0] == '-' && argv[1][1] == 'p')
                     25:                pflag = 1;
                     26:        else
                     27:                argc++;
                     28:        if (argc > 2) {
                     29:                fprintf(stderr, "Usage: en/decrypt [-p] [key]\n");
                     30:                exit(1);
                     31:        }
                     32:        if (argc == 2)
                     33:                keystring = argv[1 + pflag];
                     34:        else {
                     35:                keystring = getpass("Enter Key: ");
                     36:                (void) strcpy(tempkey, keystring);
                     37:                keystring = getpass("Enter Key Again: ");
                     38:                if (strcmp(keystring, tempkey)) {
                     39:                        fprintf(stderr, "Key Mistyped\n");
                     40:                        exit(1);
                     41:                }
                     42:        }
                     43:        random = rand_block();
                     44:        key = key_crunch(keystring);
                     45:        while (*keystring)
                     46:                *keystring++ = '\0';
                     47:        /*
                     48:         *      Repeating shuffle and recrunch prevents the recovery of
                     49:         *      the key if the permutation becomes known.
                     50:         */
                     51:        for (i = 0; i < 7; i++) {
                     52:                shuffle_permutation();
                     53:                key = recrunch();
                     54:        }
                     55:        return key;
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.