package com.google.crypto.tink.aead.internal;

import com.google.crypto.tink.subtle.Bytes;
import java.security.GeneralSecurityException;
import java.util.Arrays;

/* JADX INFO: loaded from: classes2.dex */
public class Poly1305 {
    public static final int MAC_KEY_SIZE_IN_BYTES = 32;
    public static final int MAC_TAG_SIZE_IN_BYTES = 16;

    private Poly1305() {
    }

    public static byte[] computeMac(byte[] bArr, byte[] bArr2) {
        if (bArr.length != 32) {
            throw new IllegalArgumentException("The key length in bytes must be 32.");
        }
        long jLoad26 = load26(bArr, 0, 0) & 67108863;
        int i = 3;
        int i2 = 2;
        long jLoad262 = load26(bArr, 3, 2) & 67108611;
        long jLoad263 = load26(bArr, 6, 4) & 67092735;
        long jLoad264 = load26(bArr, 9, 6) & 66076671;
        long jLoad265 = load26(bArr, 12, 8) & 1048575;
        long j = jLoad262 * 5;
        long j2 = jLoad263 * 5;
        long j3 = jLoad264 * 5;
        long j4 = jLoad265 * 5;
        byte[] bArr3 = new byte[17];
        long j5 = 0;
        int i3 = 0;
        long j6 = 0;
        long j7 = 0;
        long j8 = 0;
        long j9 = 0;
        while (i3 < bArr2.length) {
            copyBlockSize(bArr3, bArr2, i3);
            long jLoad266 = j9 + load26(bArr3, 0, 0);
            long jLoad267 = j5 + load26(bArr3, i, i2);
            long jLoad268 = j6 + load26(bArr3, 6, 4);
            long jLoad269 = j7 + load26(bArr3, 9, 6);
            long j10 = jLoad262;
            long jLoad2610 = j8 + (load26(bArr3, 12, 8) | ((long) (bArr3[16] << 24)));
            long j11 = (jLoad2610 * j) + (jLoad269 * j2) + (jLoad268 * j3) + (jLoad267 * j4) + (jLoad266 * jLoad26);
            long j12 = (jLoad2610 * j2) + (jLoad269 * j3) + (jLoad268 * j4) + (jLoad267 * jLoad26) + (jLoad266 * j10);
            long j13 = (jLoad2610 * j3) + (jLoad269 * j4) + (jLoad268 * jLoad26) + (jLoad267 * j10) + (jLoad266 * jLoad263);
            long j14 = (jLoad2610 * j4) + (jLoad269 * jLoad26) + (jLoad268 * j10) + (jLoad267 * jLoad263) + (jLoad266 * jLoad264);
            long j15 = jLoad269 * j10;
            long j16 = jLoad2610 * jLoad26;
            long j17 = j16 + j15 + (jLoad268 * jLoad263) + (jLoad267 * jLoad264) + (jLoad266 * jLoad265);
            long j18 = j12 + (j11 >> 26);
            long j19 = j13 + (j18 >> 26);
            j6 = j19 & 67108863;
            long j20 = j14 + (j19 >> 26);
            j7 = j20 & 67108863;
            long j21 = j17 + (j20 >> 26);
            long j22 = j21 >> 26;
            j8 = j21 & 67108863;
            long j23 = (j22 * 5) + (j11 & 67108863);
            j9 = j23 & 67108863;
            j5 = (j18 & 67108863) + (j23 >> 26);
            i3 += 16;
            jLoad262 = j10;
            i = 3;
            i2 = 2;
        }
        long j24 = j6 + (j5 >> 26);
        long j25 = j24 & 67108863;
        long j26 = j7 + (j24 >> 26);
        long j27 = j26 & 67108863;
        long j28 = j8 + (j26 >> 26);
        long j29 = j28 & 67108863;
        long j30 = ((j28 >> 26) * 5) + j9;
        long j31 = j30 >> 26;
        long j32 = j30 & 67108863;
        long j33 = (j5 & 67108863) + j31;
        long j34 = j32 + 5;
        long j35 = j34 & 67108863;
        long j36 = j33 + (j34 >> 26);
        long j37 = j25 + (j36 >> 26);
        long j38 = j27 + (j37 >> 26);
        long j39 = j38 & 67108863;
        long j40 = (j29 + (j38 >> 26)) - 67108864;
        long j41 = j40 >> 63;
        long j42 = j32 & j41;
        long j43 = j33 & j41;
        long j44 = j25 & j41;
        long j45 = j27 & j41;
        long j46 = j29 & j41;
        long j47 = ~j41;
        long j48 = j43 | (j36 & 67108863 & j47);
        long j49 = j44 | (j37 & 67108863 & j47);
        long j50 = j45 | (j39 & j47);
        long j51 = (j42 | (j35 & j47) | (j48 << 26)) & 4294967295L;
        long j52 = ((j48 >> 6) | (j49 << 20)) & 4294967295L;
        long j53 = ((j49 >> 12) | (j50 << 14)) & 4294967295L;
        long j54 = ((j50 >> 18) | ((j46 | (j40 & j47)) << 8)) & 4294967295L;
        long jLoad32 = j51 + load32(bArr, 16);
        long j55 = jLoad32 & 4294967295L;
        long jLoad322 = j52 + load32(bArr, 20) + (jLoad32 >> 32);
        long j56 = jLoad322 & 4294967295L;
        long jLoad323 = j53 + load32(bArr, 24) + (jLoad322 >> 32);
        long j57 = jLoad323 & 4294967295L;
        long jLoad324 = (j54 + load32(bArr, 28) + (jLoad323 >> 32)) & 4294967295L;
        byte[] bArr4 = new byte[16];
        toByteArray(bArr4, j55, 0);
        toByteArray(bArr4, j56, 4);
        toByteArray(bArr4, j57, 8);
        toByteArray(bArr4, jLoad324, 12);
        return bArr4;
    }

    private static void copyBlockSize(byte[] bArr, byte[] bArr2, int i) {
        int iMin = Math.min(16, bArr2.length - i);
        System.arraycopy(bArr2, i, bArr, 0, iMin);
        bArr[iMin] = 1;
        if (iMin != 16) {
            Arrays.fill(bArr, iMin + 1, bArr.length, (byte) 0);
        }
    }

    private static long load26(byte[] bArr, int i, int i2) {
        return (load32(bArr, i) >> i2) & 67108863;
    }

    private static long load32(byte[] bArr, int i) {
        return ((long) (((bArr[i + 3] & 255) << 24) | (bArr[i] & 255) | ((bArr[i + 1] & 255) << 8) | ((bArr[i + 2] & 255) << 16))) & 4294967295L;
    }

    private static void toByteArray(byte[] bArr, long j, int i) {
        int i2 = 0;
        while (i2 < 4) {
            bArr[i + i2] = (byte) (255 & j);
            i2++;
            j >>= 8;
        }
    }

    public static void verifyMac(byte[] bArr, byte[] bArr2, byte[] bArr3) throws GeneralSecurityException {
        if (!Bytes.equal(computeMac(bArr, bArr2), bArr3)) {
            throw new GeneralSecurityException("invalid MAC");
        }
    }
}
