Niotso  git revision 558726a9f13d7c3423a683dd2f4323589b66c310
The New Implementation of The Sims Online
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
md5.h
Go to the documentation of this file.
1 #ifndef MD5_H
2 #define MD5_H
3 
4 /* The following tests optimise behaviour on little-endian
5  machines, where there is no need to reverse the byte order
6  of 32 bit words in the MD5 computation. By default,
7  HIGHFIRST is defined, which indicates we're running on a
8  big-endian (most significant byte first) machine, on which
9  the byteReverse function in md5.c must be invoked. However,
10  byteReverse is coded in such a way that it is an identity
11  function when run on a little-endian machine, so calling it
12  on such a platform causes no harm apart from wasting time.
13  If the platform is known to be little-endian, we speed
14  things up by undefining HIGHFIRST, which defines
15  byteReverse as a null macro. Doing things in this manner
16  insures we work on new platforms regardless of their byte
17  order. */
18 
19 #define HIGHFIRST
20 
21 #ifdef __i386__
22 #undef HIGHFIRST
23 #endif
24 
25 /* On machines where "long" is 64 bits, we need to declare
26  uint32 as something guaranteed to be 32 bits. */
27 
28 #ifdef __alpha
29 typedef unsigned int uint32;
30 #else
31 typedef unsigned long uint32;
32 #endif
33 
34 struct MD5Context {
35  uint32 buf[4];
37  union {
38  unsigned char c[64];
39  uint32 i[16];
40  } in;
41 };
42 
43 extern void MD5Init();
44 extern void MD5Update();
45 extern void MD5Final();
46 extern void MD5Transform();
47 
48 /*
49  * This is needed to make RSAREF happy on some MS-DOS compilers.
50  */
51 typedef struct MD5Context MD5_CTX;
52 
53 /* Define CHECK_HARDWARE_PROPERTIES to have main,c verify
54  byte order and uint32 settings. */
55 #define CHECK_HARDWARE_PROPERTIES
56 
57 #endif /* !MD5_H */