Last change
on this file since 17387 was 17387, checked in by oranfry, 16 years ago |
Modified ant task which works with the updated 7zip API
|
File size:
899 bytes
|
Line | |
---|
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] ^ (_value >>> 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 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.