From 1cbde6e4fa6a5bde5a62109acb58e02f1990608f Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sat, 28 Aug 1999 12:41:03 +0000 Subject: md32_common.h update and accompanying MD5 update. --- crypto/md32_common.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'crypto/md32_common.h') diff --git a/crypto/md32_common.h b/crypto/md32_common.h index 2b91f9eef2..5e62d40523 100644 --- a/crypto/md32_common.h +++ b/crypto/md32_common.h @@ -94,6 +94,8 @@ * in original (data) byte order, implemented externally (it * actually is optional if data and host are of the same * "endianess"). + * HASH_MAKE_STRING + * macro convering context variables to an ASCII hash string. * * Optional macros: * @@ -178,7 +180,9 @@ #undef ROTATE #ifndef PEDANTIC # if defined(_MSC_VER) -# define ROTATE(a,n) _lrotl(a,n) +# define ROTATE(a,n) _lrotl(a,n) +# elif defined(__MWERKS__) +# define ROTATE(a,n) __rol(a,n) # elif defined(__GNUC__) && __GNUC__>=2 && !defined(NO_ASM) /* * Some GNU C inline assembler templates. Note that these are @@ -581,10 +585,11 @@ void HASH_FINAL (unsigned char *md, HASH_CTX *c) #endif HASH_BLOCK_HOST_ORDER (c,p,1); - l=c->A; HOST_l2c(l,md); - l=c->B; HOST_l2c(l,md); - l=c->C; HOST_l2c(l,md); - l=c->D; HOST_l2c(l,md); +#ifndef HASH_MAKE_STRING +#error "HASH_MAKE_STRING must be defined!" +#else + HASH_MAKE_STRING(c,md); +#endif c->num=0; /* clear stuff, HASH_BLOCK may be leaving some stuff on the stack -- cgit v1.2.3