Info Call to Crypto API

Description

List of all calls to cryptographic methods.

Recommendation

Do not use insecure or weak cryptographic algorithms. For example, the Data Encryption Standard (DES) encryption algorithm is considered highly insecure

Do not use Object.equals() to compare cryptographic keys

Cryptographic keys should never be serialized

Technical details

Method com.google.android.gms.internal.ads.zzck.zza() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zza(byte[] p8, String p9)
    {
        if (p8.length == 16) {
            try {
                Throwable v0_12 = com.google.android.gms.internal.ads.zzbi.zza(p9, 0);
            } catch (Throwable v0_16) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_16);
            } catch (Throwable v0_15) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_15);
            } catch (Throwable v0_14) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_14);
            } catch (Throwable v0_13) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_13);
            } catch (Throwable v0_11) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_11);
            } catch (Throwable v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (Throwable v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            }
            if (v0_12.length > 16) {
                javax.crypto.Cipher v1_0 = java.nio.ByteBuffer.allocate(v0_12.length);
                v1_0.put(v0_12);
                v1_0.flip();
                byte[] v2_2 = new byte[16];
                Throwable v0_3 = new byte[(v0_12.length - 16)];
                v1_0.get(v2_2);
                v1_0.get(v0_3);
                com.google.android.gms.internal.ads.zzck.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p8, "AES"), new javax.crypto.spec.IvParameterSpec(v2_2));
                return com.google.android.gms.internal.ads.zzck.getCipher().doFinal(v0_3);
            } else {
                throw new com.google.android.gms.internal.ads.zzcl(this);
            }
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzayi.zzc() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zzc(byte[] p13, byte[] p14)
    {
        int v2 = 0;
        if (p13.length <= ((2147483647 - this.zzdmz) - 16)) {
            byte v6_0;
            byte[] v9 = new byte[((this.zzdmz + p13.length) + 16)];
            int v3_0 = com.google.android.gms.internal.ads.zzazl.zzbh(this.zzdmz);
            System.arraycopy(v3_0, 0, v9, 0, this.zzdmz);
            byte[] v1_0 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v1_0.init(1, this.zzdmu);
            byte[] v0_8 = this.zza(v1_0, 0, v3_0, 0, v3_0.length);
            if (p14 != null) {
                v6_0 = p14;
            } else {
                v6_0 = new byte[0];
            }
            byte[] v10 = this.zza(v1_0, 1, v6_0, 0, v6_0.length);
            int v3_4 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v3_4.init(1, this.zzdmu, new javax.crypto.spec.IvParameterSpec(v0_8));
            v3_4.doFinal(p13, 0, p13.length, v9, this.zzdmz);
            byte[] v1_3 = this.zza(v1_0, 2, v9, this.zzdmz, p13.length);
            while (v2 < 16) {
                v9[((p13.length + this.zzdmz) + v2)] = ((byte) ((v10[v2] ^ v0_8[v2]) ^ v1_3[v2]));
                v2++;
            }
            return v9;
        } else {
            throw new java.security.GeneralSecurityException("plaintext too long");
        }
    }

Method com.google.android.gms.internal.ads.zzayh.zzk() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zzk(byte[] p9)
    {
        if (p9.length <= (2147483647 - this.zzdmv)) {
            byte[] v4 = new byte[(this.zzdmv + p9.length)];
            String v1_0 = com.google.android.gms.internal.ads.zzazl.zzbh(this.zzdmv);
            System.arraycopy(v1_0, 0, v4, 0, this.zzdmv);
            int v3_1 = p9.length;
            int v5 = this.zzdmv;
            java.security.GeneralSecurityException v0_5 = ((javax.crypto.Cipher) com.google.android.gms.internal.ads.zzayy.zzdnz.zzek("AES/CTR/NoPadding"));
            int v6_2 = new byte[this.zzdmw];
            System.arraycopy(v1_0, 0, v6_2, 0, this.zzdmv);
            v0_5.init(1, this.zzdmu, new javax.crypto.spec.IvParameterSpec(v6_2));
            if (v0_5.doFinal(p9, 0, v3_1, v4, v5) == v3_1) {
                return v4;
            } else {
                throw new java.security.GeneralSecurityException("stored output\'s length does not match input\'s length");
            }
        } else {
            throw new java.security.GeneralSecurityException(new StringBuilder(43).append("plaintext length can not exceed ").append((2147483647 - this.zzdmv)).toString());
        }
    }

