public static void bigEndianToInt(byte[] bs, int off, int[] ns) { for (int i = 0; i < ns.length; ++i) { ns[i] = bigEndianToInt(bs, off); off += 4; } }
public static long bigEndianToLong(byte[] bs, int off) { int hi = bigEndianToInt(bs, off); int lo = bigEndianToInt(bs, off + 4); return ((long)(hi & 0xffffffffL) << 32) | (long)(lo & 0xffffffffL); }
public static int[] asInts(byte[] x) { int[] z = new int[4]; Pack.bigEndianToInt(x, 0, z); return z; }
public static void asInts(byte[] x, int[] z) { Pack.bigEndianToInt(x, 0, z); }
private static int readDigestLength(byte[] encodedState) { return Pack.bigEndianToInt(encodedState, encodedState.length - 4); }
public MD5Digest(byte[] encodedState) { super(encodedState); H1 = Pack.bigEndianToInt(encodedState, 16); H2 = Pack.bigEndianToInt(encodedState, 20); H3 = Pack.bigEndianToInt(encodedState, 24); H4 = Pack.bigEndianToInt(encodedState, 28); xOff = Pack.bigEndianToInt(encodedState, 32); for (int i = 0; i != xOff; i++) { X[i] = Pack.bigEndianToInt(encodedState, 36 + (i * 4)); } }
/** * State constructor - create a digest initialised with the state of a previous one. * * @param encodedState the encoded state from the originating digest. */ public SHA1Digest(byte[] encodedState) { super(encodedState); H1 = Pack.bigEndianToInt(encodedState, 16); H2 = Pack.bigEndianToInt(encodedState, 20); H3 = Pack.bigEndianToInt(encodedState, 24); H4 = Pack.bigEndianToInt(encodedState, 28); H5 = Pack.bigEndianToInt(encodedState, 32); xOff = Pack.bigEndianToInt(encodedState, 36); for (int i = 0; i != xOff; i++) { X[i] = Pack.bigEndianToInt(encodedState, 40 + (i * 4)); } }
/** * State constructor - create a digest initialised with the state of a previous one. * * @param encodedState the encoded state from the originating digest. */ public SHA224Digest(byte[] encodedState) { super(encodedState); H1 = Pack.bigEndianToInt(encodedState, 16); H2 = Pack.bigEndianToInt(encodedState, 20); H3 = Pack.bigEndianToInt(encodedState, 24); H4 = Pack.bigEndianToInt(encodedState, 28); H5 = Pack.bigEndianToInt(encodedState, 32); H6 = Pack.bigEndianToInt(encodedState, 36); H7 = Pack.bigEndianToInt(encodedState, 40); H8 = Pack.bigEndianToInt(encodedState, 44); xOff = Pack.bigEndianToInt(encodedState, 48); for (int i = 0; i != xOff; i++) { X[i] = Pack.bigEndianToInt(encodedState, 52 + (i * 4)); } }
/** * State constructor - create a digest initialised with the state of a previous one. * * @param encodedState the encoded state from the originating digest. */ public SHA256Digest(byte[] encodedState) { super(encodedState); H1 = Pack.bigEndianToInt(encodedState, 16); H2 = Pack.bigEndianToInt(encodedState, 20); H3 = Pack.bigEndianToInt(encodedState, 24); H4 = Pack.bigEndianToInt(encodedState, 28); H5 = Pack.bigEndianToInt(encodedState, 32); H6 = Pack.bigEndianToInt(encodedState, 36); H7 = Pack.bigEndianToInt(encodedState, 40); H8 = Pack.bigEndianToInt(encodedState, 44); xOff = Pack.bigEndianToInt(encodedState, 48); for (int i = 0; i != xOff; i++) { X[i] = Pack.bigEndianToInt(encodedState, 52 + (i * 4)); } }
protected GeneralDigest(byte[] encodedState) { System.arraycopy(encodedState, 0, xBuf, 0, xBuf.length); xBufOff = Pack.bigEndianToInt(encodedState, 4); byteCount = Pack.bigEndianToLong(encodedState, 8); }
static void getNoise(short[] r, byte[] seed, byte nonce) { byte[] iv = new byte[8]; iv[0] = nonce; byte[] buf = new byte[4 * Params.N]; ChaCha20.process(seed, iv, buf, 0, buf.length); for (int i = 0; i < Params.N; ++i) { int t = Pack.bigEndianToInt(buf, i * 4); //r[i] = (short)(bitCount(t) + Params.Q - Params.K); int d = 0; for (int j = 0; j < 8; ++j) { d += (t >> j) & 0x01010101; } int a = ((d >>> 24) + (d >>> 0)) & 0xFF; int b = ((d >>> 16) + (d >>> 8)) & 0xFF; r[i] = (short)(a + Params.Q - b); } }
public CramerShoupCiphertext(byte[] c) { int off = 0, s; byte[] tmp; s = Pack.bigEndianToInt(c, off); off += 4; tmp = Arrays.copyOfRange(c, off, off + s); off += s; u1 = new BigInteger(tmp); s = Pack.bigEndianToInt(c, off); off += 4; tmp = Arrays.copyOfRange(c, off, off + s); off += s; u2 = new BigInteger(tmp); s = Pack.bigEndianToInt(c, off); off += 4; tmp = Arrays.copyOfRange(c, off, off + s); off += s; e = new BigInteger(tmp); s = Pack.bigEndianToInt(c, off); off += 4; tmp = Arrays.copyOfRange(c, off, off + s); off += s; v = new BigInteger(tmp); }
private static byte[] expandToBitLength(int bitLength, byte[] v) { if ((bitLength + 7) / 8 > v.length) { byte[] tmp = new byte[(bitLength + 7) / 8]; System.arraycopy(v, 0, tmp, tmp.length - v.length, v.length); if (isAndroidStyle) { if (bitLength % 8 != 0) { int i = Pack.bigEndianToInt(tmp, 0); Pack.intToBigEndian(i << (8 - (bitLength % 8)), tmp, 0); } } return tmp; } else { if (isAndroidStyle && bitLength < (v.length * 8)) { if (bitLength % 8 != 0) { int i = Pack.bigEndianToInt(v, 0); Pack.intToBigEndian(i << (8 - (bitLength % 8)), v, 0); } } } return v; }
X[0] = Pack.bigEndianToInt(in, inOff); X[1] = Pack.bigEndianToInt(in, inOff + 4); X[2] = Pack.bigEndianToInt(in, inOff + 8); X[3] = Pack.bigEndianToInt(in, inOff + 12);
int[] MK = new int[4]; MK[0] = Pack.bigEndianToInt(key, 0); MK[1] = Pack.bigEndianToInt(key, 4); MK[2] = Pack.bigEndianToInt(key, 8); MK[3] = Pack.bigEndianToInt(key, 12);
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 Builder withSignature(byte[] val) { if (val == null) { throw new NullPointerException("signature == null"); } int n = params.getDigestSize(); int len = params.getWOTSPlus().getParams().getLen(); int height = params.getHeight(); int indexSize = 4; int randomSize = n; int signatureSize = len * n; int authPathSize = height * n; int position = 0; /* extract index */ index = Pack.bigEndianToInt(val, position); position += indexSize; /* extract random */ random = XMSSUtil.extractBytesAtOffset(val, position, randomSize); position += randomSize; withReducedSignature(XMSSUtil.extractBytesAtOffset(val, position, signatureSize + authPathSize)); return this; }
Pack.bigEndianToInt(salt, 0, salt32Bit);
int outOff) X3 = Pack.bigEndianToInt(input, inOff); X2 = Pack.bigEndianToInt(input, inOff + 4); X1 = Pack.bigEndianToInt(input, inOff + 8); X0 = Pack.bigEndianToInt(input, inOff + 12);
int outOff) X3 = wKey[131] ^ Pack.bigEndianToInt(input, inOff); X2 = wKey[130] ^ Pack.bigEndianToInt(input, inOff + 4); X1 = wKey[129] ^ Pack.bigEndianToInt(input, inOff + 8); X0 = wKey[128] ^ Pack.bigEndianToInt(input, inOff + 12);