xref: /aosp_15_r20/external/lzma/CPP/Common/Md5Reg.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Md5Reg.cpp
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker 
5*f6dc9357SAndroid Build Coastguard Worker #include "../../C/Md5.h"
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #include "../Common/MyBuffer2.h"
8*f6dc9357SAndroid Build Coastguard Worker #include "../Common/MyCom.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "../7zip/Common/RegisterCodec.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker Z7_CLASS_IMP_COM_1(
13*f6dc9357SAndroid Build Coastguard Worker   CMd5Hasher
14*f6dc9357SAndroid Build Coastguard Worker   , IHasher
15*f6dc9357SAndroid Build Coastguard Worker )
16*f6dc9357SAndroid Build Coastguard Worker   CAlignedBuffer1 _buf;
17*f6dc9357SAndroid Build Coastguard Worker public:
18*f6dc9357SAndroid Build Coastguard Worker   Byte _mtDummy[1 << 7];
19*f6dc9357SAndroid Build Coastguard Worker 
20*f6dc9357SAndroid Build Coastguard Worker   CMd5 *Md5() { return (CMd5 *)(void *)(Byte *)_buf; }
21*f6dc9357SAndroid Build Coastguard Worker public:
22*f6dc9357SAndroid Build Coastguard Worker   CMd5Hasher():
23*f6dc9357SAndroid Build Coastguard Worker     _buf(sizeof(CMd5))
24*f6dc9357SAndroid Build Coastguard Worker   {
25*f6dc9357SAndroid Build Coastguard Worker     Md5_Init(Md5());
26*f6dc9357SAndroid Build Coastguard Worker   }
27*f6dc9357SAndroid Build Coastguard Worker };
28*f6dc9357SAndroid Build Coastguard Worker 
29*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF2(void, CMd5Hasher::Init())
30*f6dc9357SAndroid Build Coastguard Worker {
31*f6dc9357SAndroid Build Coastguard Worker   Md5_Init(Md5());
32*f6dc9357SAndroid Build Coastguard Worker }
33*f6dc9357SAndroid Build Coastguard Worker 
34*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF2(void, CMd5Hasher::Update(const void *data, UInt32 size))
35*f6dc9357SAndroid Build Coastguard Worker {
36*f6dc9357SAndroid Build Coastguard Worker   Md5_Update(Md5(), (const Byte *)data, size);
37*f6dc9357SAndroid Build Coastguard Worker }
38*f6dc9357SAndroid Build Coastguard Worker 
39*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF2(void, CMd5Hasher::Final(Byte *digest))
40*f6dc9357SAndroid Build Coastguard Worker {
41*f6dc9357SAndroid Build Coastguard Worker   Md5_Final(Md5(), digest);
42*f6dc9357SAndroid Build Coastguard Worker }
43*f6dc9357SAndroid Build Coastguard Worker 
44*f6dc9357SAndroid Build Coastguard Worker REGISTER_HASHER(CMd5Hasher, 0x208, "MD5", MD5_DIGEST_SIZE)
45