Method com.google.android.gms.internal.ads.zzck.getCipher() calling method javax.crypto.Cipher.getInstance()


    private static javax.crypto.Cipher getCipher()
    {
        try {
            if (com.google.android.gms.internal.ads.zzck.zzrf == null) {
                com.google.android.gms.internal.ads.zzck.zzrf = javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding");
            }
        } catch (javax.crypto.Cipher v0_4) {
            throw v0_4;
        }
        return com.google.android.gms.internal.ads.zzck.zzrf;
    }

Method com.google.android.gms.internal.ads.zzaza.zzb() calling method javax.crypto.Cipher.getInstance()


    public final synthetic Object zzb(String p2, java.security.Provider p3)
    {
        javax.crypto.Cipher v0;
        if (p3 != null) {
            v0 = javax.crypto.Cipher.getInstance(p2, p3);
        } else {
            v0 = javax.crypto.Cipher.getInstance(p2);
        }
        return v0;
    }

Method com.google.android.gms.internal.ads.zzayi.zzc() calling method javax.crypto.Cipher.getInstance()


    public final byte[] zzc(byte[] p13, byte[] p14)
    {
        int v2 = 0;
        if (p13.length <= ((2147483647 - this.zzdmz) - 16)) {
            byte v6_0;
            byte[] v9 = new byte[((this.zzdmz + p13.length) + 16)];
            int v3_0 = com.google.android.gms.internal.ads.zzazl.zzbh(this.zzdmz);
            System.arraycopy(v3_0, 0, v9, 0, this.zzdmz);
            byte[] v1_0 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v1_0.init(1, this.zzdmu);
            byte[] v0_8 = this.zza(v1_0, 0, v3_0, 0, v3_0.length);
            if (p14 != null) {
                v6_0 = p14;
            } else {
                v6_0 = new byte[0];
            }
            byte[] v10 = this.zza(v1_0, 1, v6_0, 0, v6_0.length);
            int v3_4 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v3_4.init(1, this.zzdmu, new javax.crypto.spec.IvParameterSpec(v0_8));
            v3_4.doFinal(p13, 0, p13.length, v9, this.zzdmz);
            byte[] v1_3 = this.zza(v1_0, 2, v9, this.zzdmz, p13.length);
            while (v2 < 16) {
                v9[((p13.length + this.zzdmz) + v2)] = ((byte) ((v10[v2] ^ v0_8[v2]) ^ v1_3[v2]));
                v2++;
            }
            return v9;
        } else {
            throw new java.security.GeneralSecurityException("plaintext too long");
        }
    }

Method com.google.android.gms.internal.ads.zzayi.<init>() calling method javax.crypto.Cipher.getInstance()


    public zzayi(byte[] p5, int p6)
    {
        if ((p6 == 12) || (p6 == 16)) {
            this.zzdmz = p6;
            this.zzdmu = new javax.crypto.spec.SecretKeySpec(p5, "AES");
            IllegalArgumentException v0_1 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v0_1.init(1, this.zzdmu);
            String v1_1 = new byte[16];
            this.zzdmx = com.google.android.gms.internal.ads.zzayi.zzl(v0_1.doFinal(v1_1));
            this.zzdmy = com.google.android.gms.internal.ads.zzayi.zzl(this.zzdmx);
            return;
        } else {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        }
    }

