what-the-bank/sources/org/bouncycastle/util/Strings.java

287 lines
9.3 KiB
Java

package org.bouncycastle.util;
import com.google.common.base.Ascii;
import com.google.common.primitives.UnsignedBytes;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Vector;
import net.sf.scuba.smartcards.ISO7816;
import org.jmrtd.PassportService;
/* loaded from: classes6.dex */
public final class Strings {
private static String LINE_SEPARATOR;
public static String toUpperCase(String str) {
char[] charArray = str.toCharArray();
boolean z = false;
for (int i = 0; i != charArray.length; i++) {
char c = charArray[i];
if ('a' <= c && 'z' >= c) {
charArray[i] = (char) (c - ' ');
z = true;
}
}
return z ? new String(charArray) : str;
}
public static byte[] toUTF8ByteArray(char[] cArr) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
toUTF8ByteArray(cArr, byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
} catch (IOException unused) {
throw new IllegalStateException("cannot encode string to byte array!");
}
}
public static byte[] toUTF8ByteArray(String str) {
return toUTF8ByteArray(str.toCharArray());
}
/* JADX WARN: Multi-variable type inference failed */
public static void toUTF8ByteArray(char[] cArr, OutputStream outputStream) throws IOException {
int i;
int i2;
int i3;
int i4;
int i5 = 0;
while (i5 < cArr.length) {
char c = cArr[i5];
if (c >= 128) {
if (c < 2048) {
i3 = (c >> 6) | 192;
i4 = c;
} else {
if (c < 55296 || c > 57343) {
i = (c >> 12) | PassportService.DEFAULT_MAX_BLOCKSIZE;
i2 = c;
} else {
i5++;
if (i5 >= cArr.length) {
throw new IllegalStateException("invalid UTF-16 codepoint");
}
char c2 = cArr[i5];
if (c > 56319) {
throw new IllegalStateException("invalid UTF-16 codepoint");
}
int i6 = (((c & 1023) << 10) | (c2 & 1023)) + 65536;
outputStream.write((i6 >> 18) | 240);
i = ((i6 >> 12) & 63) | 128;
i2 = i6;
}
outputStream.write(i);
i3 = ((i2 >> 6) & 63) | 128;
i4 = i2;
}
outputStream.write(i3);
c = (i4 & 63) | 128;
}
outputStream.write(c);
i5++;
}
}
/* loaded from: classes6.dex */
static class StringListImpl extends ArrayList<String> implements StringList {
@Override // org.bouncycastle.util.StringList
public String[] toStringArray(int i, int i2) {
String[] strArr = new String[i2 - i];
for (int i3 = i; i3 != size() && i3 != i2; i3++) {
strArr[i3 - i] = get(i3);
}
return strArr;
}
@Override // org.bouncycastle.util.StringList
public String[] toStringArray() {
int size = size();
String[] strArr = new String[size];
for (int i = 0; i != size; i++) {
strArr[i] = get(i);
}
return strArr;
}
@Override // java.util.ArrayList, java.util.AbstractList, java.util.List
public String set(int i, String str) {
return (String) super.set(i, (int) str);
}
@Override // java.util.ArrayList, java.util.AbstractList, java.util.List, org.bouncycastle.util.StringList
public /* bridge */ /* synthetic */ String get(int i) {
return (String) super.get(i);
}
@Override // java.util.ArrayList, java.util.AbstractList, java.util.AbstractCollection, java.util.Collection, java.util.List
public boolean add(String str) {
return super.add((StringListImpl) str);
}
@Override // java.util.ArrayList, java.util.AbstractList, java.util.List
public void add(int i, String str) {
super.add(i, (int) str);
}
private StringListImpl() {
}
}
public static String toLowerCase(String str) {
char[] charArray = str.toCharArray();
boolean z = false;
for (int i = 0; i != charArray.length; i++) {
char c = charArray[i];
if ('A' <= c && 'Z' >= c) {
charArray[i] = (char) (c + ' ');
z = true;
}
}
return z ? new String(charArray) : str;
}
public static byte[] toByteArray(char[] cArr) {
int length = cArr.length;
byte[] bArr = new byte[length];
for (int i = 0; i != length; i++) {
bArr[i] = (byte) cArr[i];
}
return bArr;
}
public static byte[] toByteArray(String str) {
int length = str.length();
byte[] bArr = new byte[length];
for (int i = 0; i != length; i++) {
bArr[i] = (byte) str.charAt(i);
}
return bArr;
}
public static int toByteArray(String str, byte[] bArr, int i) {
int length = str.length();
for (int i2 = 0; i2 < length; i2++) {
bArr[i + i2] = (byte) str.charAt(i2);
}
return length;
}
public static String[] split(String str, char c) {
int i;
Vector vector = new Vector();
boolean z = true;
while (true) {
if (!z) {
break;
}
int indexOf = str.indexOf(c);
if (indexOf > 0) {
vector.addElement(str.substring(0, indexOf));
str = str.substring(indexOf + 1);
} else {
vector.addElement(str);
z = false;
}
}
int size = vector.size();
String[] strArr = new String[size];
for (i = 0; i != size; i++) {
strArr[i] = (String) vector.elementAt(i);
}
return strArr;
}
public static StringList newList() {
return new StringListImpl();
}
public static String lineSeparator() {
return LINE_SEPARATOR;
}
public static String fromUTF8ByteArray(byte[] bArr) {
char c;
int i;
byte b;
int i2 = 0;
int i3 = 0;
int i4 = 0;
while (i3 < bArr.length) {
byte b2 = bArr[i3];
if ((b2 & 240) == 240) {
i4 += 2;
i3 += 4;
} else {
i3 = (b2 & ISO7816.INS_CREATE_FILE) == 224 ? i3 + 3 : (b2 & ISO7816.INS_GET_RESPONSE) == 192 ? i3 + 2 : i3 + 1;
i4++;
}
}
char[] cArr = new char[i4];
int i5 = 0;
while (i2 < bArr.length) {
byte b3 = bArr[i2];
if ((b3 & 240) == 240) {
int i6 = (((((b3 & 3) << 18) | ((bArr[i2 + 1] & 63) << 12)) | ((bArr[i2 + 2] & 63) << 6)) | (bArr[i2 + 3] & 63)) - 65536;
char c2 = (char) ((i6 >> 10) | 55296);
c = (char) ((i6 & 1023) | 56320);
cArr[i5] = c2;
i2 += 4;
i5++;
} else if ((b3 & ISO7816.INS_CREATE_FILE) == 224) {
c = (char) (((b3 & 15) << 12) | ((bArr[i2 + 1] & 63) << 6) | (bArr[i2 + 2] & 63));
i2 += 3;
} else {
if ((b3 & ISO7816.INS_WRITE_BINARY) == 208) {
i = (b3 & Ascii.US) << 6;
b = bArr[i2 + 1];
} else if ((b3 & ISO7816.INS_GET_RESPONSE) == 192) {
i = (b3 & Ascii.US) << 6;
b = bArr[i2 + 1];
} else {
c = (char) (b3 & UnsignedBytes.MAX_VALUE);
i2++;
}
c = (char) (i | (b & 63));
i2 += 2;
}
cArr[i5] = c;
i5++;
}
return new String(cArr);
}
public static String fromByteArray(byte[] bArr) {
return new String(asCharArray(bArr));
}
public static char[] asCharArray(byte[] bArr) {
int length = bArr.length;
char[] cArr = new char[length];
for (int i = 0; i != length; i++) {
cArr[i] = (char) (bArr[i] & UnsignedBytes.MAX_VALUE);
}
return cArr;
}
static {
try {
try {
LINE_SEPARATOR = (String) AccessController.doPrivileged(new PrivilegedAction<String>() { // from class: org.bouncycastle.util.Strings.1
@Override // java.security.PrivilegedAction
public final String run() {
return System.getProperty("line.separator");
}
});
} catch (Exception unused) {
LINE_SEPARATOR = String.format("%n", new Object[0]);
}
} catch (Exception unused2) {
LINE_SEPARATOR = "\n";
}
}
}