md5.c
changeset 4434 a08cb4b5c179
parent 4320 5cb29aa480cc
equal deleted inserted replaced
4433:98632ba2212a 4434:a08cb4b5c179
    55 
    55 
    56 #include "stdafx.h"
    56 #include "stdafx.h"
    57 #include "md5.h"
    57 #include "md5.h"
    58 #include <string.h>
    58 #include <string.h>
    59 
    59 
    60 #undef BYTE_ORDER	/* 1 = big-endian, -1 = little-endian, 0 = unknown */
    60 #undef BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */
    61 #if defined(TTD_BIG_ENDIAN)
    61 #if defined(TTD_BIG_ENDIAN)
    62 #  define BYTE_ORDER 1
    62 #  define BYTE_ORDER 1
    63 #else
    63 #else
    64 #  define BYTE_ORDER -1
    64 #  define BYTE_ORDER -1
    65 #endif
    65 #endif
   156 	 */
   156 	 */
   157 	static const int w = 1;
   157 	static const int w = 1;
   158 
   158 
   159 	if (*((const md5_byte_t *)&w)) /* dynamic little-endian */
   159 	if (*((const md5_byte_t *)&w)) /* dynamic little-endian */
   160 #endif
   160 #endif
   161 #if BYTE_ORDER <= 0		/* little-endian */
   161 #if BYTE_ORDER <= 0 /* little-endian */
   162 	{
   162 	{
   163 	    /*
   163 	    /*
   164 	     * On little-endian machines, we can process properly aligned
   164 	     * On little-endian machines, we can process properly aligned
   165 	     * data without copying it.
   165 	     * data without copying it.
   166 	     */
   166 	     */
   173 		X = xbuf;
   173 		X = xbuf;
   174 	    }
   174 	    }
   175 	}
   175 	}
   176 #endif
   176 #endif
   177 #if BYTE_ORDER == 0
   177 #if BYTE_ORDER == 0
   178 	else			/* dynamic big-endian */
   178 	else /* dynamic big-endian */
   179 #endif
   179 #endif
   180 #if BYTE_ORDER >= 0		/* big-endian */
   180 #if BYTE_ORDER >= 0 /* big-endian */
   181 	{
   181 	{
   182 	    /*
   182 	    /*
   183 	     * On big-endian machines, we must arrange the bytes in the
   183 	     * On big-endian machines, we must arrange the bytes in the
   184 	     * right order.
   184 	     * right order.
   185 	     */
   185 	     */
   186 	    const md5_byte_t *xp = data;
   186 	    const md5_byte_t *xp = data;
   187 	    int i;
   187 	    int i;
   188 
   188 
   189 #  if BYTE_ORDER == 0
   189 #  if BYTE_ORDER == 0
   190 	    X = xbuf;		/* (dynamic only) */
   190 	    X = xbuf; /* (dynamic only) */
   191 #  else
   191 #  else
   192 #    define xbuf X		/* (static only) */
   192 #    define xbuf X /* (static only) */
   193 #  endif
   193 #  endif
   194 	    for (i = 0; i < 16; ++i, xp += 4)
   194 	    for (i = 0; i < 16; ++i, xp += 4)
   195 		xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
   195 		xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24);
   196 	}
   196 	}
   197 #endif
   197 #endif