| OLD | NEW |
| (Empty) |
| 1 // SevenZip/CRC.java | |
| 2 | |
| 3 package SevenZip; | |
| 4 | |
| 5 public class CRC | |
| 6 { | |
| 7 static public int[] Table = new int[256]; | |
| 8 | |
| 9 static | |
| 10 { | |
| 11 for (int i = 0; i < 256; i++) | |
| 12 { | |
| 13 int r = i; | |
| 14 for (int j = 0; j < 8; j++) | |
| 15 if ((r & 1) != 0) | |
| 16 r = (r >>> 1) ^ 0xEDB88320; | |
| 17 else | |
| 18 r >>>= 1; | |
| 19 Table[i] = r; | |
| 20 } | |
| 21 } | |
| 22 | |
| 23 int _value = -1; | |
| 24 | |
| 25 public void Init() | |
| 26 { | |
| 27 _value = -1; | |
| 28 } | |
| 29 | |
| 30 public void Update(byte[] data, int offset, int size) | |
| 31 { | |
| 32 for (int i = 0; i < size; i++) | |
| 33 _value = Table[(_value ^ data[offset + i]) & 0xFF] ^ (_v
alue >>> 8); | |
| 34 } | |
| 35 | |
| 36 public void Update(byte[] data) | |
| 37 { | |
| 38 int size = data.length; | |
| 39 for (int i = 0; i < size; i++) | |
| 40 _value = Table[(_value ^ data[i]) & 0xFF] ^ (_value >>>
8); | |
| 41 } | |
| 42 | |
| 43 public void UpdateByte(int b) | |
| 44 { | |
| 45 _value = Table[(_value ^ b) & 0xFF] ^ (_value >>> 8); | |
| 46 } | |
| 47 | |
| 48 public int GetDigest() | |
| 49 { | |
| 50 return _value ^ (-1); | |
| 51 } | |
| 52 } | |
| OLD | NEW |