xref: /aosp_15_r20/external/lzma/C/Md5.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 /* Md5.h -- MD5 Hash
2 : Igor Pavlov : Public domain */
3 
4 #ifndef ZIP7_INC_MD5_H
5 #define ZIP7_INC_MD5_H
6 
7 #include "7zTypes.h"
8 
9 EXTERN_C_BEGIN
10 
11 #define MD5_NUM_BLOCK_WORDS  16
12 #define MD5_NUM_DIGEST_WORDS  4
13 
14 #define MD5_BLOCK_SIZE   (MD5_NUM_BLOCK_WORDS * 4)
15 #define MD5_DIGEST_SIZE  (MD5_NUM_DIGEST_WORDS * 4)
16 
17 typedef struct
18 {
19   UInt64 count;
20   UInt64 _pad_1;
21   // we want 16-bytes alignment here
22   UInt32 state[MD5_NUM_DIGEST_WORDS];
23   UInt64 _pad_2[4];
24   // we want 64-bytes alignment here
25   Byte buffer[MD5_BLOCK_SIZE];
26 } CMd5;
27 
28 void Md5_Init(CMd5 *p);
29 void Md5_Update(CMd5 *p, const Byte *data, size_t size);
30 void Md5_Final(CMd5 *p, Byte *digest);
31 
32 EXTERN_C_END
33 
34 #endif
35