Test CRC przy wypakowywaniu

This commit is contained in:
yanczi 2025-12-23 21:40:48 +01:00
parent aea66dbfd9
commit 8896624acc

View file

@ -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;