/* * $Source: /mit/kerberos/src/lib/des/RCS/key_parity.c,v $ * $Author: jtkohl $ * * Copyright 1989 by the Massachusetts Institute of Technology. * * For copying and distribution information, please see the file * <mit-copyright.h>. * * These routines check and fix parity of encryption keys for the DES * algorithm. * * Under U.S. law, this software may not be exported outside the US * without license from the U.S. Commerce department. * * These routines form the library interface to the DES facilities. * */ #ifndef lint static char rcsid_key_parity_c[] = "$Header: key_parity.c,v 4.0 89/01/22 11:45:12 jtkohl Exp $"; #endif lint #include <mit-copyright.h> #include <des.h> #include "des_internal.h" #include "odd.h" /* Load compile-time generated odd_parity table */ /* * des_fixup_key_parity: Forces odd parity per byte; parity is bits * 8,16,...64 in des order, implies 0, 8, 16, ... * vax order. */ void des_fixup_key_parity(key) register des_cblock key; { int i; for (i=0; i<sizeof(des_cblock); i++) key[i] = odd_parity[key[i]]; return; } /* * des_check_key_parity: returns true iff key has the correct des parity. * See des_fix_key_parity for the definition of * correct des parity. */ int des_check_key_parity(key) register des_cblock key; { int i; for (i=0; i<sizeof(des_cblock); i++) if (key[i] != odd_parity[key[i]]) return(0); return(1); }