what-the-bank/sources/com/huawei/hms/utils/ReadApkFileUtil.java

701 lines
28 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.huawei.hms.utils;
import android.content.Context;
import android.text.TextUtils;
import android.util.AndroidException;
import android.util.Base64;
import com.google.common.primitives.UnsignedBytes;
import com.huawei.hms.support.log.HMSLog;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.MessageDigest;
import java.security.Signature;
import java.security.spec.X509EncodedKeySpec;
import java.util.ArrayList;
import java.util.Collections;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.bouncycastle.pqc.jcajce.spec.McElieceCCA2KeyGenParameterSpec;
/* loaded from: classes2.dex */
public class ReadApkFileUtil {
public static final String EMUI10_PK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4nUogUyMCmzHhaEb420yvpw9zBs+ETzE9Qm77bGxl1Iml9JEkBkNTsUWOstLgUBajNhV+BAMVBHKMEdzoQbL5kIHkTgUVM65yewd+5+BhrcB9OQ3LHp+0BN6aLKZh71T4WvsvHFhfhQpShuGWkRkSaVGLFTHxX70kpWLzeZ3RtqiEUNIufPR2SFCH6EmecJ+HdkmBOh603IblCpGxwSWse0fDI98wZBEmV88RFaiYEgyiezLlWvXzqIj6I/xuyd5nGAegjH2y3cmoDE6CubecoB1jf4KdgACXgdiQ4Oc63MfLGTor3l6RCqeUk4APAMtyhK83jc72W1sdXMd/sj2wIDAQAB";
public static final String EMUI11_PK = "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAqq2eRTMYr2JHLtvuZzfgPrgU8oatD4Rar9fOD7E00es2VhtB3vTyaT2BvYPUPA/nbkHRPak3EZX77CfWj9tzLgSHJE8XLk9C+2ESkdrxCDA6z7I8X+cBDnA05OlCJeZFjnUbjYB8SP8M3BttdrvqtVPxTkEJhchC7UXnMLaJ3kQ3ZPjN7ubjYzO4rv7EtEpqr2bX+qjnSLIZZuUXraxqfdBuhGDIYq62dNsqiyrhX1mfvA3+43N4ZIs3BdfSYII8BNFmFxf+gyf1aoq386R2kAjHcrfOOhjAbZh+R1OAGLWPCqi3E9nB8EsZkeoTW/oIP6pJvgL3bnxq+1viT2dmZyipMgcx/3N6FJqkd67j/sPMtPlHJuq8/s0silzs13jAw1WBV6tWHFkLGpkWGs8jp50wQtndtY8cCPl2XPGmdPN72agH+zsHuKqr/HOB2TuzzaO8rKlGIDQlzZcCSHB28nnvOyBVN9xzLkbYiLnHfd6bTwzNPeqjWrTnPwKyH3BPAgMBAAE=";
public static final String KEY_SIGNATURE = "Signature:";
public static final String KEY_SIGNATURE2 = "Signature2:";
public static final String KEY_SIGNATURE3 = "Signature3:";
private static final String a = "ReadApkFileUtil";
private static String c;
private static String d;
private static String e;
private static final Pattern b = Pattern.compile("\\s*|\t|\r|\n");
private static String f = null;
private static String g = null;
private static byte[] a(ZipFile zipFile) {
return a(zipFile, "META-INF/MANIFEST.MF");
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r2v0 */
/* JADX WARN: Type inference failed for: r2v2 */
/* JADX WARN: Type inference failed for: r2v3 */
/* JADX WARN: Type inference failed for: r2v4 */
/* JADX WARN: Type inference failed for: r2v6, types: [java.io.ByteArrayInputStream, java.io.InputStream] */
private static void b(byte[] bArr) {
Throwable th;
BufferedReader bufferedReader;
?? r2;
InputStream inputStream;
InputStream inputStream2;
if (bArr == null) {
HMSLog.e(a, "manifest is null");
return;
}
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader2 = null;
c = null;
d = null;
e = null;
try {
r2 = new ByteArrayInputStream(bArr);
} catch (Exception unused) {
r2 = 0;
} catch (Throwable th2) {
th = th2;
bufferedReader = null;
r2 = bufferedReader2;
bufferedReader2 = bufferedReader;
inputStream = r2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((Reader) bufferedReader2);
throw th;
}
try {
bufferedReader = new BufferedReader(new InputStreamReader((InputStream) r2, StandardCharsets.UTF_8));
try {
String a2 = a(bufferedReader);
while (a2 != null) {
if (a2.length() != 0) {
if (a2.startsWith("ApkHash:")) {
f = a(a2.substring(a2.indexOf(":") + 1));
}
if (a2.startsWith(KEY_SIGNATURE)) {
c = a(a2.substring(a2.indexOf(":") + 1));
a2 = a(bufferedReader);
} else if (a2.startsWith(KEY_SIGNATURE2)) {
d = a(a2.substring(a2.indexOf(":") + 1));
a2 = a(bufferedReader);
} else if (a2.startsWith(KEY_SIGNATURE3)) {
e = a(a2.substring(a2.indexOf(":") + 1));
a2 = a(bufferedReader);
} else {
stringBuffer.append(a2);
stringBuffer.append("\r\n");
}
}
a2 = a(bufferedReader);
}
g = stringBuffer.toString();
inputStream2 = r2;
} catch (Exception unused2) {
bufferedReader2 = bufferedReader;
try {
HMSLog.e(a, "loadApkCert Exception!");
bufferedReader = bufferedReader2;
inputStream2 = r2;
IOUtils.closeQuietly(inputStream2);
IOUtils.closeQuietly((Reader) bufferedReader);
} catch (Throwable th3) {
th = th3;
bufferedReader = bufferedReader2;
bufferedReader2 = r2;
r2 = bufferedReader2;
bufferedReader2 = bufferedReader;
inputStream = r2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((Reader) bufferedReader2);
throw th;
}
} catch (Throwable th4) {
th = th4;
bufferedReader2 = bufferedReader;
inputStream = r2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((Reader) bufferedReader2);
throw th;
}
} catch (Exception unused3) {
} catch (Throwable th5) {
th = th5;
inputStream = r2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((Reader) bufferedReader2);
throw th;
}
IOUtils.closeQuietly(inputStream2);
IOUtils.closeQuietly((Reader) bufferedReader);
}
private static boolean c() {
try {
} catch (Exception e2) {
String str = a;
StringBuilder sb = new StringBuilder("verifyMDMSignatureV3 MDM verify Exception!:");
sb.append(e2.getMessage());
HMSLog.i(str, sb.toString());
}
if (a(Base64.decode(EMUI11_PK, 0), a(g, McElieceCCA2KeyGenParameterSpec.SHA384), b(e), "SHA384withRSA")) {
HMSLog.i(a, "verifyMDMSignatureV3 verify successful!");
return true;
}
HMSLog.i(a, "verifyMDMSignatureV3 verify failure!");
return false;
}
public static String getHmsPath(Context context) {
try {
return context.getPackageManager().getApplicationInfo("com.huawei.hwid", 128).sourceDir;
} catch (AndroidException | RuntimeException unused) {
HMSLog.e(a, "HMS is not found!");
return null;
}
}
public static boolean isCertFound(String str) {
ZipFile zipFile;
ZipFile zipFile2 = null;
try {
try {
zipFile = new ZipFile(str);
} catch (Exception e2) {
e = e2;
}
} catch (Throwable th) {
th = th;
zipFile = zipFile2;
}
try {
boolean z = zipFile.getEntry("META-INF/HUAWEI.CER") != null;
if (z) {
b(a(zipFile, "META-INF/HUAWEI.CER"));
}
try {
zipFile.close();
} catch (IOException e3) {
String str2 = a;
StringBuilder sb = new StringBuilder("zipFile.close Exception!");
sb.append(e3.getMessage());
HMSLog.e(str2, sb.toString());
}
return z;
} catch (Exception e4) {
e = e4;
zipFile2 = zipFile;
String str3 = a;
StringBuilder sb2 = new StringBuilder("isCertFound Exception!");
sb2.append(e.getMessage());
HMSLog.e(str3, sb2.toString());
if (zipFile2 == null) {
return false;
}
try {
zipFile2.close();
return false;
} catch (IOException e5) {
String str4 = a;
StringBuilder sb3 = new StringBuilder("zipFile.close Exception!");
sb3.append(e5.getMessage());
HMSLog.e(str4, sb3.toString());
return false;
}
} catch (Throwable th2) {
th = th2;
if (zipFile != null) {
try {
zipFile.close();
} catch (IOException e6) {
String str5 = a;
StringBuilder sb4 = new StringBuilder("zipFile.close Exception!");
sb4.append(e6.getMessage());
HMSLog.e(str5, sb4.toString());
}
}
throw th;
}
}
public static boolean verifyApkHash(String str) {
ZipFile zipFile;
ZipFile zipFile2 = null;
try {
try {
zipFile = new ZipFile(str);
} catch (Exception e2) {
e = e2;
}
} catch (Throwable th) {
th = th;
zipFile = zipFile2;
}
try {
byte[] a2 = a(zipFile);
ArrayList<String> a3 = a(a2);
if (a3 != null) {
a2 = a(a3);
}
MessageDigest messageDigest = MessageDigest.getInstance(McElieceCCA2KeyGenParameterSpec.SHA256);
messageDigest.update(a2);
String bytesToString = bytesToString(messageDigest.digest());
String str2 = f;
if (str2 != null) {
if (str2.equals(bytesToString)) {
try {
zipFile.close();
return true;
} catch (Exception e3) {
String str3 = a;
StringBuilder sb = new StringBuilder("close stream Exception!");
sb.append(e3.getMessage());
HMSLog.i(str3, sb.toString());
return true;
}
}
}
try {
zipFile.close();
return false;
} catch (Exception e4) {
String str4 = a;
StringBuilder sb2 = new StringBuilder("close stream Exception!");
sb2.append(e4.getMessage());
HMSLog.i(str4, sb2.toString());
return false;
}
} catch (Exception e5) {
e = e5;
zipFile2 = zipFile;
String str5 = a;
StringBuilder sb3 = new StringBuilder("verifyApkHash Exception!");
sb3.append(e.getMessage());
HMSLog.i(str5, sb3.toString());
if (zipFile2 == null) {
return false;
}
try {
zipFile2.close();
return false;
} catch (Exception e6) {
String str6 = a;
StringBuilder sb4 = new StringBuilder("close stream Exception!");
sb4.append(e6.getMessage());
HMSLog.i(str6, sb4.toString());
return false;
}
} catch (Throwable th2) {
th = th2;
if (zipFile != null) {
try {
zipFile.close();
} catch (Exception e7) {
String str7 = a;
StringBuilder sb5 = new StringBuilder("close stream Exception!");
sb5.append(e7.getMessage());
HMSLog.i(str7, sb5.toString());
}
}
throw th;
}
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Type inference failed for: r4v0 */
/* JADX WARN: Type inference failed for: r4v1 */
/* JADX WARN: Type inference failed for: r4v12 */
/* JADX WARN: Type inference failed for: r4v2, types: [java.io.OutputStream] */
/* JADX WARN: Type inference failed for: r4v6, types: [java.io.OutputStream] */
/* JADX WARN: Type inference failed for: r4v8 */
/* JADX WARN: Type inference failed for: r4v9, types: [java.io.OutputStream, java.io.BufferedOutputStream] */
private static byte[] a(ZipFile zipFile, String str) {
Throwable th;
InputStream inputStream;
ByteArrayOutputStream byteArrayOutputStream;
?? r4;
Exception e2;
BufferedInputStream bufferedInputStream;
?? r42;
BufferedInputStream bufferedInputStream2;
BufferedInputStream bufferedInputStream3;
byte[] bArr;
ZipEntry entry = zipFile.getEntry(str);
BufferedInputStream bufferedInputStream4 = null;
if (entry == null) {
return null;
}
try {
inputStream = zipFile.getInputStream(entry);
if (inputStream == null) {
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) null);
IOUtils.closeQuietly((OutputStream) null);
IOUtils.closeQuietly((OutputStream) null);
return null;
}
try {
bufferedInputStream = new BufferedInputStream(inputStream);
try {
bArr = new byte[4096];
byteArrayOutputStream = new ByteArrayOutputStream();
} catch (Exception e3) {
e2 = e3;
byteArrayOutputStream = null;
r42 = 0;
try {
String str2 = a;
StringBuilder sb = new StringBuilder();
sb.append("getManifestBytes Exception!");
sb.append(e2.getMessage());
HMSLog.i(str2, sb.toString());
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r42);
return null;
} catch (Throwable th2) {
th = th2;
bufferedInputStream4 = r42;
bufferedInputStream3 = bufferedInputStream4;
byteArrayOutputStream = byteArrayOutputStream;
bufferedInputStream2 = bufferedInputStream3;
bufferedInputStream4 = bufferedInputStream;
r4 = bufferedInputStream2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream4);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r4);
throw th;
}
} catch (Throwable th3) {
th = th3;
byteArrayOutputStream = null;
bufferedInputStream3 = bufferedInputStream4;
byteArrayOutputStream = byteArrayOutputStream;
bufferedInputStream2 = bufferedInputStream3;
bufferedInputStream4 = bufferedInputStream;
r4 = bufferedInputStream2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream4);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r4);
throw th;
}
} catch (Exception e4) {
e = e4;
e2 = e;
bufferedInputStream = null;
byteArrayOutputStream = null;
r42 = 0;
String str22 = a;
StringBuilder sb2 = new StringBuilder();
sb2.append("getManifestBytes Exception!");
sb2.append(e2.getMessage());
HMSLog.i(str22, sb2.toString());
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r42);
return null;
} catch (Throwable th4) {
th = th4;
byteArrayOutputStream = null;
r4 = 0;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream4);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r4);
throw th;
}
try {
r42 = new BufferedOutputStream(byteArrayOutputStream);
try {
for (int read = bufferedInputStream.read(bArr, 0, 4096); read > 0; read = bufferedInputStream.read(bArr, 0, 4096)) {
r42.write(bArr, 0, read);
}
r42.flush();
byte[] byteArray = byteArrayOutputStream.toByteArray();
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r42);
return byteArray;
} catch (Exception e5) {
e2 = e5;
String str222 = a;
StringBuilder sb22 = new StringBuilder();
sb22.append("getManifestBytes Exception!");
sb22.append(e2.getMessage());
HMSLog.i(str222, sb22.toString());
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r42);
return null;
} catch (Throwable th5) {
th = th5;
bufferedInputStream3 = r42;
byteArrayOutputStream = byteArrayOutputStream;
bufferedInputStream2 = bufferedInputStream3;
bufferedInputStream4 = bufferedInputStream;
r4 = bufferedInputStream2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream4);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r4);
throw th;
}
} catch (Exception e6) {
e2 = e6;
r42 = 0;
} catch (Throwable th6) {
th = th6;
bufferedInputStream2 = null;
bufferedInputStream4 = bufferedInputStream;
r4 = bufferedInputStream2;
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly((InputStream) bufferedInputStream4);
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((OutputStream) r4);
throw th;
}
} catch (Exception e7) {
e = e7;
inputStream = null;
} catch (Throwable th7) {
th = th7;
inputStream = null;
}
}
public static String bytesToString(byte[] bArr) {
if (bArr == null) {
return null;
}
char[] cArr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
char[] cArr2 = new char[bArr.length << 1];
for (int i = 0; i < bArr.length; i++) {
byte b2 = bArr[i];
int i2 = i << 1;
cArr2[i2] = cArr[(b2 & UnsignedBytes.MAX_VALUE) >>> 4];
cArr2[i2 + 1] = cArr[b2 & 15];
}
return String.valueOf(cArr2);
}
public static boolean checkSignature() {
if (e != null) {
return c();
}
if (d != null) {
return b();
}
if (c != null) {
return a();
}
return false;
}
private static boolean b() {
try {
} catch (Exception e2) {
String str = a;
StringBuilder sb = new StringBuilder("verifyMDMSignatureV2 MDM verify Exception!:");
sb.append(e2.getMessage());
HMSLog.i(str, sb.toString());
}
if (a(Base64.decode(EMUI10_PK, 0), a(g, McElieceCCA2KeyGenParameterSpec.SHA256), b(d), "SHA256withRSA")) {
HMSLog.i(a, "verifyMDMSignatureV2 verify successful!");
return true;
}
HMSLog.i(a, "verifyMDMSignatureV2 verify failure!");
return false;
}
private static ArrayList<String> a(byte[] bArr) {
if (bArr == null) {
HMSLog.e(a, "manifest is null");
return null;
}
ArrayList<String> arrayList = new ArrayList<>();
try {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bArr);
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(byteArrayInputStream, StandardCharsets.UTF_8));
try {
if (a(bufferedReader, arrayList)) {
bufferedReader.close();
byteArrayInputStream.close();
return arrayList;
}
bufferedReader.close();
byteArrayInputStream.close();
return null;
} finally {
}
} finally {
}
} catch (IOException unused) {
HMSLog.e(a, "getManifestLinesArrary IOException!");
return null;
}
}
private static byte[] b(String str) {
int i;
if (TextUtils.isEmpty(str)) {
return new byte[0];
}
int length = str.length();
if (length % 2 == 0) {
i = length / 2;
} else {
i = (length / 2) + 1;
}
byte[] bArr = new byte[i];
for (int i2 = 0; i2 < length; i2 += 2) {
int i3 = i2 + 1;
if (i3 < length) {
bArr[i2 / 2] = (byte) ((Character.digit(str.charAt(i2), 16) << 4) + Character.digit(str.charAt(i3), 16));
} else {
bArr[i2 / 2] = (byte) (Character.digit(str.charAt(i2), 16) << 4);
}
}
return bArr;
}
private static byte[] a(ArrayList<String> arrayList) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(byteArrayOutputStream, StandardCharsets.UTF_8));
try {
try {
Collections.sort(arrayList);
int size = arrayList.size();
for (int i = 0; i < size; i++) {
String str = arrayList.get(i);
bufferedWriter.write(str, 0, str.length());
bufferedWriter.write("\r\n", 0, 2);
}
bufferedWriter.flush();
} catch (Exception e2) {
String str2 = a;
StringBuilder sb = new StringBuilder();
sb.append("getManifestBytesbySorted Exception!");
sb.append(e2.getMessage());
HMSLog.i(str2, sb.toString());
}
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((Writer) bufferedWriter);
return byteArrayOutputStream.toByteArray();
} catch (Throwable th) {
IOUtils.closeQuietly((OutputStream) byteArrayOutputStream);
IOUtils.closeQuietly((Writer) bufferedWriter);
throw th;
}
}
private static boolean a(BufferedReader bufferedReader, ArrayList<String> arrayList) throws IOException {
String a2 = a(bufferedReader);
boolean z = false;
while (a2 != null) {
if (a2.equals("Name: META-INF/HUAWEI.CER")) {
String a3 = a(bufferedReader);
while (true) {
if (a3 == null) {
break;
}
if (a3.startsWith("Name:")) {
a2 = a3;
break;
}
a3 = a(bufferedReader);
}
z = true;
}
if (a2.length() != 0) {
arrayList.add(a2);
}
a2 = a(bufferedReader);
}
return z;
}
private static String a(BufferedReader bufferedReader) throws IOException {
int read;
if (bufferedReader == null || (read = bufferedReader.read()) == -1) {
return null;
}
StringBuilder sb = new StringBuilder(10);
while (read != -1) {
char c2 = (char) read;
if (c2 == '\n') {
break;
}
if (sb.length() < 4096) {
sb.append(c2);
read = bufferedReader.read();
} else {
throw new IOException("cert line is too long!");
}
}
String obj = sb.toString();
return (obj.isEmpty() || !obj.endsWith("\r")) ? obj : obj.substring(0, obj.length() - 1);
}
private static boolean a() {
try {
if (a(b("30820122300d06092a864886f70d01010105000382010f003082010a0282010100a3d269348ac59923f65e8111c337605e29a1d1bc54fa96c1445050dd14d8d63b10f9f0230bb87ef348183660bedcabfdec045e235ed96935799fcdb4af5c97717ff3b0954eaf1b723225b3a00f81cbd67ce6dc5a4c07f7741ad3bf1913a480c6e267ab1740f409edd2dc33c8b718a8e30e56d9a93f321723c1d0c9ea62115f996812ceef186954595e39a19b74245542c407f7dddb1d12e6eedcfc0bd7cd945ef7255ad0fc9e796258e0fb5e52a23013d15033a32b4071b65f3f924ae5c5761e22327b4d2ae60f4158a5eb15565ba079de29b81540f5fbb3be101a95357f367fc661d797074ff3826950029c52223e4594673a24a334cae62d63b838ba3df9770203010001"), a(g, McElieceCCA2KeyGenParameterSpec.SHA256), b(c), "SHA256withRSA")) {
HMSLog.i(a, "verifyMDMSignatureV1 verify successful!");
return true;
}
HMSLog.i(a, "verifyMDMSignatureV1 verify failure!");
return false;
} catch (Exception e2) {
String str = a;
StringBuilder sb = new StringBuilder("verifyMDMSignatureV1 MDM verify Exception!:");
sb.append(e2.getMessage());
HMSLog.i(str, sb.toString());
return false;
}
}
private static boolean a(byte[] bArr, byte[] bArr2, byte[] bArr3, String str) throws Exception {
Signature signature = Signature.getInstance(str);
signature.initVerify(KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bArr)));
signature.update(bArr2);
return signature.verify(bArr3);
}
private static byte[] a(String str, String str2) throws Exception {
MessageDigest messageDigest = MessageDigest.getInstance(str2);
messageDigest.update(str.getBytes(StandardCharsets.UTF_8.name()));
return messageDigest.digest();
}
private static String a(String str) {
return str != null ? b.matcher(str).replaceAll("") : "";
}
}