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::cout << dir.string() << std::endl;
|
||||||
|
|
||||||
std::ofstream file(dir, std::ios::binary);
|
std::ofstream file(dir, std::ios::binary);
|
||||||
|
|
||||||
cargoFile.seekg(fh.offset);
|
cargoFile.seekg(fh.offset);
|
||||||
|
|
||||||
|
XXH64_reset(xxhState, 0);
|
||||||
|
|
||||||
// Strumieñ wyci¹gaj¹cy
|
// Strumieñ wyci¹gaj¹cy
|
||||||
if (fh.flag == flag::raw)
|
if (fh.flag == flag::raw)
|
||||||
{
|
{
|
||||||
|
|
@ -159,6 +160,7 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
||||||
|
|
||||||
std::vector<char> buffer(streamChunk);
|
std::vector<char> buffer(streamChunk);
|
||||||
cargoFile.read(buffer.data(), streamChunk);
|
cargoFile.read(buffer.data(), streamChunk);
|
||||||
|
XXH64_update(xxhState, buffer.data(), buffer.size());
|
||||||
file.write(reinterpret_cast<const char*>(buffer.data()), streamChunk);
|
file.write(reinterpret_cast<const char*>(buffer.data()), streamChunk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -199,11 +201,18 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
||||||
rawBuffer = eman.decrypt(buffer);
|
rawBuffer = eman.decrypt(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XXH64_update(xxhState, rawBuffer.data(), rawBuffer.size());
|
||||||
file.write(reinterpret_cast<const char*>(rawBuffer.data()), chunkSize);
|
file.write(reinterpret_cast<const char*>(rawBuffer.data()), chunkSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
file.close();
|
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;
|
std::cout << "Unpacking complete!" << std::endl;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue