xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/Common/OutStreamWithSha1.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // OutStreamWithSha1.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 "OutStreamWithSha1.h"
6*f6dc9357SAndroid Build Coastguard Worker 
Z7_COM7F_IMF(COutStreamWithSha1::Write (const void * data,UInt32 size,UInt32 * processedSize))7*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(COutStreamWithSha1::Write(const void *data, UInt32 size, UInt32 *processedSize))
8*f6dc9357SAndroid Build Coastguard Worker {
9*f6dc9357SAndroid Build Coastguard Worker   HRESULT result = S_OK;
10*f6dc9357SAndroid Build Coastguard Worker   if (_stream)
11*f6dc9357SAndroid Build Coastguard Worker     result = _stream->Write(data, size, &size);
12*f6dc9357SAndroid Build Coastguard Worker   if (_calculate)
13*f6dc9357SAndroid Build Coastguard Worker     Sha1_Update(Sha(), (const Byte *)data, size);
14*f6dc9357SAndroid Build Coastguard Worker   _size += size;
15*f6dc9357SAndroid Build Coastguard Worker   if (processedSize)
16*f6dc9357SAndroid Build Coastguard Worker     *processedSize = size;
17*f6dc9357SAndroid Build Coastguard Worker   return result;
18*f6dc9357SAndroid Build Coastguard Worker }
19*f6dc9357SAndroid Build Coastguard Worker 
Z7_COM7F_IMF(CInStreamWithSha1::Read (void * data,UInt32 size,UInt32 * processedSize))20*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(CInStreamWithSha1::Read(void *data, UInt32 size, UInt32 *processedSize))
21*f6dc9357SAndroid Build Coastguard Worker {
22*f6dc9357SAndroid Build Coastguard Worker   UInt32 realProcessedSize;
23*f6dc9357SAndroid Build Coastguard Worker   const HRESULT result = _stream->Read(data, size, &realProcessedSize);
24*f6dc9357SAndroid Build Coastguard Worker   _size += realProcessedSize;
25*f6dc9357SAndroid Build Coastguard Worker   Sha1_Update(Sha(), (const Byte *)data, realProcessedSize);
26*f6dc9357SAndroid Build Coastguard Worker   if (processedSize)
27*f6dc9357SAndroid Build Coastguard Worker     *processedSize = realProcessedSize;
28*f6dc9357SAndroid Build Coastguard Worker   return result;
29*f6dc9357SAndroid Build Coastguard Worker }
30