1 package jp.sfjp.armadillo.archive.cab;
3 import java.util.zip.*;
6 * Checksum for Cab file.
7 * @see <a href="http://msdn.microsoft.com/en-us/library/bb267310.aspx">
8 * Microsoft Cabinet Format (http://msdn.microsoft.com/en-us/library/bb267310.aspx)</a>
10 public final class CabChecksum implements Checksum {
12 private final int seed;
18 public CabChecksum() {
22 public CabChecksum(int seed) {
28 public void update(int b) {
49 public void update(byte[] b, int off, int len) {
50 for (int i = off; i < len; i++)
55 public long getValue() {
57 final int mod = (p + 1) % 4;
64 x |= (tmp << 16) & 0xFF0000;
66 x |= (tmp >> 16) & 0x0000FF;
67 assert x == (x & 0xFFFFFF);
70 x |= (tmp << 8) & 0xFF00;
71 x |= (tmp >> 8) & 0x00FF;
72 assert x == (x & 0xFFFF);
76 assert x == (x & 0xFF);
83 assert tmpValue == (tmpValue & 0xFFFFFFFF);