From: John Kohl Date: Thu, 8 Nov 1990 11:34:55 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: krb5-1.0-alpha3~173 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ca537b499bc5ccdc6c34a775908d4e49eccd7fec;p=krb5.git *** empty log message *** git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1419 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/crypto/md4/Imakefile b/src/lib/crypto/md4/Imakefile new file mode 100644 index 000000000..7a291acd9 --- /dev/null +++ b/src/lib/crypto/md4/Imakefile @@ -0,0 +1,18 @@ +# $Source$ +# $Author$ +# $Id$ +# +# Copyright 1990,1991 by the Massachusetts Institute of Technology. +# +# For copying and distribution information, please see the file +# . +# +NormalLibraryObjectRule() + +OBJS= md4.o md4glue.o + +SRCS= md4.c md4glue.c + +DEFINES= $(DESDEFINES) + +NormalLibraryTarget(md4,$(OBJS)) diff --git a/src/lib/crypto/md4/md4glue.c b/src/lib/crypto/md4/md4glue.c new file mode 100644 index 000000000..58c6264be --- /dev/null +++ b/src/lib/crypto/md4/md4glue.c @@ -0,0 +1,61 @@ +/* + * $Source$ + * $Author$ + * + * Copyright 1990 by the Massachusetts Institute of Technology. + * + * For copying and distribution information, please see the file + * . + * + * Kerberos glue for MD4 sample implementation. + */ + +#if !defined(lint) && !defined(SABER) +static char rcsid_md4glue_c[] = +"$Id$"; +#endif /* !lint & !SABER */ + +#include +#include +#include + +static krb5_error_code +md4_sum_func(in, in_length, seed, seed_length, outcksum) +krb5_pointer in; +size_t in_length; +krb5_pointer seed; +size_t seed_length; +krb5_checksum *outcksum; +{ + krb5_octet *output; + krb5_octet *input = (krb5_octet *)in; + register int i, j; + MDstruct working; + + MDbegin(&working); + + for (i = in_length; i >= 64; i -= 64, input += 64) + /* MD4 works in 512 bit chunks (64 bytes) */ + MDupdate(&working, input, 512); + /* now close out remaining stuff. Even if i == 0, we want to + "close out" the MD4 algorithm */ + MDupdate(&working, input, i*8); + + outcksum->checksum_type = RSA_MD4_CKSUMTYPE; + outcksum->length = RSA_MD4_CKSUM_LENGTH; + + /* the output code here is adapted from MDprint */ + + output = outcksum->contents; + for (i = 0; i < 4; i++) + for (j = 0; j < 32; j += 8) + *output++ = (working.buffer[i] >> j) & 0xFF; + + return 0; +} + + +krb5_checksum_entry crc32_cksumtable_entry = { + md4_sum_func, + RSA_MD4_CKSUM_LENGTH, /* CRC-32 is 4 octets */ +};