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