Method com.google.android.gms.internal.ads.zzck.zzb() calling method javax.crypto.Cipher.getIV()


    public final String zzb(byte[] p6, byte[] p7)
    {
        if (p6.length == 16) {
            try {
            } catch (String v0_12) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_12);
            } catch (String v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (String v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            } catch (String v0_8) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_8);
            } catch (String v0_7) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_7);
            }
            com.google.android.gms.internal.ads.zzck.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p6, "AES"), 0);
            String v0_2 = com.google.android.gms.internal.ads.zzck.getCipher().doFinal(p7);
            java.nio.ByteBuffer v2_1 = com.google.android.gms.internal.ads.zzck.getCipher().getIV();
            int v1_2 = (v0_2.length + v2_1.length);
            java.nio.ByteBuffer v3_1 = java.nio.ByteBuffer.allocate(v1_2);
            v3_1.put(v2_1).put(v0_2);
            v3_1.flip();
            String v0_5 = new byte[v1_2];
            v3_1.get(v0_5);
            return com.google.android.gms.internal.ads.zzbi.zza(v0_5, 0);
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzck.zzb() calling method javax.crypto.Cipher.doFinal()


    public final String zzb(byte[] p6, byte[] p7)
    {
        if (p6.length == 16) {
            try {
            } catch (String v0_12) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_12);
            } catch (String v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (String v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            } catch (String v0_8) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_8);
            } catch (String v0_7) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_7);
            }
            com.google.android.gms.internal.ads.zzck.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p6, "AES"), 0);
            String v0_2 = com.google.android.gms.internal.ads.zzck.getCipher().doFinal(p7);
            java.nio.ByteBuffer v2_1 = com.google.android.gms.internal.ads.zzck.getCipher().getIV();
            int v1_2 = (v0_2.length + v2_1.length);
            java.nio.ByteBuffer v3_1 = java.nio.ByteBuffer.allocate(v1_2);
            v3_1.put(v2_1).put(v0_2);
            v3_1.flip();
            String v0_5 = new byte[v1_2];
            v3_1.get(v0_5);
            return com.google.android.gms.internal.ads.zzbi.zza(v0_5, 0);
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzck.zza() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zza(byte[] p8, String p9)
    {
        if (p8.length == 16) {
            try {
                Throwable v0_12 = com.google.android.gms.internal.ads.zzbi.zza(p9, 0);
            } catch (Throwable v0_16) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_16);
            } catch (Throwable v0_15) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_15);
            } catch (Throwable v0_14) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_14);
            } catch (Throwable v0_13) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_13);
            } catch (Throwable v0_11) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_11);
            } catch (Throwable v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (Throwable v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            }
            if (v0_12.length > 16) {
                javax.crypto.Cipher v1_0 = java.nio.ByteBuffer.allocate(v0_12.length);
                v1_0.put(v0_12);
                v1_0.flip();
                byte[] v2_2 = new byte[16];
                Throwable v0_3 = new byte[(v0_12.length - 16)];
                v1_0.get(v2_2);
                v1_0.get(v0_3);
                com.google.android.gms.internal.ads.zzck.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p8, "AES"), new javax.crypto.spec.IvParameterSpec(v2_2));
                return com.google.android.gms.internal.ads.zzck.getCipher().doFinal(v0_3);
            } else {
                throw new com.google.android.gms.internal.ads.zzcl(this);
            }
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzayj.zzc() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzc(byte[] p8, byte[] p9)
    {
        if (p8.length <= 2147483619) {
            byte[] v4 = new byte[((p8.length + 12) + 16)];
            byte[] v1_0 = com.google.android.gms.internal.ads.zzazl.zzbh(12);
            System.arraycopy(v1_0, 0, v4, 0, 12);
            javax.crypto.Cipher v0_2 = ((javax.crypto.Cipher) com.google.android.gms.internal.ads.zzayy.zzdnz.zzek("AES/GCM/NoPadding"));
            v0_2.init(1, this.zzdna, new javax.crypto.spec.GCMParameterSpec(128, v1_0));
            if (p9 == null) {
                p9 = new byte[0];
            }
            v0_2.updateAAD(p9);
            v0_2.doFinal(p8, 0, p8.length, v4, 12);
            return v4;
        } else {
            throw new java.security.GeneralSecurityException("plaintext too long");
        }
    }

Method com.google.android.gms.internal.ads.zzayi.zzc() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzc(byte[] p13, byte[] p14)
    {
        int v2 = 0;
        if (p13.length <= ((2147483647 - this.zzdmz) - 16)) {
            byte v6_0;
            byte[] v9 = new byte[((this.zzdmz + p13.length) + 16)];
            int v3_0 = com.google.android.gms.internal.ads.zzazl.zzbh(this.zzdmz);
            System.arraycopy(v3_0, 0, v9, 0, this.zzdmz);
            byte[] v1_0 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v1_0.init(1, this.zzdmu);
            byte[] v0_8 = this.zza(v1_0, 0, v3_0, 0, v3_0.length);
            if (p14 != null) {
                v6_0 = p14;
            } else {
                v6_0 = new byte[0];
            }
            byte[] v10 = this.zza(v1_0, 1, v6_0, 0, v6_0.length);
            int v3_4 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v3_4.init(1, this.zzdmu, new javax.crypto.spec.IvParameterSpec(v0_8));
            v3_4.doFinal(p13, 0, p13.length, v9, this.zzdmz);
            byte[] v1_3 = this.zza(v1_0, 2, v9, this.zzdmz, p13.length);
            while (v2 < 16) {
                v9[((p13.length + this.zzdmz) + v2)] = ((byte) ((v10[v2] ^ v0_8[v2]) ^ v1_3[v2]));
                v2++;
            }
            return v9;
        } else {
            throw new java.security.GeneralSecurityException("plaintext too long");
        }
    }

