1 /* See md5.c for explanation and copyright information. */ 2 3 #ifndef MD5_H 4 #define MD5_H 5 6 /* Unlike previous versions of this code, uint32 need not be exactly 7 32 bits, merely 32 bits or more. Choosing a data type which is 32 8 bits instead of 64 is not important; speed is considerably more 9 important. ANSI guarantees that "unsigned long" will be big enough, 10 and always using it seems to have few disadvantages. */ 11 typedef unsigned long uint32; 12 13 struct MD5Context { 14 uint32 buf[4]; 15 uint32 bits[2]; 16 unsigned char in[64]; 17 }; 18 19 void MD5Init(struct MD5Context *context); 20 void MD5Update(struct MD5Context *context, 21 unsigned char const *buf, unsigned len); 22 void MD5Final(unsigned char digest[16], 23 struct MD5Context *context); 24 void MD5Transform(uint32 buf[4], const unsigned char in[64]); 25 26 #endif /* !MD5_H */ 27