diff options
author | Marc Horowitz <marc@mit.edu> | 1998-10-30 02:56:35 +0000 |
---|---|---|
committer | Marc Horowitz <marc@mit.edu> | 1998-10-30 02:56:35 +0000 |
commit | 1440ab035ba04550ddbbfbff1ee9b5571e3d95db (patch) | |
tree | 9d5e8d2e151a930e044c7d0f7c64053d244577a0 /src/lib/des425 | |
parent | 61ddbf948ba6ee70c1bc049268c3dfa73bc9983e (diff) | |
download | krb5-1440ab035ba04550ddbbfbff1ee9b5571e3d95db.zip krb5-1440ab035ba04550ddbbfbff1ee9b5571e3d95db.tar.gz krb5-1440ab035ba04550ddbbfbff1ee9b5571e3d95db.tar.bz2 |
pull up 3des implementation from the marc-3des branch
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11001 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/des425')
-rw-r--r-- | src/lib/des425/ChangeLog | 8 | ||||
-rw-r--r-- | src/lib/des425/Makefile.in | 5 | ||||
-rw-r--r-- | src/lib/des425/new_rnd_key.c | 124 | ||||
-rw-r--r-- | src/lib/des425/random_key.c | 49 |
4 files changed, 84 insertions, 102 deletions
diff --git a/src/lib/des425/ChangeLog b/src/lib/des425/ChangeLog index ce04691..4eeef10 100644 --- a/src/lib/des425/ChangeLog +++ b/src/lib/des425/ChangeLog @@ -1,6 +1,12 @@ +1998-10-27 Marc Horowitz <marc@mit.edu> + + * random_key.c, new_rnd_key.c: make the v4 compat random key code + use the krb5 crypto interface, instead of the des implementation + internals. + Wed Apr 15 18:03:43 1998 Tom Yu <tlyu@mit.edu> - * Makefile.in (SHLIB_EXPDEPS): + * Makefile.in (SHLIB_EXPDEPS): (SHLIB_EXPLIBS): Rename libcrypto -> libk5crypto. Tue Mar 3 08:59:03 1998 Ezra Peisach <epeisach@kangaroo.mit.edu> diff --git a/src/lib/des425/Makefile.in b/src/lib/des425/Makefile.in index 541a516..e96e03f 100644 --- a/src/lib/des425/Makefile.in +++ b/src/lib/des425/Makefile.in @@ -14,7 +14,7 @@ PROG_RPATH=$(KRB5_LIBDIR) RUN_SETUP=@KRB5_RUN_ENV@ LIB=des425 -LIBMAJOR=2 +LIBMAJOR=3 LIBMINOR=0 RELDIR=des425 # Depends on libk5crypto and libkrb5 @@ -27,7 +27,6 @@ SHLIB_RDIRS=$(KRB5_LIBDIR) STOBJLISTS=OBJS.ST STLIBOBJS=cksum.o \ - des.o \ enc_dec.o \ key_parity.o \ key_sched.o \ @@ -44,7 +43,6 @@ STLIBOBJS=cksum.o \ OBJS= cksum.$(OBJEXT) \ - des.$(OBJEXT) \ enc_dec.$(OBJEXT) \ key_parity.$(OBJEXT) \ key_sched.$(OBJEXT) \ @@ -60,7 +58,6 @@ OBJS= cksum.$(OBJEXT) \ k4_glue.$(OBJEXT) SRCS= $(srcdir)/cksum.c \ - $(srcdir)/des.c \ $(srcdir)/enc_dec.c \ $(srcdir)/key_parity.c \ $(srcdir)/key_sched.c \ diff --git a/src/lib/des425/new_rnd_key.c b/src/lib/des425/new_rnd_key.c index 943b9e0..4dd2e4b 100644 --- a/src/lib/des425/new_rnd_key.c +++ b/src/lib/des425/new_rnd_key.c @@ -23,35 +23,34 @@ * */ - -#include "des.h" - -krb5_pointer des425_random_state = 0; - /* - * des_new_random_key: create a random des key - * - * Requires: des_set_random_number_generater_seed must be at called least - * once before this routine is called. - * - * Notes: the returned key has correct parity and is guarenteed not - * to be a weak des key. Des_generate_random_block is used to - * provide the random bits. + * Copyright (C) 1998 by the FundsXpress, INC. + * + * All rights reserved. + * + * Export of this software from the United States of America may require + * a specific license from the United States Government. It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of FundsXpress. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. FundsXpress makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -KRB5_DLLIMP int KRB5_CALLCONV -des_new_random_key(key) - mit_des_cblock key; -{ - krb5_keyblock * keyblock; - krb5_error_code kret; - kret = mit_des_random_key(NULL, des425_random_state, &keyblock); - if (kret) return kret; - - memcpy(key, keyblock->contents, sizeof(mit_des_cblock)); - krb5_free_keyblock(NULL, keyblock); - return 0; -} + +#include "des.h" /* * des_init_random_number_generator: @@ -71,67 +70,38 @@ void des_init_random_number_generator(key) mit_des_cblock key; { - krb5_keyblock keyblock; - krb5_encrypt_block eblock; - - krb5_use_enctype(NULL, &eblock, ENCTYPE_DES_CBC_CRC); + krb5_data seed; - keyblock.enctype = ENCTYPE_DES_CBC_CRC; - keyblock.length = sizeof(mit_des_cblock); - keyblock.contents = (krb5_octet *)key; + seed.length = sizeof(key); + seed.data = key; - if (des425_random_state) - mit_des_finish_random_key(&eblock, &des425_random_state); - mit_des_init_random_key(&eblock, &keyblock, &des425_random_state); + if (krb5_c_random_seed(/* XXX */ 0, &seed)) + /* XXX */ abort(); } /* - * This module implements a random number generator faculty such that the next - * number in any random number stream is very hard to predict without knowing - * the seed for that stream even given the preceeding random numbers. - */ - -/* - * des_set_random_generator_seed: this routine is used to select a random - * number stream. The stream that results is - * totally determined by the passed in key. - * (I.e., calling this routine again with the - * same key allows repeating a sequence of - * random numbers) + * des_new_random_key: create a random des key + * + * Requires: des_set_random_number_generater_seed must be at called least + * once before this routine is called. * - * Requires: key is a valid des key. I.e., has correct parity and is not a - * weak des key. + * Notes: the returned key has correct parity and is guarenteed not + * to be a weak des key. Des_generate_random_block is used to + * provide the random bits. */ -KRB5_DLLIMP void KRB5_CALLCONV -des_set_random_generator_seed(key) +KRB5_DLLIMP int KRB5_CALLCONV +des_new_random_key(key) mit_des_cblock key; { - krb5_data seed; + krb5_keyblock keyblock; + krb5_error_code kret; - seed.length = sizeof(mit_des_cblock); - seed.data = (krb5_pointer) key; + kret = krb5_c_make_random_key(/* XXX */ 0, ENCTYPE_DES_CBC_CRC, &keyblock); + if (kret) return kret; + + memcpy(key, keyblock.contents, sizeof(mit_des_cblock)); + krb5_free_keyblock_contents(/* XXX */ 0, &keyblock); - if (!des425_random_state) - des_init_random_number_generator(key); - mit_des_set_random_generator_seed(&seed, des425_random_state); + return 0; } - -/* - * des_set_sequence_number: this routine is used to set the sequence number - * of the current random number stream. This routine - * may be used to "seek" within the current random - * number stream. - * - * Note that des_set_random_generator_seed resets the sequence number to 0. - */ -void -des_set_sequence_number(new_sequence_number) - mit_des_cblock new_sequence_number; -{ - krb5_data sequence; - - sequence.length = sizeof(new_sequence_number); - sequence.data = (char FAR *)new_sequence_number; - mit_des_set_random_sequence_number(&sequence, des425_random_state); -} diff --git a/src/lib/des425/random_key.c b/src/lib/des425/random_key.c index 04399c1..fde324d 100644 --- a/src/lib/des425/random_key.c +++ b/src/lib/des425/random_key.c @@ -23,39 +23,48 @@ * */ +/* + * Copyright (C) 1998 by the FundsXpress, INC. + * + * All rights reserved. + * + * Export of this software from the United States of America may require + * a specific license from the United States Government. It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of FundsXpress. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. FundsXpress makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ #include "des.h" -extern krb5_pointer des425_random_state; - /* random_key */ int des_random_key(key) mit_des_cblock *key; { - krb5_encrypt_block eblock; krb5_keyblock keyblock; - krb5_keyblock *new_key; krb5_error_code kret; - mit_des_cblock nullkey; - - krb5_use_enctype(NULL, &eblock, ENCTYPE_DES_CBC_CRC); - - memset(nullkey, 0, sizeof(mit_des_cblock)); - mit_des_fixup_key_parity(*key); - - keyblock.enctype = ENCTYPE_DES_CBC_CRC; - keyblock.length = sizeof(mit_des_cblock); - keyblock.contents = (krb5_octet *)nullkey; - if (! des425_random_state) - mit_des_init_random_key(&eblock, &keyblock, &des425_random_state); + if (kret = krb5_c_make_random_key(/* XXX */ 0, ENCTYPE_DES_CBC_CRC, + &keyblock)) + return(kret); - kret = mit_des_random_key(NULL, des425_random_state, &new_key); - if (kret) return kret; + memcpy(key, keyblock.contents, sizeof(mit_des_cblock)); - memcpy(key, new_key->contents, sizeof(mit_des_cblock)); - krb5_free_keyblock(NULL, new_key); return(0); } |