Method com.google.android.gms.internal.ads.zzayi.zza() calling method javax.crypto.Cipher.doFinal()


    private final byte[] zza(javax.crypto.Cipher p8, int p9, byte[] p10, int p11, int p12)
    {
        int v0_5;
        int v0_0 = 0;
        int v1_4 = new byte[16];
        v1_4[15] = ((byte) p9);
        if (p12 != 0) {
            byte v2_7 = 0;
            byte[] v3_0 = p8.doFinal(v1_4);
            while ((p12 - v2_7) > 16) {
                int v1_6 = 0;
                while (v1_6 < 16) {
                    v3_0[v1_6] = ((byte) (v3_0[v1_6] ^ p10[((p11 + v2_7) + v1_6)]));
                    v1_6++;
                }
                v3_0 = p8.doFinal(v3_0);
                v2_7 += 16;
            }
            int v0_2;
            byte v2_1 = java.util.Arrays.copyOfRange(p10, (p11 + v2_7), (p11 + p12));
            if (v2_1.length != 16) {
                int v1_5 = java.util.Arrays.copyOf(this.zzdmy, 16);
                while (v0_0 < v2_1.length) {
                    v1_5[v0_0] = ((byte) (v1_5[v0_0] ^ v2_1[v0_0]));
                    v0_0++;
                }
                v1_5[v2_1.length] = ((byte) (v1_5[v2_1.length] ^ 128));
                v0_2 = v1_5;
            } else {
                v0_2 = com.google.android.gms.internal.ads.zzayi.zzd(v2_1, this.zzdmx);
            }
            v0_5 = p8.doFinal(com.google.android.gms.internal.ads.zzayi.zzd(v3_0, v0_2));
        } else {
            v0_5 = p8.doFinal(com.google.android.gms.internal.ads.zzayi.zzd(v1_4, this.zzdmx));
        }
        return v0_5;
    }

Method com.google.android.gms.internal.ads.zzayi.<init>() calling method javax.crypto.Cipher.doFinal()


    public zzayi(byte[] p5, int p6)
    {
        if ((p6 == 12) || (p6 == 16)) {
            this.zzdmz = p6;
            this.zzdmu = new javax.crypto.spec.SecretKeySpec(p5, "AES");
            IllegalArgumentException v0_1 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v0_1.init(1, this.zzdmu);
            String v1_1 = new byte[16];
            this.zzdmx = com.google.android.gms.internal.ads.zzayi.zzl(v0_1.doFinal(v1_1));
            this.zzdmy = com.google.android.gms.internal.ads.zzayi.zzl(this.zzdmx);
            return;
        } else {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        }
    }

Method com.google.android.gms.internal.ads.zzayh.zzk() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzk(byte[] p9)
    {
        if (p9.length <= (2147483647 - this.zzdmv)) {
            byte[] v4 = new byte[(this.zzdmv + p9.length)];
            String v1_0 = com.google.android.gms.internal.ads.zzazl.zzbh(this.zzdmv);
            System.arraycopy(v1_0, 0, v4, 0, this.zzdmv);
            int v3_1 = p9.length;
            int v5 = this.zzdmv;
            java.security.GeneralSecurityException v0_5 = ((javax.crypto.Cipher) com.google.android.gms.internal.ads.zzayy.zzdnz.zzek("AES/CTR/NoPadding"));
            int v6_2 = new byte[this.zzdmw];
            System.arraycopy(v1_0, 0, v6_2, 0, this.zzdmv);
            v0_5.init(1, this.zzdmu, new javax.crypto.spec.IvParameterSpec(v6_2));
            if (v0_5.doFinal(p9, 0, v3_1, v4, v5) == v3_1) {
                return v4;
            } else {
                throw new java.security.GeneralSecurityException("stored output\'s length does not match input\'s length");
            }
        } else {
            throw new java.security.GeneralSecurityException(new StringBuilder(43).append("plaintext length can not exceed ").append((2147483647 - this.zzdmv)).toString());
        }
    }

