| 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); |