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