Method com.google.android.gms.internal.ads.zzck.zzb() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public final String zzb(byte[] p6, byte[] p7)
    {
        if (p6.length == 16) {
            try {
            } catch (String v0_12) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_12);
            } catch (String v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (String v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            } catch (String v0_8) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_8);
            } catch (String v0_7) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_7);
            }
            com.google.android.gms.internal.ads.zzck.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p6, "AES"), 0);
            String v0_2 = com.google.android.gms.internal.ads.zzck.getCipher().doFinal(p7);
            java.nio.ByteBuffer v2_1 = com.google.android.gms.internal.ads.zzck.getCipher().getIV();
            int v1_2 = (v0_2.length + v2_1.length);
            java.nio.ByteBuffer v3_1 = java.nio.ByteBuffer.allocate(v1_2);
            v3_1.put(v2_1).put(v0_2);
            v3_1.flip();
            String v0_5 = new byte[v1_2];
            v3_1.get(v0_5);
            return com.google.android.gms.internal.ads.zzbi.zza(v0_5, 0);
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzck.zza() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public final byte[] zza(byte[] p8, String p9)
    {
        if (p8.length == 16) {
            try {
                Throwable v0_12 = com.google.android.gms.internal.ads.zzbi.zza(p9, 0);
            } catch (Throwable v0_16) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_16);
            } catch (Throwable v0_15) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_15);
            } catch (Throwable v0_14) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_14);
            } catch (Throwable v0_13) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_13);
            } catch (Throwable v0_11) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_11);
            } catch (Throwable v0_10) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_10);
            } catch (Throwable v0_9) {
                throw new com.google.android.gms.internal.ads.zzcl(this, v0_9);
            }
            if (v0_12.length > 16) {
                javax.crypto.Cipher v1_0 = java.nio.ByteBuffer.allocate(v0_12.length);
                v1_0.put(v0_12);
                v1_0.flip();
                byte[] v2_2 = new byte[16];
                Throwable v0_3 = new byte[(v0_12.length - 16)];
                v1_0.get(v2_2);
                v1_0.get(v0_3);
                com.google.android.gms.internal.ads.zzck.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p8, "AES"), new javax.crypto.spec.IvParameterSpec(v2_2));
                return com.google.android.gms.internal.ads.zzck.getCipher().doFinal(v0_3);
            } else {
                throw new com.google.android.gms.internal.ads.zzcl(this);
            }
        } else {
            throw new com.google.android.gms.internal.ads.zzcl(this);
        }
    }

