md32_common.h update and accompanying MD5 update.
[openssl.git] / crypto / md5 / md5_locl.h
index 16476830691d486ddf038723f0337d6d8b50d15e..84723439e03743f1568ac7f387562ff0a3ce7cbd 100644 (file)
@@ -58,6 +58,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <openssl/opensslconf.h>
 #include <openssl/md5.h>
 
 #ifndef MD5_LONG_LOG2
@@ -65,7 +66,7 @@
 #endif
 
 #ifdef MD5_ASM
-# if defined(__i386) || defined(WIN32)
+# if defined(__i386) || defined(_M_IX86) || defined(__INTEL__)
 #  define md5_block_host_order md5_block_asm_host_order
 # elif defined(__sparc) && defined(ULTRASPARC)
    void md5_block_asm_data_order_aligned (MD5_CTX *c, const MD5_LONG *p,int num);
 # endif
 #endif
 
-void md5_block_host_order (MD5_CTX *c, const MD5_LONG *p,int num);
-void md5_block_data_order (MD5_CTX *c, const unsigned char *p,int num);
+void md5_block_host_order (MD5_CTX *c, const void *p,int num);
+void md5_block_data_order (MD5_CTX *c, const void *p,int num);
 
-#if defined(__i386)
+#if defined(__i386) || defined(_M_IX86) || defined(__INTEL__)
 /*
  * *_block_host_order is expected to handle aligned data while
  * *_block_data_order - unaligned. As algorithm and host (x86)
@@ -98,7 +99,7 @@ void md5_block_data_order (MD5_CTX *c, const unsigned char *p,int num);
  *
  *                             <appro@fy.chalmers.se>
  */
-#define md5_block_data_order(c,p,num) md5_block_host_order((c),(const MD5_LONG *)(p),(num))
+#define md5_block_data_order md5_block_host_order
 #endif
 
 #define DATA_ORDER_IS_LITTLE_ENDIAN
@@ -111,8 +112,15 @@ void md5_block_data_order (MD5_CTX *c, const unsigned char *p,int num);
 #define HASH_UPDATE            MD5_Update
 #define HASH_TRANSFORM         MD5_Transform
 #define HASH_FINAL             MD5_Final
+#define        HASH_MAKE_STRING(c,s)   do {    \
+       unsigned long l;                \
+       l=(c)->A; HOST_l2c(l,(s));      \
+       l=(c)->B; HOST_l2c(l,(s));      \
+       l=(c)->C; HOST_l2c(l,(s));      \
+       l=(c)->D; HOST_l2c(l,(s));      \
+       } while (0)
 #define HASH_BLOCK_HOST_ORDER  md5_block_host_order
-#if defined(B_ENDIAN) || defined(md5_block_data_order)
+#if !defined(L_ENDIAN) || defined(md5_block_data_order)
 #define        HASH_BLOCK_DATA_ORDER   md5_block_data_order
 /*
  * Little-endians (Intel and Alpha) feel better without this.
@@ -127,7 +135,11 @@ void md5_block_data_order (MD5_CTX *c, const unsigned char *p,int num);
  */
 #endif
 
+#ifndef FLAT_INC
 #include "../md32_common.h"
+#else
+#include "md32_common.h"
+#endif
 
 /*
 #define        F(x,y,z)        (((x) & (y))  |  ((~(x)) & (z)))