|
|
1.1 ! root 1: /* ! 2: * $Source: /mit/kerberos/src/lib/des/RCS/key_parity.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: * These routines check and fix parity of encryption keys for the DES ! 11: * algorithm. ! 12: * ! 13: * Under U.S. law, this software may not be exported outside the US ! 14: * without license from the U.S. Commerce department. ! 15: * ! 16: * These routines form the library interface to the DES facilities. ! 17: * ! 18: */ ! 19: ! 20: #ifndef lint ! 21: static char rcsid_key_parity_c[] = ! 22: "$Header: key_parity.c,v 4.0 89/01/22 11:45:12 jtkohl Exp $"; ! 23: #endif lint ! 24: ! 25: #include <mit-copyright.h> ! 26: #include <des.h> ! 27: #include "des_internal.h" ! 28: ! 29: #include "odd.h" /* Load compile-time generated odd_parity table */ ! 30: ! 31: /* ! 32: * des_fixup_key_parity: Forces odd parity per byte; parity is bits ! 33: * 8,16,...64 in des order, implies 0, 8, 16, ... ! 34: * vax order. ! 35: */ ! 36: void ! 37: des_fixup_key_parity(key) ! 38: register des_cblock key; ! 39: { ! 40: int i; ! 41: ! 42: for (i=0; i<sizeof(des_cblock); i++) ! 43: key[i] = odd_parity[key[i]]; ! 44: ! 45: return; ! 46: } ! 47: ! 48: /* ! 49: * des_check_key_parity: returns true iff key has the correct des parity. ! 50: * See des_fix_key_parity for the definition of ! 51: * correct des parity. ! 52: */ ! 53: int ! 54: des_check_key_parity(key) ! 55: register des_cblock key; ! 56: { ! 57: int i; ! 58: ! 59: for (i=0; i<sizeof(des_cblock); i++) ! 60: if (key[i] != odd_parity[key[i]]) ! 61: return(0); ! 62: ! 63: return(1); ! 64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.