Method com.google.android.gms.internal.ads.zzayr.zza() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public final com.google.android.gms.internal.ads.zzays zza(String p11, byte[] p12, byte[] p13, int p14, com.google.android.gms.internal.ads.zzayw p15)
    {
        String v1_12 = com.google.android.gms.internal.ads.zzayt.zza(this.zzdnj.getParams());
        com.google.android.gms.internal.ads.zzays v0_0 = ((java.security.interfaces.ECPublicKey) v1_12.getPublic());
        String v1_3 = ((java.security.interfaces.ECPrivateKey) v1_12.getPrivate());
        int v5_9 = this.zzdnj;
        byte[] v6_5 = v5_9.getParams();
        int v7_6 = v1_3.getParams();
        if ((v6_5.getCurve().equals(v7_6.getCurve())) && ((v6_5.getGenerator().equals(v7_6.getGenerator())) && ((v6_5.getOrder().equals(v7_6.getOrder())) && (v6_5.getCofactor() == v7_6.getCofactor())))) {
            String v1_1;
            int v5_12 = com.google.android.gms.internal.ads.zzayt.zza(v1_3, v5_9.getW());
            String v1_10 = v0_0.getParams().getCurve();
            byte[] v6_7 = v0_0.getW();
            com.google.android.gms.internal.ads.zzayt.zza(v6_7, v1_10);
            int v7_8 = com.google.android.gms.internal.ads.zzayt.zzb(v1_10);
            switch (com.google.android.gms.internal.ads.zzayu.zzdnm[p15.ordinal()]) {
                case 1:
                    com.google.android.gms.internal.ads.zzays v0_27 = new byte[((v7_8 * 2) + 1)];
                    String v1_14 = v6_7.getAffineX().toByteArray();
                    byte[] v6_9 = v6_7.getAffineY().toByteArray();
                    System.arraycopy(v6_9, 0, v0_27, (((v7_8 * 2) + 1) - v6_9.length), v6_9.length);
                    System.arraycopy(v1_14, 0, v0_27, ((v7_8 + 1) - v1_14.length), v1_14.length);
                    v0_27[0] = 4;
                    v1_1 = v0_27;
                    break;
                case 2:
                    com.google.android.gms.internal.ads.zzays v0_23;
                    v1_1 = new byte[(v7_8 + 1)];
                    com.google.android.gms.internal.ads.zzays v0_20 = v6_7.getAffineX().toByteArray();
                    System.arraycopy(v0_20, 0, v1_1, ((v7_8 + 1) - v0_20.length), v0_20.length);
                    if (!v6_7.getAffineY().testBit(0)) {
                        v0_23 = 2;
                    } else {
                        v0_23 = 3;
                    }
                    v1_1[0] = ((byte) v0_23);
                    break;
                default:
                    String v1_5 = String.valueOf(p15);
                    throw new java.security.GeneralSecurityException(new StringBuilder((String.valueOf(v1_5).length() + 15)).append("invalid format:").append(v1_5).toString());
            }
            com.google.android.gms.internal.ads.zzays v0_1 = new byte[][2];
            v0_1[0] = v1_1;
            v0_1[1] = v5_12;
            byte[] v2_1 = com.google.android.gms.internal.ads.zzayk.zza(v0_1);
            com.google.android.gms.internal.ads.zzays v0_4 = ((javax.crypto.Mac) com.google.android.gms.internal.ads.zzayy.zzdoa.zzek(p11));
            if (p14 <= (v0_4.getMacLength() * 255)) {
                if ((p12 != null) && (p12.length != 0)) {
                    v0_4.init(new javax.crypto.spec.SecretKeySpec(p12, p11));
                } else {
                    byte[] v6_3 = new byte[v0_4.getMacLength()];
                    v0_4.init(new javax.crypto.spec.SecretKeySpec(v6_3, p11));
                }
                byte[] v6_4 = new byte[p14];
                v0_4.init(new javax.crypto.spec.SecretKeySpec(v0_4.doFinal(v2_1), p11));
                byte[] v2_3 = new byte[0];
                int v5_10 = 1;
                int v3_1 = 0;
                while(true) {
                    v0_4.update(v2_3);
                    v0_4.update(p13);
                    v0_4.update(((byte) v5_10));
                    v2_3 = v0_4.doFinal();
                    if ((v2_3.length + v3_1) >= p14) {
                        break;
                    }
                    System.arraycopy(v2_3, 0, v6_4, v3_1, v2_3.length);
                    v3_1 += v2_3.length;
                    v5_10++;
                }
                System.arraycopy(v2_3, 0, v6_4, v3_1, (p14 - v3_1));
                return new com.google.android.gms.internal.ads.zzays(v1_1, v6_4);
            } else {
                throw new java.security.GeneralSecurityException("size too large");
            }
        } else {
            throw new java.security.GeneralSecurityException("invalid public key spec");
        }
    }

Method com.google.android.gms.internal.ads.zzayj.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public zzayj(byte[] p3)
    {
        this.zzdna = new javax.crypto.spec.SecretKeySpec(p3, "AES");
        return;
    }

Method com.google.android.gms.internal.ads.zzayi.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public zzayi(byte[] p5, int p6)
    {
        if ((p6 == 12) || (p6 == 16)) {
            this.zzdmz = p6;
            this.zzdmu = new javax.crypto.spec.SecretKeySpec(p5, "AES");
            IllegalArgumentException v0_1 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v0_1.init(1, this.zzdmu);
            String v1_1 = new byte[16];
            this.zzdmx = com.google.android.gms.internal.ads.zzayi.zzl(v0_1.doFinal(v1_1));
            this.zzdmy = com.google.android.gms.internal.ads.zzayi.zzl(this.zzdmx);
            return;
        } else {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        }
    }

Method com.google.android.gms.internal.ads.zzayh.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public zzayh(byte[] p3, int p4)
    {
        this.zzdmu = new javax.crypto.spec.SecretKeySpec(p3, "AES");
        this.zzdmw = ((javax.crypto.Cipher) com.google.android.gms.internal.ads.zzayy.zzdnz.zzek("AES/CTR/NoPadding")).getBlockSize();
        if ((p4 >= 12) && (p4 <= this.zzdmw)) {
            this.zzdmv = p4;
            return;
        } else {
            throw new java.security.GeneralSecurityException("invalid IV size");
        }
    }

