/* md5.h - Exports and Data Strutures for md5.c */ #define _ARISA_MD5_H #ifndef U32 #define U32 uint32_t #endif/*U32*/ #ifndef U16 #define U16 uint16_t #endif/*U16*/ #ifndef U8 #define U8 uint8_t #endif/*U8*/ typedef struct { U32 signature; /* safer cast in get_md5_ctx() */ U32 A, B, C, D; /* current digest */ U32 bytes_low; /* counts bytes in message */ U32 bytes_high; /* turn it into a 64-bit counter */ U8 buffer[128]; /* collect complete 64 byte blocks */ } MD5_CTX; void MD5Init(MD5_CTX *ctx); void MD5Transform(MD5_CTX* ctx, const U8* buf, size_t blocks); void MD5Update(MD5_CTX* ctx, const U8* buf, size_t len); void MD5Final(U8* digest, MD5_CTX *ctx);