1 /* 2 * This is an OpenSSL-compatible implementation of the RSA Data Security, 3 * Inc. MD5 Message-Digest Algorithm. 4 * 5 * Written by Solar Designer <solar@openwall.com> in 2001, and placed in 6 * the public domain. See md5c.c for more information. 7 */ 8 9 #ifndef _MD5_H 10 #define _MD5_H 11 12 /* Any 32-bit or wider integer data type will do */ 13 typedef unsigned long MD5_u32plus; 14 15 typedef struct { 16 MD5_u32plus lo, hi; 17 MD5_u32plus a, b, c, d; 18 unsigned char buffer[64]; 19 MD5_u32plus block[16]; 20 } MD5_CTX; 21 22 extern void MD5_Init(MD5_CTX *ctx); 23 extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); 24 extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); 25 26 #endif 27