what-the-bank/sources/org/bouncycastle/crypto/util/Pack.java

160 lines
5.0 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.crypto.util;
import com.google.common.base.Ascii;
import com.google.common.primitives.UnsignedBytes;
import io.flutter.embedding.android.KeyboardMap;
/* loaded from: classes6.dex */
public abstract class Pack {
public static byte[] longToLittleEndian(long[] jArr) {
byte[] bArr = new byte[jArr.length << 3];
longToLittleEndian(jArr, bArr, 0);
return bArr;
}
public static byte[] longToLittleEndian(long j) {
byte[] bArr = new byte[8];
longToLittleEndian(j, bArr, 0);
return bArr;
}
public static void longToLittleEndian(long[] jArr, byte[] bArr, int i) {
for (long j : jArr) {
longToLittleEndian(j, bArr, i);
i += 8;
}
}
public static void longToLittleEndian(long j, byte[] bArr, int i) {
intToLittleEndian((int) (KeyboardMap.kValueMask & j), bArr, i);
intToLittleEndian((int) (j >>> 32), bArr, i + 4);
}
public static byte[] longToBigEndian(long[] jArr) {
byte[] bArr = new byte[jArr.length << 3];
longToBigEndian(jArr, bArr, 0);
return bArr;
}
public static byte[] longToBigEndian(long j) {
byte[] bArr = new byte[8];
longToBigEndian(j, bArr, 0);
return bArr;
}
public static void longToBigEndian(long[] jArr, byte[] bArr, int i) {
for (long j : jArr) {
longToBigEndian(j, bArr, i);
i += 8;
}
}
public static void longToBigEndian(long j, byte[] bArr, int i) {
intToBigEndian((int) (j >>> 32), bArr, i);
intToBigEndian((int) j, bArr, i + 4);
}
public static void littleEndianToLong(byte[] bArr, int i, long[] jArr) {
for (int i2 = 0; i2 < jArr.length; i2++) {
jArr[i2] = littleEndianToLong(bArr, i);
i += 8;
}
}
public static long littleEndianToLong(byte[] bArr, int i) {
return ((littleEndianToInt(bArr, i + 4) & KeyboardMap.kValueMask) << 32) | (littleEndianToInt(bArr, i) & KeyboardMap.kValueMask);
}
public static void littleEndianToInt(byte[] bArr, int i, int[] iArr, int i2, int i3) {
for (int i4 = 0; i4 < i3; i4++) {
iArr[i2 + i4] = littleEndianToInt(bArr, i);
i += 4;
}
}
public static void littleEndianToInt(byte[] bArr, int i, int[] iArr) {
for (int i2 = 0; i2 < iArr.length; i2++) {
iArr[i2] = littleEndianToInt(bArr, i);
i += 4;
}
}
public static int littleEndianToInt(byte[] bArr, int i) {
return (bArr[i + 3] << Ascii.CAN) | (bArr[i] & UnsignedBytes.MAX_VALUE) | ((bArr[i + 1] & UnsignedBytes.MAX_VALUE) << 8) | ((bArr[i + 2] & UnsignedBytes.MAX_VALUE) << 16);
}
public static byte[] intToLittleEndian(int[] iArr) {
byte[] bArr = new byte[iArr.length << 2];
intToLittleEndian(iArr, bArr, 0);
return bArr;
}
public static byte[] intToLittleEndian(int i) {
byte[] bArr = new byte[4];
intToLittleEndian(i, bArr, 0);
return bArr;
}
public static void intToLittleEndian(int[] iArr, byte[] bArr, int i) {
for (int i2 : iArr) {
intToLittleEndian(i2, bArr, i);
i += 4;
}
}
public static void intToLittleEndian(int i, byte[] bArr, int i2) {
bArr[i2] = (byte) i;
bArr[i2 + 1] = (byte) (i >>> 8);
bArr[i2 + 2] = (byte) (i >>> 16);
bArr[i2 + 3] = (byte) (i >>> 24);
}
public static byte[] intToBigEndian(int[] iArr) {
byte[] bArr = new byte[iArr.length << 2];
intToBigEndian(iArr, bArr, 0);
return bArr;
}
public static byte[] intToBigEndian(int i) {
byte[] bArr = new byte[4];
intToBigEndian(i, bArr, 0);
return bArr;
}
public static void intToBigEndian(int[] iArr, byte[] bArr, int i) {
for (int i2 : iArr) {
intToBigEndian(i2, bArr, i);
i += 4;
}
}
public static void intToBigEndian(int i, byte[] bArr, int i2) {
bArr[i2] = (byte) (i >>> 24);
bArr[i2 + 1] = (byte) (i >>> 16);
bArr[i2 + 2] = (byte) (i >>> 8);
bArr[i2 + 3] = (byte) i;
}
public static void bigEndianToLong(byte[] bArr, int i, long[] jArr) {
for (int i2 = 0; i2 < jArr.length; i2++) {
jArr[i2] = bigEndianToLong(bArr, i);
i += 8;
}
}
public static long bigEndianToLong(byte[] bArr, int i) {
return (bigEndianToInt(bArr, i + 4) & KeyboardMap.kValueMask) | ((bigEndianToInt(bArr, i) & KeyboardMap.kValueMask) << 32);
}
public static void bigEndianToInt(byte[] bArr, int i, int[] iArr) {
for (int i2 = 0; i2 < iArr.length; i2++) {
iArr[i2] = bigEndianToInt(bArr, i);
i += 4;
}
}
public static int bigEndianToInt(byte[] bArr, int i) {
return (bArr[i + 3] & UnsignedBytes.MAX_VALUE) | (bArr[i] << Ascii.CAN) | ((bArr[i + 1] & UnsignedBytes.MAX_VALUE) << 16) | ((bArr[i + 2] & UnsignedBytes.MAX_VALUE) << 8);
}
}