Przeprawiona klasa tworzenia kontenerów. Dodano funkcję która wygodnie dobiera odpowiednie działanie dla danych

This commit is contained in:
yanczi 2025-11-07 16:38:19 +01:00
parent 31f08e52d0
commit 8402ce1b65
7 changed files with 84 additions and 33 deletions

View file

@ -132,6 +132,33 @@ bool ExtractCargo::HashValid(const std::vector<char>& data, const uint64_t& crc)
return true;
}
//-----------------------------------------------------------------------------
// Magiczna funkcja do dekompresji i deszyfracji danych
//-----------------------------------------------------------------------------
void ExtractCargo::computingBytes(const std::vector<char>& input, std::vector<char>& output, const int8_t& flag)
{
CompressingManager cm;
switch (flag)
{
case 1:
output = cm.decompress(input);
break;
case 2:
output = eman.decrypt(input);
break;
case 3:
output = cm.decompress(eman.decrypt(input));
break;
default:
output = std::move(input);
break;
}
}
//-----------------------------------------------------------------------------
// Pobieranie nagłówków plików
//-----------------------------------------------------------------------------
@ -180,7 +207,8 @@ void ExtractCargo::ExtractingFilesFromCargo()
cargoFile.read(buffor.data(), fh.size);
std::vector<char> rawBuffor = fh.flag ? cm.decompress(buffor) : buffor;
std::vector<char> rawBuffor;
computingBytes(buffor, rawBuffor, fh.size);
if (!HashValid(rawBuffor, fh.crc))
{