1 /* The include file for both the MD4 and MD5 routines. */ 2 3 #define MD4_DIGEST_LEN 16 4 #define MD5_DIGEST_LEN 16 5 #define MAX_DIGEST_LEN MD5_DIGEST_LEN 6 7 #define CSUM_CHUNK 64 8 9 typedef struct { 10 uint32 A, B, C, D; 11 uint32 totalN; /* bit count, lower 32 bits */ 12 uint32 totalN2; /* bit count, upper 32 bits */ 13 uchar buffer[CSUM_CHUNK]; 14 } md_context; 15 16 void mdfour_begin(md_context *md); 17 void mdfour_update(md_context *md, const uchar *in, uint32 length); 18 void mdfour_result(md_context *md, uchar digest[MD4_DIGEST_LEN]); 19 20 void get_mdfour(uchar digest[MD4_DIGEST_LEN], const uchar *in, int length); 21 22 void md5_begin(md_context *ctx); 23 void md5_update(md_context *ctx, const uchar *input, uint32 length); 24 void md5_result(md_context *ctx, uchar digest[MD5_DIGEST_LEN]); 25 26 void get_md5(uchar digest[MD5_DIGEST_LEN], const uchar *input, int n); 27