-
Notifications
You must be signed in to change notification settings - Fork 105
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1646 from NPBruce/dev/2.6
Rolling Dev/2.6 into master
- Loading branch information
Showing
182 changed files
with
19,985 additions
and
2,490 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
libraries/FFGAppImport/AssetImport/AssetStudio/7zip/Common/CRC.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// Common/CRC.cs | ||
|
||
namespace SevenZip | ||
{ | ||
public class CRC | ||
{ | ||
public static readonly uint[] Table; | ||
|
||
static CRC() | ||
{ | ||
Table = new uint[256]; | ||
const uint kPoly = 0xEDB88320; | ||
for (uint i = 0; i < 256; i++) | ||
{ | ||
uint r = i; | ||
for (int j = 0; j < 8; j++) | ||
if ((r & 1) != 0) | ||
r = (r >> 1) ^ kPoly; | ||
else | ||
r >>= 1; | ||
Table[i] = r; | ||
} | ||
} | ||
|
||
uint _value = 0xFFFFFFFF; | ||
|
||
public void Init() { _value = 0xFFFFFFFF; } | ||
|
||
public void UpdateByte(byte b) | ||
{ | ||
_value = Table[(((byte)(_value)) ^ b)] ^ (_value >> 8); | ||
} | ||
|
||
public void Update(byte[] data, uint offset, uint size) | ||
{ | ||
for (uint i = 0; i < size; i++) | ||
_value = Table[(((byte)(_value)) ^ data[offset + i])] ^ (_value >> 8); | ||
} | ||
|
||
public uint GetDigest() { return _value ^ 0xFFFFFFFF; } | ||
|
||
static uint CalculateDigest(byte[] data, uint offset, uint size) | ||
{ | ||
CRC crc = new CRC(); | ||
// crc.Init(); | ||
crc.Update(data, offset, size); | ||
return crc.GetDigest(); | ||
} | ||
|
||
static bool VerifyDigest(uint digest, byte[] data, uint offset, uint size) | ||
{ | ||
return (CalculateDigest(data, offset, size) == digest); | ||
} | ||
} | ||
} |
Oops, something went wrong.