00001 /* 00002 * This is an OpenSSL-compatible implementation of the RSA Data Security, 00003 * Inc. MD5 Message-Digest Algorithm. 00004 * 00005 * Written by Solar Designer <solar@openwall.com> in 2001, and placed in 00006 * the public domain. See md5.c for more information. 00007 */ 00008 00009 #if defined(USE_SSL) 00010 #include <openssl/md5.h> 00011 #elif !defined(_MD5_H) 00012 #define _MD5_H 00013 00014 /* Any 32-bit or wider unsigned integer data type will do */ 00015 typedef unsigned long MD5_u32plus; 00016 00017 typedef struct { 00018 MD5_u32plus lo, hi; 00019 MD5_u32plus a, b, c, d; 00020 unsigned char buffer[64]; 00021 MD5_u32plus block[16]; 00022 } MD5_CTX; 00023 00024 extern void MD5_Init(MD5_CTX *ctx); 00025 extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); 00026 extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); 00027 00028 #endif /* ! _MD5_H */ 00029