mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-13 04:11:34 -06:00
3.13
This commit is contained in:
64
7zip/Archive/Rar/RarHeader.cpp
Executable file
64
7zip/Archive/Rar/RarHeader.cpp
Executable file
@@ -0,0 +1,64 @@
|
||||
// Archive::Rar::Headers.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "RarHeader.h"
|
||||
#include "Common/CRC.h"
|
||||
|
||||
static void UpdateCRCBytesWithoutStartBytes(CCRC &crc, const void *data,
|
||||
UINT32 size, UINT32 exludeSize)
|
||||
{
|
||||
crc.Update(((const BYTE *)data) + exludeSize, size - exludeSize);
|
||||
}
|
||||
|
||||
namespace NArchive{
|
||||
namespace NRar{
|
||||
namespace NHeader{
|
||||
|
||||
BYTE kMarker[kMarkerSize] = {0x52 + 1, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00};
|
||||
|
||||
class CMarkerInitializer
|
||||
{
|
||||
public:
|
||||
CMarkerInitializer() { kMarker[0]--; };
|
||||
};
|
||||
|
||||
static CMarkerInitializer aMarkerInitializer;
|
||||
|
||||
namespace NArchive
|
||||
{
|
||||
UINT16 CBlock::GetRealCRC() const
|
||||
{
|
||||
CCRC crc;
|
||||
UpdateCRCBytesWithoutStartBytes(crc, this,
|
||||
sizeof(*this), sizeof(CRC));
|
||||
return UINT16(crc.GetDigest());
|
||||
}
|
||||
}
|
||||
|
||||
namespace NFile
|
||||
{
|
||||
/*
|
||||
UINT16 CBlock32::GetRealCRC(const void *aName, UINT32 aNameSize,
|
||||
bool anExtraDataDefined, BYTE *anExtraData) const
|
||||
{
|
||||
CCRC crc;
|
||||
UpdateCRCBytesWithoutStartBytes(crc, this,
|
||||
sizeof(*this), sizeof(HeadCRC));
|
||||
crc.Update(aName, aNameSize);
|
||||
if (anExtraDataDefined)
|
||||
crc.Update(anExtraData, 8);
|
||||
return UINT16(crc.GetDigest());
|
||||
}
|
||||
UINT16 CBlock64::GetRealCRC(const void *aName, UINT32 aNameSize) const
|
||||
{
|
||||
CCRC crc;
|
||||
UpdateCRCBytesWithoutStartBytes(crc, this,
|
||||
sizeof(*this), sizeof(HeadCRC));
|
||||
crc.Update(aName, aNameSize);
|
||||
return UINT16(crc.GetDigest());
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
}}}
|
||||
Reference in New Issue
Block a user