Crc32C implements Checksum { @Override public void update(byte[] b, int off, int len) { int localCrc = crc; while (len > 7) { int c0 = b[off++] ^ localCrc; int c1 = b[off++] ^ (localCrc >>>= 8); int c2 = b[off++] ^ (localCrc >>>= 8); int c3 = b[off++] ^ (localCrc >>>= 8); localCrc = (T8_7[c0 & 0xff] ^ T8_6[c1 & 0xff]) ^ (T8_5[c2 & 0xff] ^ T8_4[c3 & 0xff]); localCrc ^= (T8_3[b[off++] & 0xff] ^ T8_2[b[off++] & 0xff]) ^ (T8_1[b[off++] & 0xff] ^ T8_0[b[off++] & 0xff]); len -= 8; } while (len > 0) { localCrc = (localCrc >>> 8) ^ T8_0[(localCrc ^ b[off++]) & 0xff]; len--; } crc = localCrc; } Crc32C(); static int maskedCrc32c(byte[] data); static int maskedCrc32c(byte[] data, int offset, int length); static int mask(int crc); static int unmask(int maskedCrc); int getMaskedValue(); int getIntValue(); @Override long getValue(); @Override void reset(); @Override void update(byte[] b, int off, int len); @Override void update(int b);  }
@Test public void testUpdate() { Crc32C c = new Crc32C(); c.update(1); c.getMaskedValue(); c.getIntValue(); c.getValue(); }