Test CRC przy wypakowywaniu
This commit is contained in:
parent
aea66dbfd9
commit
8896624acc
1 changed files with 10 additions and 1 deletions
|
|
@ -147,9 +147,10 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
|||
std::cout << dir.string() << std::endl;
|
||||
|
||||
std::ofstream file(dir, std::ios::binary);
|
||||
|
||||
cargoFile.seekg(fh.offset);
|
||||
|
||||
XXH64_reset(xxhState, 0);
|
||||
|
||||
// Strumieñ wyci¹gaj¹cy
|
||||
if (fh.flag == flag::raw)
|
||||
{
|
||||
|
|
@ -159,6 +160,7 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
|||
|
||||
std::vector<char> buffer(streamChunk);
|
||||
cargoFile.read(buffer.data(), streamChunk);
|
||||
XXH64_update(xxhState, buffer.data(), buffer.size());
|
||||
file.write(reinterpret_cast<const char*>(buffer.data()), streamChunk);
|
||||
}
|
||||
}
|
||||
|
|
@ -199,11 +201,18 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
|||
rawBuffer = eman.decrypt(buffer);
|
||||
}
|
||||
|
||||
XXH64_update(xxhState, rawBuffer.data(), rawBuffer.size());
|
||||
file.write(reinterpret_cast<const char*>(rawBuffer.data()), chunkSize);
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
if (XXH64_digest(xxhState) != fh.crc)
|
||||
{
|
||||
std::cerr << dir.string() << " Error: Corrupted data integration CRC" << std::endl;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "Unpacking complete!" << std::endl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue