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.zzdfo.zza() calling method javax.crypto.spec.IvParameterSpec.<init>()

Couldn't retrieve source code

Method com.google.android.gms.internal.zzdty.zzd() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zzd(byte[] p16, byte[] p17)
    {
        String v1_1 = this.zzlyh;
        if (p16.length > ((2147483647 - v1_1) - 16)) {
            throw new java.security.GeneralSecurityException("plaintext too long");
        } else {
            byte[] v9 = new byte[((p16.length + v1_1) + 16)];
            byte v3_0 = com.google.android.gms.internal.zzdvi.zzgh(v1_1);
            int v10 = 0;
            System.arraycopy(v3_0, 0, v9, 0, this.zzlyh);
            javax.crypto.Cipher v11 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v11.init(1, this.zzlyc);
            String v1_2 = v11;
            byte[] v13 = this.zza(v1_2, 0, v3_0, 0, v3_0.length);
            byte[] v14 = this.zza(v1_2, 1, p17, 0, p17.length);
            java.security.GeneralSecurityException v0_10 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v0_10.init(1, this.zzlyc, new javax.crypto.spec.IvParameterSpec(v13));
            v0_10.doFinal(p16, 0, p16.length, v9, this.zzlyh);
            java.security.GeneralSecurityException v0_12 = this.zza(v11, 2, v9, this.zzlyh, p16.length);
            while (v10 < 16) {
                v9[((p16.length + this.zzlyh) + v10)] = ((byte) ((v14[v10] ^ v13[v10]) ^ v0_12[v10]));
                v10++;
            }
            return v9;
        }
    }

Method com.google.android.gms.internal.zzdtx.zzag() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zzag(byte[] p10)
    {
        StringBuilder v1_0 = this.zzlyd;
        if (p10.length > (2147483647 - v1_0)) {
            int v2_5 = (2147483647 - v1_0);
            StringBuilder v1_5 = new StringBuilder(43);
            v1_5.append("plaintext length can not exceed ");
            v1_5.append(v2_5);
            throw new java.security.GeneralSecurityException(v1_5.toString());
        } else {
            String v0_5 = new byte[(p10.length + v1_0)];
            StringBuilder v1_1 = com.google.android.gms.internal.zzdvi.zzgh(v1_0);
            System.arraycopy(v1_1, 0, v0_5, 0, this.zzlyd);
            int v8 = p10.length;
            int v7 = this.zzlyd;
            int v2_4 = ((javax.crypto.Cipher) com.google.android.gms.internal.zzduu.zzlzp.zzos("AES/CTR/NoPadding"));
            int v4_2 = new byte[this.zzlye];
            System.arraycopy(v1_1, 0, v4_2, 0, this.zzlyd);
            v2_4.init(1, this.zzlyc, new javax.crypto.spec.IvParameterSpec(v4_2));
            if (v2_4.doFinal(p10, 0, v8, v0_5, v7) != v8) {
                throw new java.security.GeneralSecurityException("stored output\'s length does not match input\'s length");
            } else {
                return v0_5;
            }
        }
    }

Method com.scottyab.aescrypt.AESCrypt.encrypt() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public static byte[] encrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(1, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("cipherText", v2_1);
        return v2_1;
    }

Method com.scottyab.aescrypt.AESCrypt.decrypt() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public static byte[] decrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(2, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("decryptedBytes", v2_1);
        return v2_1;
    }

Method com.google.android.gms.internal.zzcx.zzb() calling method javax.crypto.spec.IvParameterSpec.<init>()


    public final byte[] zzb(byte[] p6, String p7)
    {
        if (p6.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
                Throwable v7_20 = com.google.android.gms.internal.zzbu.zza(p7, 0);
            } catch (com.google.android.gms.internal.zzcy v6_11) {
                throw new com.google.android.gms.internal.zzcy(this, v6_11);
            } catch (com.google.android.gms.internal.zzcy v6_10) {
                throw new com.google.android.gms.internal.zzcy(this, v6_10);
            } catch (com.google.android.gms.internal.zzcy v6_9) {
                throw new com.google.android.gms.internal.zzcy(this, v6_9);
            } catch (com.google.android.gms.internal.zzcy v6_8) {
                throw new com.google.android.gms.internal.zzcy(this, v6_8);
            } catch (com.google.android.gms.internal.zzcy v6_7) {
                throw new com.google.android.gms.internal.zzcy(this, v6_7);
            } catch (com.google.android.gms.internal.zzcy v6_6) {
                throw new com.google.android.gms.internal.zzcy(this, v6_6);
            } catch (com.google.android.gms.internal.zzcy v6_5) {
                throw new com.google.android.gms.internal.zzcy(this, v6_5);
            }
            if (v7_20.length <= 16) {
                throw new com.google.android.gms.internal.zzcy(this);
            } else {
                javax.crypto.Cipher v0_2 = java.nio.ByteBuffer.allocate(v7_20.length);
                v0_2.put(v7_20);
                v0_2.flip();
                byte[] v2 = new byte[16];
                Throwable v7_3 = new byte[(v7_20.length - 16)];
                v0_2.get(v2);
                v0_2.get(v7_3);
                com.google.android.gms.internal.zzcx.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p6, "AES"), new javax.crypto.spec.IvParameterSpec(v2));
                return com.google.android.gms.internal.zzcx.getCipher().doFinal(v7_3);
            }
        }
    }

Method com.google.android.gms.internal.zzdfo.zza() calling method javax.crypto.Cipher.getInstance()

Couldn't retrieve source code

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


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

Method com.google.android.gms.internal.zzdty.zzd() calling method javax.crypto.Cipher.getInstance()


    public final byte[] zzd(byte[] p16, byte[] p17)
    {
        String v1_1 = this.zzlyh;
        if (p16.length > ((2147483647 - v1_1) - 16)) {
            throw new java.security.GeneralSecurityException("plaintext too long");
        } else {
            byte[] v9 = new byte[((p16.length + v1_1) + 16)];
            byte v3_0 = com.google.android.gms.internal.zzdvi.zzgh(v1_1);
            int v10 = 0;
            System.arraycopy(v3_0, 0, v9, 0, this.zzlyh);
            javax.crypto.Cipher v11 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v11.init(1, this.zzlyc);
            String v1_2 = v11;
            byte[] v13 = this.zza(v1_2, 0, v3_0, 0, v3_0.length);
            byte[] v14 = this.zza(v1_2, 1, p17, 0, p17.length);
            java.security.GeneralSecurityException v0_10 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v0_10.init(1, this.zzlyc, new javax.crypto.spec.IvParameterSpec(v13));
            v0_10.doFinal(p16, 0, p16.length, v9, this.zzlyh);
            java.security.GeneralSecurityException v0_12 = this.zza(v11, 2, v9, this.zzlyh, p16.length);
            while (v10 < 16) {
                v9[((p16.length + this.zzlyh) + v10)] = ((byte) ((v14[v10] ^ v13[v10]) ^ v0_12[v10]));
                v10++;
            }
            return v9;
        }
    }

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


    public zzdty(byte[] p3, int p4)
    {
        if ((p4 != 12) && (p4 != 16)) {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        } else {
            this.zzlyh = p4;
            this.zzlyc = new javax.crypto.spec.SecretKeySpec(p3, "AES");
            IllegalArgumentException v3_2 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v3_2.init(1, this.zzlyc);
            String v4_4 = new byte[16];
            this.zzlyf = com.google.android.gms.internal.zzdty.zzah(v3_2.doFinal(v4_4));
            this.zzlyg = com.google.android.gms.internal.zzdty.zzah(this.zzlyf);
            return;
        }
    }

Method com.scottyab.aescrypt.AESCrypt.encrypt() calling method javax.crypto.Cipher.getInstance()


    public static byte[] encrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(1, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("cipherText", v2_1);
        return v2_1;
    }

Method com.scottyab.aescrypt.AESCrypt.decrypt() calling method javax.crypto.Cipher.getInstance()


    public static byte[] decrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(2, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("decryptedBytes", v2_1);
        return v2_1;
    }

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


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

Method com.github.yeriomin.playstoreapi.PasswordEncrypter.encrypt() calling method javax.crypto.Cipher.getInstance()


    public static String encrypt(String p8, String p9)
    {
        int v0_3 = com.github.yeriomin.playstoreapi.Base64.decode("AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pKRI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/6rmf5AAAAAwEAAQ==", 0);
        int v2_5 = com.github.yeriomin.playstoreapi.PasswordEncrypter.readInt(v0_3, 0);
        byte[] v3_6 = new byte[v2_5];
        System.arraycopy(v0_3, 4, v3_6, 0, v2_5);
        java.math.BigInteger v5_0 = new java.math.BigInteger(1, v3_6);
        byte[] v3_1 = com.github.yeriomin.playstoreapi.PasswordEncrypter.readInt(v0_3, (v2_5 + 4));
        byte[] v7 = new byte[v3_1];
        System.arraycopy(v0_3, (v2_5 + 8), v7, 0, v3_1);
        int v2_2 = new java.math.BigInteger(1, v7);
        int v0_1 = java.security.MessageDigest.getInstance("SHA-1").digest(v0_3);
        byte[] v3_5 = new byte[5];
        v3_5[0] = 0;
        System.arraycopy(v0_1, 0, v3_5, 1, 4);
        int v0_5 = java.security.KeyFactory.getInstance("RSA").generatePublic(new java.security.spec.RSAPublicKeySpec(v5_0, v2_2));
        int v2_4 = javax.crypto.Cipher.getInstance("RSA/ECB/OAEPWITHSHA1ANDMGF1PADDING");
        StringBuilder v4_3 = new StringBuilder();
        v4_3.append(p8);
        v4_3.append("\u0000");
        v4_3.append(p9);
        String v8_3 = v4_3.toString().getBytes("UTF-8");
        v2_4.init(1, v0_5);
        String v8_4 = v2_4.doFinal(v8_3);
        byte[] v9_3 = new byte[133];
        System.arraycopy(v3_5, 0, v9_3, 0, v3_5.length);
        System.arraycopy(v8_4, 0, v9_3, v3_5.length, v8_4.length);
        return com.github.yeriomin.playstoreapi.Base64.encodeToString(v9_3, 10);
    }

Method com.google.android.gms.internal.zzcx.zzc() calling method javax.crypto.Cipher.getIV()


    public final String zzc(byte[] p5, byte[] p6)
    {
        if (p5.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
            } catch (String v5_11) {
                throw new com.google.android.gms.internal.zzcy(this, v5_11);
            } catch (String v5_10) {
                throw new com.google.android.gms.internal.zzcy(this, v5_10);
            } catch (String v5_9) {
                throw new com.google.android.gms.internal.zzcy(this, v5_9);
            } catch (String v5_8) {
                throw new com.google.android.gms.internal.zzcy(this, v5_8);
            } catch (String v5_7) {
                throw new com.google.android.gms.internal.zzcy(this, v5_7);
            }
            com.google.android.gms.internal.zzcx.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p5, "AES"), 0);
            int v6_1 = com.google.android.gms.internal.zzcx.getCipher().doFinal(p6);
            java.nio.ByteBuffer v0_3 = com.google.android.gms.internal.zzcx.getCipher().getIV();
            String v5_2 = (v6_1.length + v0_3.length);
            java.nio.ByteBuffer v1_3 = java.nio.ByteBuffer.allocate(v5_2);
            v1_3.put(v0_3).put(v6_1);
            v1_3.flip();
            String v5_4 = new byte[v5_2];
            v1_3.get(v5_4);
            return com.google.android.gms.internal.zzbu.zza(v5_4, 0);
        }
    }

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


    private static String zza(javax.crypto.Cipher p1, String p2, javax.crypto.spec.SecretKeySpec p3, javax.crypto.spec.IvParameterSpec p4)
    {
        if ((p2 == null) || (p2.length() == 0)) {
            throw new RuntimeException("Encrypt: empty input string");
        } else {
            try {
                p1.init(1, p3, p4);
                return com.google.android.gms.internal.zzcxy.zzk(p1.doFinal(p2.getBytes()));
            } catch (String v1_3) {
                String v1_5 = String.valueOf(v1_3.getMessage());
                if (v1_5.length() == 0) {
                    String v1_7 = new String("Encrypt: ");
                } else {
                    v1_7 = "Encrypt: ".concat(v1_5);
                }
                throw new RuntimeException(v1_7);
            }
        }
    }

Method com.google.android.gms.internal.zzdtz.zzd() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzd(byte[] p9, byte[] p10)
    {
        if (p9.length > 2147483619) {
            throw new java.security.GeneralSecurityException("plaintext too long");
        } else {
            byte[] v0_2 = new byte[((p9.length + 12) + 16)];
            javax.crypto.Cipher v2_0 = com.google.android.gms.internal.zzdvi.zzgh(12);
            System.arraycopy(v2_0, 0, v0_2, 0, 12);
            javax.crypto.Cipher v1_3 = ((javax.crypto.Cipher) com.google.android.gms.internal.zzduu.zzlzp.zzos("AES/GCM/NoPadding"));
            v1_3.init(1, this.zzlyi, new javax.crypto.spec.GCMParameterSpec(128, v2_0));
            v1_3.updateAAD(p10);
            v1_3.doFinal(p9, 0, p9.length, v0_2, 12);
            return v0_2;
        }
    }

Method com.google.android.gms.internal.zzdty.zzd() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzd(byte[] p16, byte[] p17)
    {
        String v1_1 = this.zzlyh;
        if (p16.length > ((2147483647 - v1_1) - 16)) {
            throw new java.security.GeneralSecurityException("plaintext too long");
        } else {
            byte[] v9 = new byte[((p16.length + v1_1) + 16)];
            byte v3_0 = com.google.android.gms.internal.zzdvi.zzgh(v1_1);
            int v10 = 0;
            System.arraycopy(v3_0, 0, v9, 0, this.zzlyh);
            javax.crypto.Cipher v11 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v11.init(1, this.zzlyc);
            String v1_2 = v11;
            byte[] v13 = this.zza(v1_2, 0, v3_0, 0, v3_0.length);
            byte[] v14 = this.zza(v1_2, 1, p17, 0, p17.length);
            java.security.GeneralSecurityException v0_10 = javax.crypto.Cipher.getInstance("AES/CTR/NOPADDING");
            v0_10.init(1, this.zzlyc, new javax.crypto.spec.IvParameterSpec(v13));
            v0_10.doFinal(p16, 0, p16.length, v9, this.zzlyh);
            java.security.GeneralSecurityException v0_12 = this.zza(v11, 2, v9, this.zzlyh, p16.length);
            while (v10 < 16) {
                v9[((p16.length + this.zzlyh) + v10)] = ((byte) ((v14[v10] ^ v13[v10]) ^ v0_12[v10]));
                v10++;
            }
            return v9;
        }
    }

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


    private final byte[] zza(javax.crypto.Cipher p7, int p8, byte[] p9, int p10, int p11)
    {
        byte[] v8_10;
        int v1_0 = new byte[16];
        v1_0[15] = ((byte) p8);
        if (p11 != 0) {
            int v1_1 = 0;
            byte[] v2_1 = p7.doFinal(v1_0);
            byte[] v8_1 = 0;
            while ((p11 - v8_1) > 16) {
                int v3_1 = 0;
                while (v3_1 < 16) {
                    v2_1[v3_1] = ((byte) (v2_1[v3_1] ^ p9[((p10 + v8_1) + v3_1)]));
                    v3_1++;
                }
                v2_1 = p7.doFinal(v2_1);
                v8_1 += 16;
            }
            byte[] v8_9;
            byte[] v8_3 = java.util.Arrays.copyOfRange(p9, (v8_1 + p10), (p10 + p11));
            if (v8_3.length != 16) {
                byte[] v9_3 = java.util.Arrays.copyOf(this.zzlyg, 16);
                while (v1_1 < v8_3.length) {
                    v9_3[v1_1] = ((byte) (v9_3[v1_1] ^ v8_3[v1_1]));
                    v1_1++;
                }
                v9_3[v8_3.length] = ((byte) (v9_3[v8_3.length] ^ 128));
                v8_9 = v9_3;
            } else {
                v8_9 = com.google.android.gms.internal.zzdty.zze(v8_3, this.zzlyf);
            }
            v8_10 = com.google.android.gms.internal.zzdty.zze(v2_1, v8_9);
        } else {
            v8_10 = com.google.android.gms.internal.zzdty.zze(v1_0, this.zzlyf);
        }
        return p7.doFinal(v8_10);
    }

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


    public zzdty(byte[] p3, int p4)
    {
        if ((p4 != 12) && (p4 != 16)) {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        } else {
            this.zzlyh = p4;
            this.zzlyc = new javax.crypto.spec.SecretKeySpec(p3, "AES");
            IllegalArgumentException v3_2 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v3_2.init(1, this.zzlyc);
            String v4_4 = new byte[16];
            this.zzlyf = com.google.android.gms.internal.zzdty.zzah(v3_2.doFinal(v4_4));
            this.zzlyg = com.google.android.gms.internal.zzdty.zzah(this.zzlyf);
            return;
        }
    }

Method com.google.android.gms.internal.zzdtx.zzag() calling method javax.crypto.Cipher.doFinal()


    public final byte[] zzag(byte[] p10)
    {
        StringBuilder v1_0 = this.zzlyd;
        if (p10.length > (2147483647 - v1_0)) {
            int v2_5 = (2147483647 - v1_0);
            StringBuilder v1_5 = new StringBuilder(43);
            v1_5.append("plaintext length can not exceed ");
            v1_5.append(v2_5);
            throw new java.security.GeneralSecurityException(v1_5.toString());
        } else {
            String v0_5 = new byte[(p10.length + v1_0)];
            StringBuilder v1_1 = com.google.android.gms.internal.zzdvi.zzgh(v1_0);
            System.arraycopy(v1_1, 0, v0_5, 0, this.zzlyd);
            int v8 = p10.length;
            int v7 = this.zzlyd;
            int v2_4 = ((javax.crypto.Cipher) com.google.android.gms.internal.zzduu.zzlzp.zzos("AES/CTR/NoPadding"));
            int v4_2 = new byte[this.zzlye];
            System.arraycopy(v1_1, 0, v4_2, 0, this.zzlyd);
            v2_4.init(1, this.zzlyc, new javax.crypto.spec.IvParameterSpec(v4_2));
            if (v2_4.doFinal(p10, 0, v8, v0_5, v7) != v8) {
                throw new java.security.GeneralSecurityException("stored output\'s length does not match input\'s length");
            } else {
                return v0_5;
            }
        }
    }

Method com.scottyab.aescrypt.AESCrypt.encrypt() calling method javax.crypto.Cipher.doFinal()


    public static byte[] encrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(1, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("cipherText", v2_1);
        return v2_1;
    }

Method com.scottyab.aescrypt.AESCrypt.decrypt() calling method javax.crypto.Cipher.doFinal()


    public static byte[] decrypt(javax.crypto.spec.SecretKeySpec p2, byte[] p3, byte[] p4)
    {
        javax.crypto.Cipher v0_1 = javax.crypto.Cipher.getInstance("AES/CBC/PKCS7Padding");
        v0_1.init(2, p2, new javax.crypto.spec.IvParameterSpec(p3));
        byte[] v2_1 = v0_1.doFinal(p4);
        com.scottyab.aescrypt.AESCrypt.log("decryptedBytes", v2_1);
        return v2_1;
    }

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


    public final String zzc(byte[] p5, byte[] p6)
    {
        if (p5.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
            } catch (String v5_11) {
                throw new com.google.android.gms.internal.zzcy(this, v5_11);
            } catch (String v5_10) {
                throw new com.google.android.gms.internal.zzcy(this, v5_10);
            } catch (String v5_9) {
                throw new com.google.android.gms.internal.zzcy(this, v5_9);
            } catch (String v5_8) {
                throw new com.google.android.gms.internal.zzcy(this, v5_8);
            } catch (String v5_7) {
                throw new com.google.android.gms.internal.zzcy(this, v5_7);
            }
            com.google.android.gms.internal.zzcx.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p5, "AES"), 0);
            int v6_1 = com.google.android.gms.internal.zzcx.getCipher().doFinal(p6);
            java.nio.ByteBuffer v0_3 = com.google.android.gms.internal.zzcx.getCipher().getIV();
            String v5_2 = (v6_1.length + v0_3.length);
            java.nio.ByteBuffer v1_3 = java.nio.ByteBuffer.allocate(v5_2);
            v1_3.put(v0_3).put(v6_1);
            v1_3.flip();
            String v5_4 = new byte[v5_2];
            v1_3.get(v5_4);
            return com.google.android.gms.internal.zzbu.zza(v5_4, 0);
        }
    }

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


    public final byte[] zzb(byte[] p6, String p7)
    {
        if (p6.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
                Throwable v7_20 = com.google.android.gms.internal.zzbu.zza(p7, 0);
            } catch (com.google.android.gms.internal.zzcy v6_11) {
                throw new com.google.android.gms.internal.zzcy(this, v6_11);
            } catch (com.google.android.gms.internal.zzcy v6_10) {
                throw new com.google.android.gms.internal.zzcy(this, v6_10);
            } catch (com.google.android.gms.internal.zzcy v6_9) {
                throw new com.google.android.gms.internal.zzcy(this, v6_9);
            } catch (com.google.android.gms.internal.zzcy v6_8) {
                throw new com.google.android.gms.internal.zzcy(this, v6_8);
            } catch (com.google.android.gms.internal.zzcy v6_7) {
                throw new com.google.android.gms.internal.zzcy(this, v6_7);
            } catch (com.google.android.gms.internal.zzcy v6_6) {
                throw new com.google.android.gms.internal.zzcy(this, v6_6);
            } catch (com.google.android.gms.internal.zzcy v6_5) {
                throw new com.google.android.gms.internal.zzcy(this, v6_5);
            }
            if (v7_20.length <= 16) {
                throw new com.google.android.gms.internal.zzcy(this);
            } else {
                javax.crypto.Cipher v0_2 = java.nio.ByteBuffer.allocate(v7_20.length);
                v0_2.put(v7_20);
                v0_2.flip();
                byte[] v2 = new byte[16];
                Throwable v7_3 = new byte[(v7_20.length - 16)];
                v0_2.get(v2);
                v0_2.get(v7_3);
                com.google.android.gms.internal.zzcx.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p6, "AES"), new javax.crypto.spec.IvParameterSpec(v2));
                return com.google.android.gms.internal.zzcx.getCipher().doFinal(v7_3);
            }
        }
    }

Method com.github.yeriomin.playstoreapi.PasswordEncrypter.encrypt() calling method javax.crypto.Cipher.doFinal()


    public static String encrypt(String p8, String p9)
    {
        int v0_3 = com.github.yeriomin.playstoreapi.Base64.decode("AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pKRI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/6rmf5AAAAAwEAAQ==", 0);
        int v2_5 = com.github.yeriomin.playstoreapi.PasswordEncrypter.readInt(v0_3, 0);
        byte[] v3_6 = new byte[v2_5];
        System.arraycopy(v0_3, 4, v3_6, 0, v2_5);
        java.math.BigInteger v5_0 = new java.math.BigInteger(1, v3_6);
        byte[] v3_1 = com.github.yeriomin.playstoreapi.PasswordEncrypter.readInt(v0_3, (v2_5 + 4));
        byte[] v7 = new byte[v3_1];
        System.arraycopy(v0_3, (v2_5 + 8), v7, 0, v3_1);
        int v2_2 = new java.math.BigInteger(1, v7);
        int v0_1 = java.security.MessageDigest.getInstance("SHA-1").digest(v0_3);
        byte[] v3_5 = new byte[5];
        v3_5[0] = 0;
        System.arraycopy(v0_1, 0, v3_5, 1, 4);
        int v0_5 = java.security.KeyFactory.getInstance("RSA").generatePublic(new java.security.spec.RSAPublicKeySpec(v5_0, v2_2));
        int v2_4 = javax.crypto.Cipher.getInstance("RSA/ECB/OAEPWITHSHA1ANDMGF1PADDING");
        StringBuilder v4_3 = new StringBuilder();
        v4_3.append(p8);
        v4_3.append("\u0000");
        v4_3.append(p9);
        String v8_3 = v4_3.toString().getBytes("UTF-8");
        v2_4.init(1, v0_5);
        String v8_4 = v2_4.doFinal(v8_3);
        byte[] v9_3 = new byte[133];
        System.arraycopy(v3_5, 0, v9_3, 0, v3_5.length);
        System.arraycopy(v8_4, 0, v9_3, v3_5.length, v8_4.length);
        return com.github.yeriomin.playstoreapi.Base64.encodeToString(v9_3, 10);
    }

Method okio.HashingSource.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private HashingSource(okio.Source p2, okio.ByteString p3, String p4)
    {
        super(p2);
        try {
            super.mac = javax.crypto.Mac.getInstance(p4);
            super.mac.init(new javax.crypto.spec.SecretKeySpec(p3.toByteArray(), p4));
            super.messageDigest = 0;
            return;
        } catch (java.security.NoSuchAlgorithmException) {
            throw new AssertionError();
        } catch (java.security.InvalidKeyException v2_2) {
            throw new IllegalArgumentException(v2_2);
        }
    }

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

Couldn't retrieve source code

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


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

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


    public zzdty(byte[] p3, int p4)
    {
        if ((p4 != 12) && (p4 != 16)) {
            throw new IllegalArgumentException("IV size should be either 12 or 16 bytes");
        } else {
            this.zzlyh = p4;
            this.zzlyc = new javax.crypto.spec.SecretKeySpec(p3, "AES");
            IllegalArgumentException v3_2 = javax.crypto.Cipher.getInstance("AES/ECB/NOPADDING");
            v3_2.init(1, this.zzlyc);
            String v4_4 = new byte[16];
            this.zzlyf = com.google.android.gms.internal.zzdty.zzah(v3_2.doFinal(v4_4));
            this.zzlyg = com.google.android.gms.internal.zzdty.zzah(this.zzlyf);
            return;
        }
    }

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


    public zzdtx(byte[] p3, int p4)
    {
        this.zzlyc = new javax.crypto.spec.SecretKeySpec(p3, "AES");
        this.zzlye = ((javax.crypto.Cipher) com.google.android.gms.internal.zzduu.zzlzp.zzos("AES/CTR/NoPadding")).getBlockSize();
        if ((p4 < 12) || (p4 > this.zzlye)) {
            throw new java.security.GeneralSecurityException("invalid IV size");
        } else {
            this.zzlyd = p4;
            return;
        }
    }

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


    public final synthetic Object zza(com.google.android.gms.internal.zzfhe p5)
    {
        if (!(p5 instanceof com.google.android.gms.internal.zzdss)) {
            throw new java.security.GeneralSecurityException("expected HmacKey proto");
        } else {
            com.google.android.gms.internal.zzdvk.zzt(((com.google.android.gms.internal.zzdss) p5).getVersion(), 0);
            if (((com.google.android.gms.internal.zzdss) p5).zzbmj().size() < 16) {
                throw new java.security.GeneralSecurityException("key too short");
            } else {
                com.google.android.gms.internal.zzdqy.zza(((com.google.android.gms.internal.zzdss) p5).zzbod());
                com.google.android.gms.internal.zzdvg v0_6 = ((com.google.android.gms.internal.zzdss) p5).zzbod().zzboj();
                javax.crypto.spec.SecretKeySpec v2_1 = new javax.crypto.spec.SecretKeySpec(((com.google.android.gms.internal.zzdss) p5).zzbmj().toByteArray(), "HMAC");
                java.security.GeneralSecurityException v5_5 = ((com.google.android.gms.internal.zzdss) p5).zzbod().zzbok();
                switch (com.google.android.gms.internal.zzdqz.zzltf[v0_6.ordinal()]) {
                    case 1:
                        return new com.google.android.gms.internal.zzdvg("HMACSHA1", v2_1, v5_5);
                    case 2:
                        return new com.google.android.gms.internal.zzdvg("HMACSHA256", v2_1, v5_5);
                    case 3:
                        return new com.google.android.gms.internal.zzdvg("HMACSHA512", v2_1, v5_5);
                    default:
                        throw new java.security.GeneralSecurityException("unknown hash");
                }
            }
        }
    }

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


    private final com.google.android.gms.internal.zzdqa zzh(com.google.android.gms.internal.zzfes p5)
    {
        try {
            java.security.GeneralSecurityException v5_1 = com.google.android.gms.internal.zzdss.zzae(p5);
        } catch (java.security.GeneralSecurityException v5_10) {
            throw new java.security.GeneralSecurityException("expected serialized HmacKey proto", v5_10);
        }
        if (!(v5_1 instanceof com.google.android.gms.internal.zzdss)) {
            throw new java.security.GeneralSecurityException("expected HmacKey proto");
        } else {
            java.security.GeneralSecurityException v5_11 = ((com.google.android.gms.internal.zzdss) v5_1);
            com.google.android.gms.internal.zzdvk.zzt(v5_11.getVersion(), 0);
            if (v5_11.zzbmj().size() < 16) {
                throw new java.security.GeneralSecurityException("key too short");
            } else {
                com.google.android.gms.internal.zzdqa v0_11;
                com.google.android.gms.internal.zzdqy.zza(v5_11.zzbod());
                com.google.android.gms.internal.zzdqa v0_7 = v5_11.zzbod().zzboj();
                javax.crypto.spec.SecretKeySpec v2_1 = new javax.crypto.spec.SecretKeySpec(v5_11.zzbmj().toByteArray(), "HMAC");
                java.security.GeneralSecurityException v5_6 = v5_11.zzbod().zzbok();
                switch (com.google.android.gms.internal.zzdqz.zzltf[v0_7.ordinal()]) {
                    case 1:
                        v0_11 = new com.google.android.gms.internal.zzdvg("HMACSHA1", v2_1, v5_6);
                        break;
                    case 2:
                        v0_11 = new com.google.android.gms.internal.zzdvg("HMACSHA256", v2_1, v5_6);
                        break;
                    case 3:
                        v0_11 = new com.google.android.gms.internal.zzdvg("HMACSHA512", v2_1, v5_6);
                        break;
                    default:
                        throw new java.security.GeneralSecurityException("unknown hash");
                }
                return ((com.google.android.gms.internal.zzdqa) v0_11);
            }
        }
    }

Method com.scottyab.aescrypt.AESCrypt.generateKey() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private static javax.crypto.spec.SecretKeySpec generateKey(String p3)
    {
        javax.crypto.spec.SecretKeySpec v0_4 = java.security.MessageDigest.getInstance("SHA-256");
        byte[] v3_2 = p3.getBytes("UTF-8");
        v0_4.update(v3_2, 0, v3_2.length);
        byte[] v3_1 = v0_4.digest();
        com.scottyab.aescrypt.AESCrypt.log("SHA-256 key ", v3_1);
        return new javax.crypto.spec.SecretKeySpec(v3_1, "AES");
    }

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


    public static byte[] zza(String p4, byte[] p5, byte[] p6, byte[] p7, int p8)
    {
        javax.crypto.Mac v0_2 = ((javax.crypto.Mac) com.google.android.gms.internal.zzduu.zzlzq.zzos(p4));
        if (p8 > (v0_2.getMacLength() * 255)) {
            throw new java.security.GeneralSecurityException("size too large");
        } else {
            if ((p6 != null) && (p6.length != 0)) {
                v0_2.init(new javax.crypto.spec.SecretKeySpec(p6, p4));
            } else {
                int v1_4 = new byte[v0_2.getMacLength()];
                v0_2.init(new javax.crypto.spec.SecretKeySpec(v1_4, p4));
            }
            byte[] v6_3 = new byte[p8];
            v0_2.init(new javax.crypto.spec.SecretKeySpec(v0_2.doFinal(p5), p4));
            byte[] v5_2 = new byte[0];
            int v1_7 = 1;
            int v2 = 0;
            while(true) {
                v0_2.update(v5_2);
                v0_2.update(p7);
                v0_2.update(((byte) v1_7));
                v5_2 = v0_2.doFinal();
                if ((v5_2.length + v2) >= p8) {
                    break;
                }
                System.arraycopy(v5_2, 0, v6_3, v2, v5_2.length);
                v2 += v5_2.length;
                v1_7++;
            }
            System.arraycopy(v5_2, 0, v6_3, v2, (p8 - v2));
            return v6_3;
        }
    }

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


    public final String zzc(byte[] p5, byte[] p6)
    {
        if (p5.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
            } catch (String v5_11) {
                throw new com.google.android.gms.internal.zzcy(this, v5_11);
            } catch (String v5_10) {
                throw new com.google.android.gms.internal.zzcy(this, v5_10);
            } catch (String v5_9) {
                throw new com.google.android.gms.internal.zzcy(this, v5_9);
            } catch (String v5_8) {
                throw new com.google.android.gms.internal.zzcy(this, v5_8);
            } catch (String v5_7) {
                throw new com.google.android.gms.internal.zzcy(this, v5_7);
            }
            com.google.android.gms.internal.zzcx.getCipher().init(1, new javax.crypto.spec.SecretKeySpec(p5, "AES"), 0);
            int v6_1 = com.google.android.gms.internal.zzcx.getCipher().doFinal(p6);
            java.nio.ByteBuffer v0_3 = com.google.android.gms.internal.zzcx.getCipher().getIV();
            String v5_2 = (v6_1.length + v0_3.length);
            java.nio.ByteBuffer v1_3 = java.nio.ByteBuffer.allocate(v5_2);
            v1_3.put(v0_3).put(v6_1);
            v1_3.flip();
            String v5_4 = new byte[v5_2];
            v1_3.get(v5_4);
            return com.google.android.gms.internal.zzbu.zza(v5_4, 0);
        }
    }

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


    public final byte[] zzb(byte[] p6, String p7)
    {
        if (p6.length != 16) {
            throw new com.google.android.gms.internal.zzcy(this);
        } else {
            try {
                Throwable v7_20 = com.google.android.gms.internal.zzbu.zza(p7, 0);
            } catch (com.google.android.gms.internal.zzcy v6_11) {
                throw new com.google.android.gms.internal.zzcy(this, v6_11);
            } catch (com.google.android.gms.internal.zzcy v6_10) {
                throw new com.google.android.gms.internal.zzcy(this, v6_10);
            } catch (com.google.android.gms.internal.zzcy v6_9) {
                throw new com.google.android.gms.internal.zzcy(this, v6_9);
            } catch (com.google.android.gms.internal.zzcy v6_8) {
                throw new com.google.android.gms.internal.zzcy(this, v6_8);
            } catch (com.google.android.gms.internal.zzcy v6_7) {
                throw new com.google.android.gms.internal.zzcy(this, v6_7);
            } catch (com.google.android.gms.internal.zzcy v6_6) {
                throw new com.google.android.gms.internal.zzcy(this, v6_6);
            } catch (com.google.android.gms.internal.zzcy v6_5) {
                throw new com.google.android.gms.internal.zzcy(this, v6_5);
            }
            if (v7_20.length <= 16) {
                throw new com.google.android.gms.internal.zzcy(this);
            } else {
                javax.crypto.Cipher v0_2 = java.nio.ByteBuffer.allocate(v7_20.length);
                v0_2.put(v7_20);
                v0_2.flip();
                byte[] v2 = new byte[16];
                Throwable v7_3 = new byte[(v7_20.length - 16)];
                v0_2.get(v2);
                v0_2.get(v7_3);
                com.google.android.gms.internal.zzcx.getCipher().init(2, new javax.crypto.spec.SecretKeySpec(p6, "AES"), new javax.crypto.spec.IvParameterSpec(v2));
                return com.google.android.gms.internal.zzcx.getCipher().doFinal(v7_3);
            }
        }
    }

Method okio.HashingSink.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private HashingSink(okio.Sink p2, okio.ByteString p3, String p4)
    {
        super(p2);
        try {
            super.mac = javax.crypto.Mac.getInstance(p4);
            super.mac.init(new javax.crypto.spec.SecretKeySpec(p3.toByteArray(), p4));
            super.messageDigest = 0;
            return;
        } catch (java.security.NoSuchAlgorithmException) {
            throw new AssertionError();
        } catch (java.security.InvalidKeyException v2_2) {
            throw new IllegalArgumentException(v2_2);
        }
    }

Method okio.Buffer.hmac() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private okio.ByteString hmac(String p5, okio.ByteString p6)
    {
        try {
            javax.crypto.Mac v0 = javax.crypto.Mac.getInstance(p5);
            v0.init(new javax.crypto.spec.SecretKeySpec(p6.toByteArray(), p5));
        } catch (java.security.NoSuchAlgorithmException) {
            throw new AssertionError();
        } catch (okio.Segment v5_5) {
            throw new IllegalArgumentException(v5_5);
        }
        if (this.head != null) {
            v0.update(this.head.data, this.head.pos, (this.head.limit - this.head.pos));
            okio.Segment v5_2 = this.head;
            while(true) {
                v5_2 = v5_2.next;
                if (v5_2 == this.head) {
                    break;
                }
                v0.update(v5_2.data, v5_2.pos, (v5_2.limit - v5_2.pos));
            }
        }
        return okio.ByteString.of(v0.doFinal());
    }

Method okio.ByteString.hmac() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private okio.ByteString hmac(String p3, okio.ByteString p4)
    {
        try {
            javax.crypto.Mac v0 = javax.crypto.Mac.getInstance(p3);
            v0.init(new javax.crypto.spec.SecretKeySpec(p4.toByteArray(), p3));
            return okio.ByteString.of(v0.doFinal(this.data));
        } catch (java.security.InvalidKeyException v3_3) {
            throw new AssertionError(v3_3);
        } catch (java.security.InvalidKeyException v3_2) {
            throw new IllegalArgumentException(v3_2);
        }
    }