Annotation of researchv10no/cmd/descrypt/setup.c, revision 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.