what-the-bank/sources/o/bFB.java

408 lines
17 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package o;
import com.isprint.e2eea.client.util.E2EEAException;
import java.io.PrintStream;
import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Properties;
import net.sf.scuba.smartcards.ISO7816;
import o.Luy;
/* loaded from: classes3.dex */
public final class bFB {
private static final Luy.Sts c;
private static final Luy.Sts d;
static {
Luy e = Luy.c().e("NONE-SHORT");
d = ((Luy) Luy.b(new Object[]{e, "DES-CBC"}, -322528280, 322528280, System.identityHashCode(e))).c(10).a();
Luy e2 = Luy.c().e("NONE-SHORT");
c = ((Luy) Luy.b(new Object[]{e2, "DES-CBC"}, -322528280, 322528280, System.identityHashCode(e2))).c(11).a();
}
public final C10776eOe e(String str, String str2) {
Luy.Sts sts = d;
try {
e(sts, str, str2);
Key d2 = d(str);
byte[] b = b(((Byte) sts.c.get("MASTER_KEY_VERSION")).byteValue(), ((Byte) sts.c.get("MASTER_KEY_USAGE")).byteValue(), ((Integer) sts.c.get("MASTER_KEY_KEYLENGTH")).intValue());
new HashMap();
Ymn.d(VBO.d(8));
String b2 = b(sts, d2, b, str2, null);
C10776eOe c10776eOe = new C10776eOe();
c10776eOe.c = b2;
return c10776eOe;
} catch (E2EEAException e) {
return c(e);
}
}
private static String b(Luy.Sts sts, Key key, byte[] bArr, String str, String str2) throws E2EEAException {
try {
byte[][] d2 = d(bArr, 16, 8, 16);
byte[] bArr2 = d2[0];
byte[] bArr3 = d2[1];
byte[] bArr4 = d2[2];
byte[] c2 = c(key, bArr);
byte[] bArr5 = new byte[0];
if (str != null) {
bArr5 = Ymn.d(c(bArr2, bArr3, Ymn.d(str)));
}
byte[] bArr6 = new byte[0];
if (str2 != null) {
bArr6 = Ymn.d(c(bArr2, bArr3, Ymn.d(str2)));
}
byte[][] bArr7 = new byte[7];
bArr7[0] = (byte[]) sts.c.get("MESSAGE_VERSION");
byte[] bArr8 = null;
bArr7[1] = !sts.c.containsKey("CIPHER_PARAM_MESSAGE_TYPE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_MESSAGE_TYPE_BYTES");
bArr7[2] = c2;
bArr7[3] = !sts.c.containsKey("CIPHER_PARAM_HASH_MODE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_HASH_MODE_BYTES");
if (sts.c.containsKey("CIPHER_PARAM_ENCRYPTION_MODE")) {
bArr8 = (byte[]) sts.c.get("CIPHER_PARAM_ENCRYPTION_MODE_BYTES");
}
bArr7[4] = bArr8;
bArr7[5] = bArr5;
bArr7[6] = bArr6;
byte[] a = C17821zzv.a(bArr7);
return Ymn.a(C17821zzv.a(a, b(bArr4, a)));
} catch (GeneralSecurityException e) {
StringBuilder sb = new StringBuilder("Invalid PIN Message - ");
sb.append(e.getMessage());
throw new E2EEAException.InvalidPINMessage(sb.toString());
}
}
private static byte[] c(Key key, byte[] bArr) throws GeneralSecurityException {
try {
return Ymn.d(VBO.b(key, bArr, "RSA", null));
} catch (InvalidKeyException unused) {
throw new E2EEAException.InvalidRSAKey();
}
}
private static byte[][] d(byte[] bArr, int... iArr) throws E2EEAException {
try {
if (bArr == null) {
throw new E2EEAException.InvalidMasterKey();
}
if (bArr.length == 0) {
throw new E2EEAException.InvalidMasterKeyLength();
}
int length = iArr.length;
int i = 0;
for (int i2 = 0; i2 < 3; i2++) {
i += iArr[i2];
}
if (40 != i) {
throw new E2EEAException.InvalidMasterKey("Invalid Key Derivation Length");
}
byte[] bArr2 = new byte[40];
byte b = 65;
int i3 = 0;
while (i3 < 40) {
int i4 = b + ISO7816.INS_GET_RESPONSE;
byte[] bArr3 = new byte[bArr.length + i4];
for (int i5 = 0; i5 < i4; i5++) {
bArr3[i5] = b;
}
System.arraycopy(bArr, 0, bArr3, i4, bArr.length);
byte[] b2 = VBO.b(bArr3);
System.arraycopy(b2, 0, bArr2, i3, b2.length);
b = (byte) (b + 1);
i3 += b2.length;
}
byte[][] bArr4 = new byte[iArr.length];
int i6 = 0;
for (int i7 = 0; i7 < 3; i7++) {
int i8 = iArr[i7];
byte[] bArr5 = new byte[i8];
System.arraycopy(bArr2, i6, bArr5, 0, i8);
bArr4[i7] = bArr5;
i6 += iArr[i7];
}
int length2 = iArr.length;
return bArr4;
} catch (Throwable th) {
StringBuilder sb = new StringBuilder("Invalid Key Derivation - ");
sb.append(th.getMessage());
throw new E2EEAException.OtherError(sb.toString());
}
}
private static byte[] c(byte[] bArr, byte[] bArr2, byte[] bArr3) throws GeneralSecurityException {
try {
byte[] bArr4 = new byte[16];
System.arraycopy(bArr3, 0, bArr4, 0, bArr3.length);
for (int length = bArr3.length; length < 16; length++) {
bArr4[length] = 32;
}
return VBO.b(VBO.e(bArr), bArr4, "DESede/CBC/NoPadding", bArr2);
} catch (GeneralSecurityException e) {
StringBuilder sb = new StringBuilder("Invalid HEANPB - ");
sb.append(e.getMessage());
throw new E2EEAException.InvalidPINMessage(sb.toString());
} catch (Throwable th) {
StringBuilder sb2 = new StringBuilder("Invalid PIN String - ");
sb2.append(th.getMessage());
throw new E2EEAException.InvalidPINBlock(sb2.toString());
}
}
private static byte[] b(byte b, byte b2, int i) {
try {
return C17821zzv.a(new byte[]{b, b2}, VBO.d(i));
} catch (Throwable th) {
StringBuilder sb = new StringBuilder("Invalid Master Key - ");
sb.append(th.getMessage());
throw new E2EEAException.InvalidMasterKey(sb.toString());
}
}
private static Key d(String str) {
try {
return VBO.e(str);
} catch (ArrayIndexOutOfBoundsException e) {
throw new E2EEAException.InvalidRSAKey(e.getMessage());
} catch (GeneralSecurityException e2) {
throw new E2EEAException.InvalidRSAKey(e2.getMessage());
}
}
private static byte[] b(byte[] bArr, byte[] bArr2) throws E2EEAException {
try {
if (bArr == null) {
throw new E2EEAException.InvalidMACKey();
}
int length = bArr.length;
if (length != 16 && length != 24) {
throw new E2EEAException.InvalidMACKeyLength();
}
byte[] bArr3 = new byte[8];
System.arraycopy(Ymn.d(VBO.b(bArr, bArr2)), 0, bArr3, 0, 8);
return bArr3;
} catch (GeneralSecurityException e) {
StringBuilder sb = new StringBuilder("Invalid MAC - ");
sb.append(e.getMessage());
throw new E2EEAException.InvalidPINMessage(sb.toString());
}
}
private static void e(Luy.Sts sts, String str, String str2) {
if (str == null || "".equals(str)) {
throw new E2EEAException.PublicKeyNotFound("Public key is not found");
}
String[] split = str.split(",", 2);
if (str.length() == 0 || split.length < 2) {
throw new E2EEAException.InvalidRSAKeyLength();
}
b(str2);
if (sts == null) {
throw new E2EEAException.InvalidSymmetricParameters();
}
if ((!sts.c.containsKey("CIPHER_PARAM_HASH_MODE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_HASH_MODE_BYTES")) == null) {
throw new E2EEAException.InvalidSymmetricParameters("Hash mode not found");
}
if ((!sts.c.containsKey("CIPHER_PARAM_ENCRYPTION_MODE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_ENCRYPTION_MODE_BYTES")) == null) {
throw new E2EEAException.InvalidSymmetricParameters("Encryption mode not found");
}
if ((!sts.c.containsKey("CIPHER_PARAM_MESSAGE_TYPE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_MESSAGE_TYPE_BYTES")) == null) {
throw new E2EEAException.InvalidPINMessage();
}
if ((sts.c.containsKey("CIPHER_PARAM_HASH_MODE") ? (byte[]) sts.c.get("CIPHER_PARAM_HASH_MODE_BYTES") : null)[0] == 48 && str2.length() > 16) {
throw new E2EEAException.InvalidPINLength("PIN length exceeded for Hash Mode 0");
}
int length = split[0].length() / 2;
int length2 = split[1].length() / 2;
if (length != length2) {
StringBuilder sb = new StringBuilder("Invalid RSA key length mod=");
sb.append(length);
sb.append("<>");
sb.append(length);
sb.append(" exp=");
sb.append(length2);
sb.append("<>");
sb.append(length);
throw new E2EEAException.InvalidRSAKeyLength(sb.toString());
}
if (((Integer) sts.c.get("MASTER_KEY_KEYLENGTH")).intValue() + 2 > length) {
throw new E2EEAException.InvalidEncodedMessageLength("input data too large for RSA encryption");
}
}
private static void b(String str) {
if (str == null || str.length() == 0) {
throw new E2EEAException.InvalidPIN("Invalid PIN String");
}
int length = str.length();
if (length > 30 || length <= 0) {
throw new E2EEAException.InvalidPINLength("Invalid PIN length");
}
for (int i = 0; i < str.length(); i++) {
char charAt = str.charAt(i);
if ((charAt < '0' || charAt > '9') && ((charAt < 'A' || charAt > 'Z') && (charAt < 'a' || charAt > 'z'))) {
throw new E2EEAException.InvalidPIN("Invalid PIN String");
}
}
}
private C10776eOe c(E2EEAException e2EEAException) {
String message = e2EEAException.getMessage() != null ? e2EEAException.getMessage() : "";
PrintStream printStream = System.out;
StringBuilder sb = new StringBuilder("Error no : ");
sb.append(e2EEAException.e());
sb.append(" - ");
sb.append(message);
printStream.println(sb.toString());
StringBuilder sb2 = new StringBuilder();
sb2.append(getClass().getSimpleName());
sb2.append("Debug");
"true".equals(System.getProperty(sb2.toString()));
C10776eOe c10776eOe = new C10776eOe();
c10776eOe.d = e2EEAException.e();
c10776eOe.a = e2EEAException.getMessage();
return c10776eOe;
}
public final C10776eOe d(String str, String str2, String str3, Properties properties) {
int charAt;
int charAt2;
Luy.Sts sts = c;
try {
b(str3);
String property = properties.getProperty("param_other_passwordQualityPolicy");
if (property != null && !"".equals(property)) {
C0946SPr c0946SPr = new C0946SPr(property);
String property2 = properties.getProperty("param_other_userId");
if (str3.length() < c0946SPr.k || str3.length() > c0946SPr.f) {
throw new E2EEAException.DeniedByPasswordLengthPolicy(c0946SPr.k, c0946SPr.f);
}
if (c0946SPr.c == 0 && str3.equalsIgnoreCase(property2)) {
throw new E2EEAException.DeniedByPasswordDisallowSameAsUserIdPolicy();
}
if (c0946SPr.c == 1 && (str3.trim().indexOf(property2.trim()) >= 0 || str3.trim().indexOf(property2.trim()) >= 0)) {
throw new E2EEAException.DeniedByPasswordDisallowSameAsUserIdPolicy();
}
if (!c0946SPr.d) {
HashSet hashSet = new HashSet();
int i = 0;
while (i < str3.length()) {
int i2 = i + 1;
if (hashSet.contains(str3.substring(i, i2))) {
throw new E2EEAException.DeniedByPasswordRepeatedCharPolicy();
}
hashSet.add(str3.substring(i, i2));
i = i2;
}
}
if (c0946SPr.d && c0946SPr.e.matcher(str3).matches()) {
throw new E2EEAException.DeniedByPasswordConsecutiveCharPolicy();
}
if (c0946SPr.j == 0 && !Character.isLetter(str3.charAt(0))) {
throw new E2EEAException.DeniedByPasswordFirstCharCheckingPolicy(c0946SPr.j);
}
if (c0946SPr.j == 1 && !Character.isDigit(str3.charAt(0))) {
throw new E2EEAException.DeniedByPasswordFirstCharCheckingPolicy(c0946SPr.j);
}
if (c0946SPr.j == 2 && Character.isLetterOrDigit(str3.charAt(0))) {
throw new E2EEAException.DeniedByPasswordFirstCharCheckingPolicy(c0946SPr.j);
}
if (c0946SPr.g > 0) {
int i3 = 0;
for (int i4 = 0; i4 < str3.length(); i4++) {
if (Character.isLetter(str3.charAt(i4))) {
i3++;
}
}
if (i3 < c0946SPr.g) {
throw new E2EEAException.DeniedByPasswordMinAlphaPolicy(c0946SPr.g);
}
}
if (!c0946SPr.a) {
int i5 = 0;
int i6 = 0;
for (int i7 = 0; i7 < str3.length(); i7++) {
if (i5 > i6) {
i6 = i5;
}
if (i7 > 0) {
int i8 = i7 - 1;
if (Character.isLetter(str3.charAt(i8)) && Character.isLetter(str3.charAt(i7)) && ((charAt2 = str3.charAt(i8) - str3.charAt(i7)) == 1 || charAt2 == -1)) {
i5++;
}
}
i5 = 0;
}
if (i5 <= i6) {
i5 = i6;
}
if (i5 + 1 > Math.max(c0946SPr.i, 1)) {
throw new E2EEAException.DeniedByPasswordRepeatedAlphabetPolicy();
}
}
if (!c0946SPr.b) {
int i9 = 0;
int i10 = 0;
for (int i11 = 0; i11 < str3.length(); i11++) {
if (i9 > i10) {
i10 = i9;
}
if (i11 > 0) {
int i12 = i11 - 1;
if (Character.isDigit(str3.charAt(i12)) && Character.isDigit(str3.charAt(i11)) && ((charAt = str3.charAt(i12) - str3.charAt(i11)) == 1 || charAt == -1)) {
i9++;
}
}
i9 = 0;
}
if (i9 <= i10) {
i9 = i10;
}
if (i9 + 1 > Math.max(c0946SPr.i, 1)) {
throw new E2EEAException.DeniedByPasswordRepeatedNumericPolicy();
}
}
int i13 = 0;
int i14 = 0;
int i15 = 0;
for (int i16 = 0; i16 < str3.length(); i16++) {
char charAt3 = str3.charAt(i16);
if (charAt3 >= 'A' && charAt3 <= 'Z') {
i14++;
} else if (charAt3 >= 'a' && charAt3 <= 'z') {
i15++;
} else if (charAt3 >= '0' && charAt3 <= '9') {
i13++;
}
}
if (i13 < c0946SPr.f8361o) {
throw new E2EEAException.DeniedByPasswordMinNumericCharsPolicy(c0946SPr.f8361o);
}
if (i14 < c0946SPr.n) {
throw new E2EEAException.DeniedByPasswordMinUppercaseCharsPolicy(c0946SPr.n);
}
if (i15 < c0946SPr.h) {
throw new E2EEAException.DeniedByPasswordMinLowercaseCharsPolicy(c0946SPr.h);
}
}
if ((!sts.c.containsKey("CIPHER_PARAM_HASH_MODE") ? null : (byte[]) sts.c.get("CIPHER_PARAM_HASH_MODE_BYTES"))[0] == 48 && str3.length() > 16) {
throw new E2EEAException.InvalidPINLength("PIN length exceeded for Hash Mode 0");
}
e(sts, str, str2);
Key d2 = d(str);
byte[] b = b(((Byte) sts.c.get("MASTER_KEY_VERSION")).byteValue(), ((Byte) sts.c.get("MASTER_KEY_USAGE")).byteValue(), ((Integer) sts.c.get("MASTER_KEY_KEYLENGTH")).intValue());
new HashMap();
Ymn.d(VBO.d(8));
String b2 = b(sts, d2, b, str2, str3);
C10776eOe c10776eOe = new C10776eOe();
c10776eOe.c = b2;
return c10776eOe;
} catch (E2EEAException e) {
return c(e);
}
}
}