public static long[] asLongs(byte[] x) { long[] z = new long[2]; Pack.bigEndianToLong(x, 0, z); return z; }
public static void bigEndianToLong(byte[] bs, int off, long[] ns) { for (int i = 0; i < ns.length; ++i) { ns[i] = bigEndianToLong(bs, off); off += 8; } }
public static void asLongs(byte[] x, long[] z) { Pack.bigEndianToLong(x, 0, z); }
protected void restoreState(byte[] encodedState) { xBufOff = Pack.bigEndianToInt(encodedState, 8); System.arraycopy(encodedState, 0, xBuf, 0, xBufOff); byteCount1 = Pack.bigEndianToLong(encodedState, 12); byteCount2 = Pack.bigEndianToLong(encodedState, 20); H1 = Pack.bigEndianToLong(encodedState, 28); H2 = Pack.bigEndianToLong(encodedState, 36); H3 = Pack.bigEndianToLong(encodedState, 44); H4 = Pack.bigEndianToLong(encodedState, 52); H5 = Pack.bigEndianToLong(encodedState, 60); H6 = Pack.bigEndianToLong(encodedState, 68); H7 = Pack.bigEndianToLong(encodedState, 76); H8 = Pack.bigEndianToLong(encodedState, 84); wOff = Pack.bigEndianToInt(encodedState, 92); for (int i = 0; i < wOff; i++) { W[i] = Pack.bigEndianToLong(encodedState, 96 + (i * 8)); } }
public long getPosition() { byte[] res = new byte[counter.length]; System.arraycopy(counter, 0, res, 0, res.length); for (int i = res.length - 1; i >= 1; i--) { int v; if (i < IV.length) { v = (res[i] & 0xff) - (IV[i] & 0xff); } else { v = (res[i] & 0xff); } if (v < 0) { res[i - 1]--; v += 256; } res[i] = (byte)v; } return Pack.bigEndianToLong(res, res.length - 8) * blockSize + byteCount; } }
protected void processWord( byte[] in, int inOff) { W[wOff] = Pack.bigEndianToLong(in, inOff); if (++wOff == 16) { processBlock(); } }
protected GeneralDigest(byte[] encodedState) { System.arraycopy(encodedState, 0, xBuf, 0, xBuf.length); xBufOff = Pack.bigEndianToInt(encodedState, 4); byteCount = Pack.bigEndianToLong(encodedState, 8); }