Annotation of 43BSDReno/kerberosIV/des/weak_key.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * $Source: /mit/kerberos/src/lib/des/RCS/weak_key.c,v $
        !             3:  * $Author: jtkohl $
        !             4:  *
        !             5:  * Copyright 1989 by the Massachusetts Institute of Technology.
        !             6:  *
        !             7:  * For copying and distribution information, please see the file
        !             8:  * <mit-copyright.h>.
        !             9:  *
        !            10:  * Under U.S. law, this software may not be exported outside the US
        !            11:  * without license from the U.S. Commerce department.
        !            12:  *
        !            13:  * These routines form the library interface to the DES facilities.
        !            14:  *
        !            15:  * Originally written 8/85 by Steve Miller, MIT Project Athena.
        !            16:  */
        !            17: 
        !            18: #ifndef        lint
        !            19: static char rcsid_weak_key_c[] =
        !            20: "$Header: weak_key.c,v 4.3 89/01/22 12:16:41 jtkohl Exp $";
        !            21: #endif lint
        !            22: 
        !            23: #include <des.h>
        !            24: #include "des_internal.h"
        !            25: 
        !            26: /*
        !            27:  * The following are the weak DES keys:
        !            28:  */
        !            29: static des_cblock weak[16] = {
        !            30:     /* weak keys */
        !            31:     {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},
        !            32:     {0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
        !            33:     {0x1f,0x1f,0x1f,0x1f,0x0e,0x0e,0x0e,0x0e},
        !            34:     {0xe0,0xe0,0xe0,0xe0,0xf1,0xf1,0xf1,0xf1},
        !            35: 
        !            36:     /* semi-weak */
        !            37:     {0x01,0xfe,0x01,0xfe,0x01,0xfe,0x01,0xfe},
        !            38:     {0xfe,0x01,0xfe,0x01,0xfe,0x01,0xfe,0x01},
        !            39: 
        !            40:     {0x1f,0xe0,0x1f,0xe0,0x0e,0xf1,0x0e,0xf1},
        !            41:     {0xe0,0x1f,0xe0,0x1f,0xf1,0x0e,0xf1,0x0e},
        !            42: 
        !            43:     {0x01,0xe0,0x01,0xe0,0x01,0xf1,0x01,0xf1},
        !            44:     {0xe0,0x01,0xe0,0x01,0xf1,0x01,0xf1,0x01},
        !            45: 
        !            46:     {0x1f,0xfe,0x1f,0xfe,0x0e,0xfe,0x0e,0xfe},
        !            47:     {0xfe,0x1f,0xfe,0x1f,0xfe,0x0e,0xfe,0x0e},
        !            48: 
        !            49:     {0x01,0x1f,0x01,0x1f,0x01,0x0e,0x01,0x0e},
        !            50:     {0x1f,0x01,0x1f,0x01,0x0e,0x01,0x0e,0x01},
        !            51: 
        !            52:     {0xe0,0xfe,0xe0,0xfe,0xf1,0xfe,0xf1,0xfe},
        !            53:     {0xfe,0xe0,0xfe,0xe0,0xfe,0xf1,0xfe,0xf1}
        !            54: };
        !            55: 
        !            56: /*
        !            57:  * des_is_weak_key: returns true iff key is a [semi-]weak des key.
        !            58:  *
        !            59:  * Requires: key has correct odd parity.
        !            60:  */
        !            61: int
        !            62: des_is_weak_key(key)
        !            63:      des_cblock key;
        !            64: {
        !            65:     int i;
        !            66:     des_cblock *weak_p = weak;
        !            67: 
        !            68:     for (i = 0; i < (sizeof(weak)/sizeof(des_cblock)); i++) {
        !            69:        if (!bcmp((char *)weak_p++,(char *)key,sizeof(des_cblock)))
        !            70:            return 1;
        !            71:     }
        !            72: 
        !            73:     return 0;
        !            74: }

unix.superglobalmegacorp.com

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