summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1991-02-26 14:06:25 +0000
committerJohn Kohl <jtkohl@mit.edu>1991-02-26 14:06:25 +0000
commit3335d600c1ba76b0864c3013b87a73308786c4b5 (patch)
tree65d7c63feaac7ca0e8c48161ed9cc0eea9da2906
parent023c4acf5c4ded54dabd904800afb651869e81b3 (diff)
downloadkrb5-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.c28
-rw-r--r--src/lib/crypto/md4/md4glue.c27
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;
}