MCPcopy Create free account
hub / github.com/Scobalula/Greyhound / CaptureEncodingHeader

Function CaptureEncodingHeader

src/External/CascLib/src/CascOpenStorage.cpp:383–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

381}
382
383int CaptureEncodingHeader(CASC_ENCODING_HEADER & EnHeader, LPBYTE pbFileData, size_t cbFileData)
384{
385 PFILE_ENCODING_HEADER pFileHeader = (PFILE_ENCODING_HEADER)pbFileData;
386
387 // Check the signature ('EN') and version
388 if(cbFileData < sizeof(FILE_ENCODING_HEADER) || pFileHeader->Magic != FILE_MAGIC_ENCODING || pFileHeader->Version != 0x01)
389 return ERROR_BAD_FORMAT;
390
391 // Note that we don't support CKey and EKey sizes other than 0x10 in the ENCODING file
392 if(pFileHeader->CKeyLength != MD5_HASH_SIZE || pFileHeader->EKeyLength != MD5_HASH_SIZE)
393 return ERROR_BAD_FORMAT;
394
395 EnHeader.Magic = pFileHeader->Magic;
396 EnHeader.Version = pFileHeader->Version;
397 EnHeader.CKeyLength = pFileHeader->CKeyLength;
398 EnHeader.EKeyLength = pFileHeader->EKeyLength;
399 EnHeader.CKeyPageCount = ConvertBytesToInteger_4(pFileHeader->CKeyPageCount);
400 EnHeader.CKeyPageSize = ConvertBytesToInteger_2(pFileHeader->CKeyPageSize) * 1024;
401 EnHeader.EKeyPageCount = ConvertBytesToInteger_4(pFileHeader->EKeyPageCount);
402 EnHeader.EKeyPageSize = ConvertBytesToInteger_2(pFileHeader->EKeyPageSize) * 1024;
403 EnHeader.ESpecBlockSize = ConvertBytesToInteger_4(pFileHeader->ESpecBlockSize);
404 return ERROR_SUCCESS;
405}
406
407static DWORD LoadEncodingCKeyPage(TCascStorage * hs, CASC_ENCODING_HEADER & EnHeader, LPBYTE pbPageBegin, LPBYTE pbEndOfPage)
408{

Callers 1

LoadEncodingManifestFunction · 0.85

Calls 2

ConvertBytesToInteger_4Function · 0.85
ConvertBytesToInteger_2Function · 0.85

Tested by

no test coverage detected