Method com.google.android.gms.internal.ads.zzavk.zza() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public final synthetic Object zza(com.google.android.gms.internal.ads.zzbcu p5)
    {
        if ((p5 instanceof com.google.android.gms.internal.ads.zzaxc)) {
            com.google.android.gms.internal.ads.zzazq.zzj(((com.google.android.gms.internal.ads.zzaxc) p5).getVersion(), 0);
            if (((com.google.android.gms.internal.ads.zzaxc) p5).zzwv().size() >= 16) {
                com.google.android.gms.internal.ads.zzazj v0_8;
                com.google.android.gms.internal.ads.zzavk.zza(((com.google.android.gms.internal.ads.zzaxc) p5).zzym());
                com.google.android.gms.internal.ads.zzazj v0_4 = ((com.google.android.gms.internal.ads.zzaxc) p5).zzym().zzys();
                javax.crypto.spec.SecretKeySpec v2_1 = new javax.crypto.spec.SecretKeySpec(((com.google.android.gms.internal.ads.zzaxc) p5).zzwv().toByteArray(), "HMAC");
                String v1_4 = ((com.google.android.gms.internal.ads.zzaxc) p5).zzym().zzyt();
                switch (com.google.android.gms.internal.ads.zzavl.zzdhz[v0_4.ordinal()]) {
                    case 1:
                        v0_8 = new com.google.android.gms.internal.ads.zzazj("HMACSHA1", v2_1, v1_4);
                        break;
                    case 2:
                        v0_8 = new com.google.android.gms.internal.ads.zzazj("HMACSHA256", v2_1, v1_4);
                        break;
                    case 3:
                        v0_8 = new com.google.android.gms.internal.ads.zzazj("HMACSHA512", v2_1, v1_4);
                        break;
                    default:
                        throw new java.security.GeneralSecurityException("unknown hash");
                }
                return v0_8;
            } else {
                throw new java.security.GeneralSecurityException("key too short");
            }
        } else {
            throw new java.security.GeneralSecurityException("expected HmacKey proto");
        }
    }

Method com.google.android.gms.internal.ads.zzavk.zzh() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private final com.google.android.gms.internal.ads.zzauk zzh(com.google.android.gms.internal.ads.zzbah p6)
    {
        try {
            com.google.android.gms.internal.ads.zzauk v0_0 = com.google.android.gms.internal.ads.zzaxc.zzae(p6);
        } catch (com.google.android.gms.internal.ads.zzauk v0_16) {
            throw new java.security.GeneralSecurityException("expected serialized HmacKey proto", v0_16);
        }
        if ((v0_0 instanceof com.google.android.gms.internal.ads.zzaxc)) {
            com.google.android.gms.internal.ads.zzauk v0_5 = ((com.google.android.gms.internal.ads.zzaxc) v0_0);
            com.google.android.gms.internal.ads.zzazq.zzj(v0_5.getVersion(), 0);
            if (v0_5.zzwv().size() >= 16) {
                com.google.android.gms.internal.ads.zzauk v0_6;
                com.google.android.gms.internal.ads.zzavk.zza(v0_5.zzym());
                String v1_5 = v0_5.zzym().zzys();
                javax.crypto.spec.SecretKeySpec v3_1 = new javax.crypto.spec.SecretKeySpec(v0_5.zzwv().toByteArray(), "HMAC");
                int v2_3 = v0_5.zzym().zzyt();
                switch (com.google.android.gms.internal.ads.zzavl.zzdhz[v1_5.ordinal()]) {
                    case 1:
                        v0_6 = new com.google.android.gms.internal.ads.zzazj("HMACSHA1", v3_1, v2_3);
                        break;
                    case 2:
                        v0_6 = new com.google.android.gms.internal.ads.zzazj("HMACSHA256", v3_1, v2_3);
                        break;
                    case 3:
                        v0_6 = new com.google.android.gms.internal.ads.zzazj("HMACSHA512", v3_1, v2_3);
                        break;
                    default:
                        throw new java.security.GeneralSecurityException("unknown hash");
                }
                return ((com.google.android.gms.internal.ads.zzauk) v0_6);
            } else {
                throw new java.security.GeneralSecurityException("key too short");
            }
        } else {
            throw new java.security.GeneralSecurityException("expected HmacKey proto");
        }
    }