package Y3;

import J0.C0343a0;
import androidx.media3.extractor.ts.TsExtractor;
import java.security.GeneralSecurityException;
import java.util.Arrays;
import javax.crypto.AEADBadTagException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

/* JADX INFO: loaded from: classes3.dex */
public final class b implements L3.a {

    /* JADX INFO: renamed from: e, reason: collision with root package name */
    public static final C0343a0 f8796e = new C0343a0(5);

    /* JADX INFO: renamed from: f, reason: collision with root package name */
    public static final C0343a0 f8797f = new C0343a0(6);

    /* JADX INFO: renamed from: a, reason: collision with root package name */
    public final byte[] f8798a;

    /* JADX INFO: renamed from: b, reason: collision with root package name */
    public final byte[] f8799b;

    /* JADX INFO: renamed from: c, reason: collision with root package name */
    public final SecretKeySpec f8800c;

    /* JADX INFO: renamed from: d, reason: collision with root package name */
    public final int f8801d;

    public b(byte[] bArr, int i6) throws GeneralSecurityException {
        if (!A0.a.a(1)) {
            throw new GeneralSecurityException("Can not use AES-EAX in FIPS-mode.");
        }
        if (i6 != 12 && i6 != 16) {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        }
        this.f8801d = i6;
        t.a(bArr.length);
        SecretKeySpec secretKeySpec = new SecretKeySpec(bArr, "AES");
        this.f8800c = secretKeySpec;
        Cipher cipher = (Cipher) f8796e.get();
        cipher.init(1, secretKeySpec);
        byte[] bArrC = c(cipher.doFinal(new byte[16]));
        this.f8798a = bArrC;
        this.f8799b = c(bArrC);
    }

    public static byte[] c(byte[] bArr) {
        byte[] bArr2 = new byte[16];
        int i6 = 0;
        while (i6 < 15) {
            int i7 = i6 + 1;
            bArr2[i6] = (byte) (((bArr[i6] << 1) ^ ((bArr[i7] & 255) >>> 7)) & 255);
            i6 = i7;
        }
        bArr2[15] = (byte) (((bArr[0] >> 7) & TsExtractor.TS_STREAM_TYPE_E_AC3) ^ (bArr[15] << 1));
        return bArr2;
    }

    public static byte[] e(byte[] bArr, byte[] bArr2) {
        int length = bArr.length;
        byte[] bArr3 = new byte[length];
        for (int i6 = 0; i6 < length; i6++) {
            bArr3[i6] = (byte) (bArr[i6] ^ bArr2[i6]);
        }
        return bArr3;
    }

    @Override // L3.a
    public final byte[] a(byte[] bArr, byte[] bArr2) throws GeneralSecurityException {
        int length = bArr.length;
        int i6 = this.f8801d;
        if (length > 2147483631 - i6) {
            throw new GeneralSecurityException("plaintext too long");
        }
        byte[] bArr3 = new byte[bArr.length + i6 + 16];
        byte[] bArrA = s.a(i6);
        System.arraycopy(bArrA, 0, bArr3, 0, i6);
        Cipher cipher = (Cipher) f8796e.get();
        SecretKeySpec secretKeySpec = this.f8800c;
        cipher.init(1, secretKeySpec);
        byte[] bArrD = d(cipher, 0, bArrA, 0, bArrA.length);
        byte[] bArr4 = bArr2 == null ? new byte[0] : bArr2;
        byte[] bArrD2 = d(cipher, 1, bArr4, 0, bArr4.length);
        Cipher cipher2 = (Cipher) f8797f.get();
        cipher2.init(1, secretKeySpec, new IvParameterSpec(bArrD));
        cipher2.doFinal(bArr, 0, bArr.length, bArr3, this.f8801d);
        byte[] bArrD3 = d(cipher, 2, bArr3, this.f8801d, bArr.length);
        int length2 = bArr.length + i6;
        for (int i7 = 0; i7 < 16; i7++) {
            bArr3[length2 + i7] = (byte) ((bArrD2[i7] ^ bArrD[i7]) ^ bArrD3[i7]);
        }
        return bArr3;
    }

    @Override // L3.a
    public final byte[] b(byte[] bArr, byte[] bArr2) throws GeneralSecurityException {
        int length = bArr.length;
        int i6 = this.f8801d;
        int i7 = (length - i6) - 16;
        if (i7 < 0) {
            throw new GeneralSecurityException("ciphertext too short");
        }
        Cipher cipher = (Cipher) f8796e.get();
        SecretKeySpec secretKeySpec = this.f8800c;
        cipher.init(1, secretKeySpec);
        byte[] bArrD = d(cipher, 0, bArr, 0, this.f8801d);
        byte[] bArr3 = bArr2 == null ? new byte[0] : bArr2;
        byte[] bArrD2 = d(cipher, 1, bArr3, 0, bArr3.length);
        byte[] bArrD3 = d(cipher, 2, bArr, this.f8801d, i7);
        int length2 = bArr.length - 16;
        byte b5 = 0;
        for (int i8 = 0; i8 < 16; i8++) {
            b5 = (byte) (b5 | (((bArr[length2 + i8] ^ bArrD2[i8]) ^ bArrD[i8]) ^ bArrD3[i8]));
        }
        if (b5 != 0) {
            throw new AEADBadTagException("tag mismatch");
        }
        Cipher cipher2 = (Cipher) f8797f.get();
        cipher2.init(1, secretKeySpec, new IvParameterSpec(bArrD));
        return cipher2.doFinal(bArr, i6, i7);
    }

    public final byte[] d(Cipher cipher, int i6, byte[] bArr, int i7, int i8) throws BadPaddingException, IllegalBlockSizeException {
        byte[] bArrCopyOf;
        byte[] bArr2 = new byte[16];
        bArr2[15] = (byte) i6;
        byte[] bArr3 = this.f8798a;
        if (i8 == 0) {
            return cipher.doFinal(e(bArr2, bArr3));
        }
        byte[] bArrDoFinal = cipher.doFinal(bArr2);
        int i9 = 0;
        while (i8 - i9 > 16) {
            for (int i10 = 0; i10 < 16; i10++) {
                bArrDoFinal[i10] = (byte) (bArrDoFinal[i10] ^ bArr[(i7 + i9) + i10]);
            }
            bArrDoFinal = cipher.doFinal(bArrDoFinal);
            i9 += 16;
        }
        byte[] bArrCopyOfRange = Arrays.copyOfRange(bArr, i9 + i7, i7 + i8);
        if (bArrCopyOfRange.length == 16) {
            bArrCopyOf = e(bArrCopyOfRange, bArr3);
        } else {
            bArrCopyOf = Arrays.copyOf(this.f8799b, 16);
            for (int i11 = 0; i11 < bArrCopyOfRange.length; i11++) {
                bArrCopyOf[i11] = (byte) (bArrCopyOf[i11] ^ bArrCopyOfRange[i11]);
            }
            bArrCopyOf[bArrCopyOfRange.length] = (byte) (bArrCopyOf[bArrCopyOfRange.length] ^ 128);
        }
        return cipher.doFinal(e(bArrDoFinal, bArrCopyOf));
    }
}
