- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
64 lines
2.3 KiB
Java
64 lines
2.3 KiB
Java
package com.google.android.gms.internal.ads;
|
|
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteOrder;
|
|
import java.security.GeneralSecurityException;
|
|
import java.security.InvalidKeyException;
|
|
import java.security.MessageDigest;
|
|
import javax.crypto.AEADBadTagException;
|
|
|
|
/* loaded from: classes3.dex */
|
|
abstract class zzgjz {
|
|
private final zzgjx zza;
|
|
private final zzgjx zzb;
|
|
|
|
public zzgjz(byte[] bArr) throws GeneralSecurityException {
|
|
if (!zzgks.zza(1)) {
|
|
throw new GeneralSecurityException("Can not use ChaCha20Poly1305 in FIPS-mode.");
|
|
}
|
|
this.zza = zza(bArr, 1);
|
|
this.zzb = zza(bArr, 0);
|
|
}
|
|
|
|
public abstract zzgjx zza(byte[] bArr, int i) throws InvalidKeyException;
|
|
|
|
public final byte[] zzb(ByteBuffer byteBuffer, byte[] bArr, byte[] bArr2) throws GeneralSecurityException {
|
|
if (byteBuffer.remaining() < 16) {
|
|
throw new GeneralSecurityException("ciphertext too short");
|
|
}
|
|
int position = byteBuffer.position();
|
|
byte[] bArr3 = new byte[16];
|
|
byteBuffer.position(byteBuffer.limit() - 16);
|
|
byteBuffer.get(bArr3);
|
|
byteBuffer.position(position);
|
|
byteBuffer.limit(byteBuffer.limit() - 16);
|
|
if (bArr2 == null) {
|
|
bArr2 = new byte[0];
|
|
}
|
|
try {
|
|
byte[] bArr4 = new byte[32];
|
|
this.zzb.zzc(bArr, 0).get(bArr4);
|
|
int length = bArr2.length;
|
|
int i = length & 15;
|
|
int i2 = i == 0 ? length : (length + 16) - i;
|
|
int remaining = byteBuffer.remaining();
|
|
int i3 = remaining % 16;
|
|
int i4 = (i3 == 0 ? remaining : (remaining + 16) - i3) + i2;
|
|
ByteBuffer order = ByteBuffer.allocate(i4 + 16).order(ByteOrder.LITTLE_ENDIAN);
|
|
order.put(bArr2);
|
|
order.position(i2);
|
|
order.put(byteBuffer);
|
|
order.position(i4);
|
|
order.putLong(length);
|
|
order.putLong(remaining);
|
|
if (!MessageDigest.isEqual(zzgkd.zza(bArr4, order.array()), bArr3)) {
|
|
throw new GeneralSecurityException("invalid MAC");
|
|
}
|
|
byteBuffer.position(position);
|
|
return this.zza.zzd(bArr, byteBuffer);
|
|
} catch (GeneralSecurityException e) {
|
|
throw new AEADBadTagException(e.toString());
|
|
}
|
|
}
|
|
}
|