diff options
author | John Kohl <jtkohl@mit.edu> | 1991-02-26 14:06:25 +0000 |
---|---|---|
committer | John Kohl <jtkohl@mit.edu> | 1991-02-26 14:06:25 +0000 |
commit | 3335d600c1ba76b0864c3013b87a73308786c4b5 (patch) | |
tree | 65d7c63feaac7ca0e8c48161ed9cc0eea9da2906 | |
parent | 023c4acf5c4ded54dabd904800afb651869e81b3 (diff) | |
download | krb5-3335d600c1ba76b0864c3013b87a73308786c4b5.tar.gz krb5-3335d600c1ba76b0864c3013b87a73308786c4b5.tar.xz krb5-3335d600c1ba76b0864c3013b87a73308786c4b5.zip |
update to use latest MD4 code
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1788 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r-- | src/lib/crypto/md4/md4crypto.c | 28 | ||||
-rw-r--r-- | src/lib/crypto/md4/md4glue.c | 27 |
2 files changed, 15 insertions, 40 deletions
diff --git a/src/lib/crypto/md4/md4crypto.c b/src/lib/crypto/md4/md4crypto.c index d11e936622..4a5cd03e20 100644 --- a/src/lib/crypto/md4/md4crypto.c +++ b/src/lib/crypto/md4/md4crypto.c @@ -18,6 +18,7 @@ static char rcsid_md4crypto_c[] = #include <krb5/copyright.h> #include <krb5/krb5.h> +#include <krb5/ext-proto.h> #include <krb5/rsa-md4.h> #include "../des/des_int.h" /* we cheat a bit and call it directly... */ @@ -30,37 +31,24 @@ krb5_pointer seed; size_t seed_length; krb5_checksum *outcksum; { - krb5_octet *output, outtmp[RSA_MD4_DES_CKSUM_LENGTH]; + krb5_octet outtmp[RSA_MD4_DES_CKSUM_LENGTH]; krb5_octet *input = (krb5_octet *)in; krb5_encrypt_block eblock; krb5_keyblock keyblock; krb5_error_code retval; - register int i, j; - MDstruct working; + MD4_CTX 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); + MD4Init(&working); + MD4Update(&working, input, in_length*8); + MD4Final(&working); outcksum->checksum_type = CKSUMTYPE_RSA_MD4_DES; outcksum->length = RSA_MD4_DES_CKSUM_LENGTH; - /* the output code here is adapted from MDprint; - it needs to assemble it into proper byte order. */ - - output = &outtmp[0]; - for (i = 0; i < 4; i++) - for (j = 0; j < 32; j += 8) - *output++ = (working.buffer[i] >> j) & 0xFF; + memcpy((char *)outtmp, (char *)&working.digest[0], 16); - for (i = 0; i < 8; i++) - *output++ = working.count[i]; + memset((char *)&working, 0, sizeof(working)); keyblock.length = seed_length; keyblock.contents = (krb5_octet *)seed; diff --git a/src/lib/crypto/md4/md4glue.c b/src/lib/crypto/md4/md4glue.c index b0576f1253..f0c9be683d 100644 --- a/src/lib/crypto/md4/md4glue.c +++ b/src/lib/crypto/md4/md4glue.c @@ -18,6 +18,7 @@ static char rcsid_md4glue_c[] = #include <krb5/copyright.h> #include <krb5/krb5.h> +#include <krb5/ext-proto.h> #include <krb5/rsa-md4.h> static krb5_error_code @@ -28,33 +29,19 @@ 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; + MD4_CTX 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); + MD4Init(&working); + MD4Update(&working, input, in_length*8); + MD4Final(&working); outcksum->checksum_type = CKSUMTYPE_RSA_MD4; 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; - - for (i = 0; i < 8; i++) - *output++ = working.count[i]; + memcpy((char *)outcksum->contents, (char *)&working.digest[0], 16); + memset((char *)&working, 0, sizeof(working)); return 0; } |