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.nimbusds.jose.crypto.AESCBC.createAESCBCCipher() calling method javax.crypto.spec.IvParameterSpec.<init>()


    private static javax.crypto.Cipher createAESCBCCipher(javax.crypto.SecretKey p2, boolean p3, byte[] p4, java.security.Provider p5)
    {
        try {
            javax.crypto.Cipher v5_1 = com.nimbusds.jose.crypto.CipherHelper.getInstance("AES/CBC/PKCS5Padding", p5);
            javax.crypto.spec.SecretKeySpec v0_2 = new javax.crypto.spec.SecretKeySpec(p2.getEncoded(), "AES");
            Exception v2_4 = new javax.crypto.spec.IvParameterSpec(p4);
        } catch (Exception v2_1) {
            throw new com.nimbusds.jose.JOSEException(v2_1.getMessage(), v2_1);
        }
        if (p3 == 0) {
            v5_1.init(2, v0_2, v2_4);
        } else {
            v5_1.init(1, v0_2, v2_4);
        }
        return v5_1;
    }

Method com.nimbusds.jose.jwk.RSAKey.load() calling method java.security.Key.getAlgorithm()


    public static com.nimbusds.jose.jwk.RSAKey load(java.security.KeyStore p2, String p3, char[] p4)
    {
        String v0_0 = p2.getCertificate(p3);
        if ((v0_0 != null) && ((v0_0 instanceof java.security.cert.X509Certificate))) {
            String v0_7 = ((java.security.cert.X509Certificate) v0_0);
            if (!(v0_7.getPublicKey() instanceof java.security.interfaces.RSAPublicKey)) {
                throw new com.nimbusds.jose.JOSEException("Couldn\'t load RSA JWK: The key algorithm is not RSA");
            } else {
                String v0_4 = new com.nimbusds.jose.jwk.RSAKey$Builder(com.nimbusds.jose.jwk.RSAKey.parse(v0_7)).keyID(p3).keyStore(p2).build();
                try {
                    com.nimbusds.jose.jwk.RSAKey v2_3 = p2.getKey(p3, p4);
                } catch (com.nimbusds.jose.jwk.RSAKey v2_4) {
                    String v4_2 = new StringBuilder("Couldn\'t retrieve private RSA key (bad pin?): ");
                    v4_2.append(v2_4.getMessage());
                    throw new com.nimbusds.jose.JOSEException(v4_2.toString(), v2_4);
                } catch (com.nimbusds.jose.jwk.RSAKey v2_4) {
                }
                if (!(v2_3 instanceof java.security.interfaces.RSAPrivateKey)) {
                    if ((!(v2_3 instanceof java.security.PrivateKey)) || (!"RSA".equalsIgnoreCase(v2_3.getAlgorithm()))) {
                        return v0_4;
                    } else {
                        return new com.nimbusds.jose.jwk.RSAKey$Builder(v0_4).privateKey(((java.security.PrivateKey) v2_3)).build();
                    }
                } else {
                    return new com.nimbusds.jose.jwk.RSAKey$Builder(v0_4).privateKey(((java.security.interfaces.RSAPrivateKey) v2_3)).build();
                }
            }
        } else {
            return 0;
        }
    }

Method com.nimbusds.jose.jwk.ECKey.load() calling method java.security.Key.getAlgorithm()


    public static com.nimbusds.jose.jwk.ECKey load(java.security.KeyStore p2, String p3, char[] p4)
    {
        String v0_0 = p2.getCertificate(p3);
        if ((v0_0 != null) && ((v0_0 instanceof java.security.cert.X509Certificate))) {
            String v0_7 = ((java.security.cert.X509Certificate) v0_0);
            if (!(v0_7.getPublicKey() instanceof java.security.interfaces.ECPublicKey)) {
                throw new com.nimbusds.jose.JOSEException("Couldn\'t load EC JWK: The key algorithm is not EC");
            } else {
                String v0_4 = new com.nimbusds.jose.jwk.ECKey$Builder(com.nimbusds.jose.jwk.ECKey.parse(v0_7)).keyID(p3).keyStore(p2).build();
                try {
                    com.nimbusds.jose.jwk.ECKey v2_3 = p2.getKey(p3, p4);
                } catch (com.nimbusds.jose.jwk.ECKey v2_4) {
                    String v4_2 = new StringBuilder("Couldn\'t retrieve private EC key (bad pin?): ");
                    v4_2.append(v2_4.getMessage());
                    throw new com.nimbusds.jose.JOSEException(v4_2.toString(), v2_4);
                } catch (com.nimbusds.jose.jwk.ECKey v2_4) {
                }
                if (!(v2_3 instanceof java.security.interfaces.ECPrivateKey)) {
                    if ((!(v2_3 instanceof java.security.PrivateKey)) || (!"EC".equalsIgnoreCase(v2_3.getAlgorithm()))) {
                        return v0_4;
                    } else {
                        return new com.nimbusds.jose.jwk.ECKey$Builder(v0_4).privateKey(((java.security.PrivateKey) v2_3)).build();
                    }
                } else {
                    return new com.nimbusds.jose.jwk.ECKey$Builder(v0_4).privateKey(((java.security.interfaces.ECPrivateKey) v2_3)).build();
                }
            }
        } else {
            return 0;
        }
    }

Method com.google.common.hash.Hashing.hmacToString() calling method java.security.Key.getAlgorithm()


    private static String hmacToString(String p3, java.security.Key p4)
    {
        Object[] v1_1 = new Object[3];
        v1_1[0] = p3;
        v1_1[1] = p4.getAlgorithm();
        v1_1[2] = p4.getFormat();
        return String.format("Hashing.%s(Key[algorithm=%s, format=%s])", v1_1);
    }

Method com.nimbusds.jose.jca.JCASupport.isSupported() calling method javax.crypto.Cipher.getInstance()


    public static boolean isSupported(com.nimbusds.jose.JWEAlgorithm p3, java.security.Provider p4)
    {
        if (!com.nimbusds.jose.JWEAlgorithm$Family.RSA.contains(p3)) {
            if (!com.nimbusds.jose.JWEAlgorithm$Family.AES_KW.contains(p3)) {
                if (!com.nimbusds.jose.JWEAlgorithm$Family.ECDH_ES.contains(p3)) {
                    if (!com.nimbusds.jose.JWEAlgorithm$Family.AES_GCM_KW.contains(p3)) {
                        if (!com.nimbusds.jose.JWEAlgorithm$Family.PBES2.contains(p3)) {
                            if (!com.nimbusds.jose.JWEAlgorithm.DIR.equals(p3)) {
                                return 0;
                            } else {
                                return 1;
                            }
                        } else {
                            String v3_3;
                            if (!p3.equals(com.nimbusds.jose.JWEAlgorithm.PBES2_HS256_A128KW)) {
                                if (!p3.equals(com.nimbusds.jose.JWEAlgorithm.PBES2_HS384_A192KW)) {
                                    v3_3 = "HmacSHA512";
                                } else {
                                    v3_3 = "HmacSHA384";
                                }
                            } else {
                                v3_3 = "HmacSHA256";
                            }
                            if (p4.getService("KeyGenerator", v3_3) == null) {
                                return 0;
                            } else {
                                return 1;
                            }
                        }
                    } else {
                        try {
                            javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p4);
                            return 1;
                        } catch (java.security.NoSuchAlgorithmException) {
                            return 0;
                        } catch (javax.crypto.NoSuchPaddingException) {
                            return 0;
                        }
                    }
                } else {
                    if (p4.getService("KeyAgreement", "ECDH") == null) {
                        return 0;
                    } else {
                        return 1;
                    }
                }
            } else {
                if (p4.getService("Cipher", "AESWrap") == null) {
                    return 0;
                } else {
                    return 1;
                }
            }
        } else {
            String v3_11;
            if (!p3.equals(com.nimbusds.jose.JWEAlgorithm.RSA1_5)) {
                if (!p3.equals(com.nimbusds.jose.JWEAlgorithm.RSA_OAEP)) {
                    if (!p3.equals(com.nimbusds.jose.JWEAlgorithm.RSA_OAEP_256)) {
                        return 0;
                    } else {
                        v3_11 = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding";
                    }
                } else {
                    v3_11 = "RSA/ECB/OAEPWithSHA-1AndMGF1Padding";
                }
            } else {
                v3_11 = "RSA/ECB/PKCS1Padding";
            }
            try {
                javax.crypto.Cipher.getInstance(v3_11, p4);
                return 1;
            } catch (java.security.NoSuchAlgorithmException) {
                return 0;
            } catch (javax.crypto.NoSuchPaddingException) {
                return 0;
            }
        }
    }

Method com.nimbusds.jose.jca.JCASupport.isSupported() calling method javax.crypto.Cipher.getInstance()


    public static boolean isSupported(com.nimbusds.jose.EncryptionMethod p3, java.security.Provider p4)
    {
        if (!com.nimbusds.jose.EncryptionMethod$Family.AES_CBC_HMAC_SHA.contains(p3)) {
            if (!com.nimbusds.jose.EncryptionMethod$Family.AES_GCM.contains(p3)) {
                return 0;
            } else {
                try {
                    javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p4);
                    return 1;
                } catch (java.security.NoSuchAlgorithmException) {
                    return 0;
                } catch (javax.crypto.NoSuchPaddingException) {
                    return 0;
                }
            }
        } else {
            try {
                String v3_3;
                javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding", p4);
            } catch (java.security.NoSuchAlgorithmException) {
                return 0;
            } catch (javax.crypto.NoSuchPaddingException) {
                return 0;
            }
            if (!p3.equals(com.nimbusds.jose.EncryptionMethod.A128CBC_HS256)) {
                if (!p3.equals(com.nimbusds.jose.EncryptionMethod.A192CBC_HS384)) {
                    v3_3 = "HmacSHA512";
                } else {
                    v3_3 = "HmacSHA384";
                }
            } else {
                v3_3 = "HmacSHA256";
            }
            if (p4.getService("KeyGenerator", v3_3) == null) {
                return 0;
            } else {
                return 1;
            }
        }
    }

Method com.nimbusds.jose.crypto.CipherHelper.getInstance() calling method javax.crypto.Cipher.getInstance()


    public static javax.crypto.Cipher getInstance(String p0, java.security.Provider p1)
    {
        if (p1 != null) {
            return javax.crypto.Cipher.getInstance(p0, p1);
        } else {
            return javax.crypto.Cipher.getInstance(p0);
        }
    }

Method com.nimbusds.jose.crypto.AESKW.wrapCEK() calling method javax.crypto.Cipher.getInstance()


    public static byte[] wrapCEK(javax.crypto.SecretKey p1, javax.crypto.SecretKey p2, java.security.Provider p3)
    {
        try {
            String v3_5;
            if (p3 == null) {
                v3_5 = javax.crypto.Cipher.getInstance("AESWrap");
            } else {
                v3_5 = javax.crypto.Cipher.getInstance("AESWrap", p3);
            }
        } catch (byte[] v1_1) {
            String v3_3 = new StringBuilder("Couldn\'t wrap AES key: ");
            v3_3.append(v1_1.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_3.toString(), v1_1);
        } catch (byte[] v1_1) {
        } catch (byte[] v1_1) {
        } catch (byte[] v1_1) {
        }
        v3_5.init(3, p2);
        return v3_5.wrap(p1);
    }

Method com.nimbusds.jose.crypto.AESKW.unwrapCEK() calling method javax.crypto.Cipher.getInstance()


    public static javax.crypto.SecretKey unwrapCEK(javax.crypto.SecretKey p1, byte[] p2, java.security.Provider p3)
    {
        try {
            String v3_5;
            if (p3 == null) {
                v3_5 = javax.crypto.Cipher.getInstance("AESWrap");
            } else {
                v3_5 = javax.crypto.Cipher.getInstance("AESWrap", p3);
            }
        } catch (javax.crypto.SecretKey v1_4) {
            String v3_3 = new StringBuilder("Couldn\'t unwrap AES key: ");
            v3_3.append(v1_4.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_3.toString(), v1_4);
        } catch (javax.crypto.SecretKey v1_4) {
        } catch (javax.crypto.SecretKey v1_4) {
        }
        v3_5.init(4, p1);
        return ((javax.crypto.SecretKey) v3_5.unwrap(p2, "AES", 3));
    }

Method com.nimbusds.jose.crypto.AESGCM.encrypt() calling method javax.crypto.Cipher.getInstance()


    public static com.nimbusds.jose.crypto.AuthenticatedCipherText encrypt(javax.crypto.SecretKey p4, com.nimbusds.jose.util.Container p5, byte[] p6, byte[] p7, java.security.Provider p8)
    {
        javax.crypto.Cipher v8_2;
        int v0_1 = ((byte[]) p5.get());
        try {
            if (p8 == null) {
                v8_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding");
            } else {
                v8_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p8);
            }
        } catch (javax.crypto.BadPaddingException v4_2) {
            String v6_2 = new StringBuilder("Couldn\'t create AES/GCM/NoPadding cipher: ");
            v6_2.append(v4_2.getMessage());
            throw new com.nimbusds.jose.JOSEException(v6_2.toString(), v4_2);
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (NoClassDefFoundError) {
            return com.nimbusds.jose.crypto.LegacyAESGCM.encrypt(p4, v0_1, p6, p7);
        }
        v8_2.init(1, p4, new javax.crypto.spec.GCMParameterSpec(128, v0_1));
        v8_2.updateAAD(p7);
        try {
            javax.crypto.BadPaddingException v4_3 = v8_2.doFinal(p6);
            String v6_5 = (v4_3.length - com.nimbusds.jose.util.ByteUtils.byteLength(128));
            String v7_5 = com.nimbusds.jose.util.ByteUtils.subArray(v4_3, 0, v6_5);
            javax.crypto.BadPaddingException v4_4 = com.nimbusds.jose.util.ByteUtils.subArray(v4_3, v6_5, com.nimbusds.jose.util.ByteUtils.byteLength(128));
            p5.set(com.nimbusds.jose.crypto.AESGCM.actualIVOf(v8_2));
            return new com.nimbusds.jose.crypto.AuthenticatedCipherText(v7_5, v4_4);
        } catch (javax.crypto.BadPaddingException v4_5) {
            String v6_8 = new StringBuilder("Couldn\'t encrypt with AES/GCM/NoPadding: ");
            v6_8.append(v4_5.getMessage());
            throw new com.nimbusds.jose.JOSEException(v6_8.toString(), v4_5);
        } catch (javax.crypto.BadPaddingException v4_5) {
        }
    }

Method com.nimbusds.jose.crypto.AESGCM.decrypt() calling method javax.crypto.Cipher.getInstance()


    public static byte[] decrypt(javax.crypto.SecretKey p2, byte[] p3, byte[] p4, byte[] p5, byte[] p6, java.security.Provider p7)
    {
        try {
            javax.crypto.Cipher v7_2;
            if (p7 == null) {
                v7_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding");
            } else {
                v7_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p7);
            }
        } catch (javax.crypto.BadPaddingException v2_1) {
            String v4_2 = new StringBuilder("Couldn\'t create AES/GCM/NoPadding cipher: ");
            v4_2.append(v2_1.getMessage());
            throw new com.nimbusds.jose.JOSEException(v4_2.toString(), v2_1);
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (NoClassDefFoundError) {
            return com.nimbusds.jose.crypto.LegacyAESGCM.decrypt(p2, p3, p4, p5, p6);
        }
        v7_2.init(2, p2, new javax.crypto.spec.GCMParameterSpec(128, p3));
        v7_2.updateAAD(p5);
        try {
            javax.crypto.BadPaddingException v2_2 = new byte[][2];
            v2_2[0] = p4;
            v2_2[1] = p6;
            return v7_2.doFinal(com.nimbusds.jose.util.ByteUtils.concat(v2_2));
        } catch (javax.crypto.BadPaddingException v2_5) {
            String v4_5 = new StringBuilder("AES/GCM/NoPadding decryption failed: ");
            v4_5.append(v2_5.getMessage());
            throw new com.nimbusds.jose.JOSEException(v4_5.toString(), v2_5);
        } catch (javax.crypto.BadPaddingException v2_5) {
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP_256.encryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static byte[] encryptCEK(java.security.interfaces.RSAPublicKey p6, javax.crypto.SecretKey p7, java.security.Provider p8)
    {
        try {
            java.security.AlgorithmParameters v0_1 = com.nimbusds.jose.crypto.AlgorithmParametersHelper.getInstance("OAEP", p8);
            v0_1.init(new javax.crypto.spec.OAEPParameterSpec("SHA-256", "MGF1", java.security.spec.MGF1ParameterSpec.SHA256, javax.crypto.spec.PSource$PSpecified.DEFAULT));
            String v8_1 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", p8);
            v8_1.init(1, p6, v0_1);
            return v8_1.doFinal(p7.getEncoded());
        } catch (Exception v6_4) {
            throw new com.nimbusds.jose.JOSEException("RSA block size exception: The RSA key is too short, try a longer one", v6_4);
        } catch (Exception v6_3) {
            throw new com.nimbusds.jose.JOSEException(v6_3.getMessage(), v6_3);
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP_256.decryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p6, byte[] p7, java.security.Provider p8)
    {
        try {
            java.security.AlgorithmParameters v0_1 = com.nimbusds.jose.crypto.AlgorithmParametersHelper.getInstance("OAEP", p8);
            v0_1.init(new javax.crypto.spec.OAEPParameterSpec("SHA-256", "MGF1", java.security.spec.MGF1ParameterSpec.SHA256, javax.crypto.spec.PSource$PSpecified.DEFAULT));
            String v8_1 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", p8);
            v8_1.init(2, p6, v0_1);
            return new javax.crypto.spec.SecretKeySpec(v8_1.doFinal(p7), "AES");
        } catch (Exception v6_3) {
            throw new com.nimbusds.jose.JOSEException(v6_3.getMessage(), v6_3);
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP.encryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static byte[] encryptCEK(java.security.interfaces.RSAPublicKey p2, javax.crypto.SecretKey p3, java.security.Provider p4)
    {
        try {
            String v4_2 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding", p4);
            v4_2.init(1, p2, new java.security.SecureRandom());
            return v4_2.doFinal(p3.getEncoded());
        } catch (Exception v2_3) {
            throw new com.nimbusds.jose.JOSEException("RSA block size exception: The RSA key is too short, try a longer one", v2_3);
        } catch (Exception v2_2) {
            throw new com.nimbusds.jose.JOSEException(v2_2.getMessage(), v2_2);
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP.decryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p1, byte[] p2, java.security.Provider p3)
    {
        try {
            String v3_2 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", p3);
            v3_2.init(2, p1);
            return new javax.crypto.spec.SecretKeySpec(v3_2.doFinal(p2), "AES");
        } catch (Exception v1_1) {
            throw new com.nimbusds.jose.JOSEException(v1_1.getMessage(), v1_1);
        }
    }

Method com.nimbusds.jose.crypto.RSA1_5.encryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static byte[] encryptCEK(java.security.interfaces.RSAPublicKey p1, javax.crypto.SecretKey p2, java.security.Provider p3)
    {
        try {
            String v3_4 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/PKCS1Padding", p3);
            v3_4.init(1, p1);
            return v3_4.doFinal(p2.getEncoded());
        } catch (Exception v1_2) {
            throw new com.nimbusds.jose.JOSEException("RSA block size exception: The RSA key is too short, try a longer one", v1_2);
        } catch (Exception v1_1) {
            String v3_2 = new StringBuilder("Couldn\'t encrypt Content Encryption Key (CEK): ");
            v3_2.append(v1_1.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_2.toString(), v1_1);
        }
    }

Method com.nimbusds.jose.crypto.RSA1_5.decryptCEK() calling method javax.crypto.Cipher.doFinal()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p1, byte[] p2, int p3, java.security.Provider p4)
    {
        try {
            String v4_2 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/PKCS1Padding", p4);
            v4_2.init(2, p1);
            int v1_3 = v4_2.doFinal(p2);
        } catch (int v1_2) {
            String v3_3 = new StringBuilder("Couldn\'t decrypt Content Encryption Key (CEK): ");
            v3_3.append(v1_2.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_3.toString(), v1_2);
        }
        if (com.nimbusds.jose.util.ByteUtils.safeBitLength(v1_3) == p3) {
            return new javax.crypto.spec.SecretKeySpec(v1_3, "AES");
        } else {
            return 0;
        }
    }

Method com.nimbusds.jose.crypto.AESGCM.encrypt() calling method javax.crypto.Cipher.doFinal()


    public static com.nimbusds.jose.crypto.AuthenticatedCipherText encrypt(javax.crypto.SecretKey p4, com.nimbusds.jose.util.Container p5, byte[] p6, byte[] p7, java.security.Provider p8)
    {
        javax.crypto.Cipher v8_2;
        int v0_1 = ((byte[]) p5.get());
        try {
            if (p8 == null) {
                v8_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding");
            } else {
                v8_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p8);
            }
        } catch (javax.crypto.BadPaddingException v4_2) {
            String v6_2 = new StringBuilder("Couldn\'t create AES/GCM/NoPadding cipher: ");
            v6_2.append(v4_2.getMessage());
            throw new com.nimbusds.jose.JOSEException(v6_2.toString(), v4_2);
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (javax.crypto.BadPaddingException v4_2) {
        } catch (NoClassDefFoundError) {
            return com.nimbusds.jose.crypto.LegacyAESGCM.encrypt(p4, v0_1, p6, p7);
        }
        v8_2.init(1, p4, new javax.crypto.spec.GCMParameterSpec(128, v0_1));
        v8_2.updateAAD(p7);
        try {
            javax.crypto.BadPaddingException v4_3 = v8_2.doFinal(p6);
            String v6_5 = (v4_3.length - com.nimbusds.jose.util.ByteUtils.byteLength(128));
            String v7_5 = com.nimbusds.jose.util.ByteUtils.subArray(v4_3, 0, v6_5);
            javax.crypto.BadPaddingException v4_4 = com.nimbusds.jose.util.ByteUtils.subArray(v4_3, v6_5, com.nimbusds.jose.util.ByteUtils.byteLength(128));
            p5.set(com.nimbusds.jose.crypto.AESGCM.actualIVOf(v8_2));
            return new com.nimbusds.jose.crypto.AuthenticatedCipherText(v7_5, v4_4);
        } catch (javax.crypto.BadPaddingException v4_5) {
            String v6_8 = new StringBuilder("Couldn\'t encrypt with AES/GCM/NoPadding: ");
            v6_8.append(v4_5.getMessage());
            throw new com.nimbusds.jose.JOSEException(v6_8.toString(), v4_5);
        } catch (javax.crypto.BadPaddingException v4_5) {
        }
    }

Method com.nimbusds.jose.crypto.AESGCM.decrypt() calling method javax.crypto.Cipher.doFinal()


    public static byte[] decrypt(javax.crypto.SecretKey p2, byte[] p3, byte[] p4, byte[] p5, byte[] p6, java.security.Provider p7)
    {
        try {
            javax.crypto.Cipher v7_2;
            if (p7 == null) {
                v7_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding");
            } else {
                v7_2 = javax.crypto.Cipher.getInstance("AES/GCM/NoPadding", p7);
            }
        } catch (javax.crypto.BadPaddingException v2_1) {
            String v4_2 = new StringBuilder("Couldn\'t create AES/GCM/NoPadding cipher: ");
            v4_2.append(v2_1.getMessage());
            throw new com.nimbusds.jose.JOSEException(v4_2.toString(), v2_1);
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (javax.crypto.BadPaddingException v2_1) {
        } catch (NoClassDefFoundError) {
            return com.nimbusds.jose.crypto.LegacyAESGCM.decrypt(p2, p3, p4, p5, p6);
        }
        v7_2.init(2, p2, new javax.crypto.spec.GCMParameterSpec(128, p3));
        v7_2.updateAAD(p5);
        try {
            javax.crypto.BadPaddingException v2_2 = new byte[][2];
            v2_2[0] = p4;
            v2_2[1] = p6;
            return v7_2.doFinal(com.nimbusds.jose.util.ByteUtils.concat(v2_2));
        } catch (javax.crypto.BadPaddingException v2_5) {
            String v4_5 = new StringBuilder("AES/GCM/NoPadding decryption failed: ");
            v4_5.append(v2_5.getMessage());
            throw new com.nimbusds.jose.JOSEException(v4_5.toString(), v2_5);
        } catch (javax.crypto.BadPaddingException v2_5) {
        }
    }

Method com.nimbusds.jose.crypto.AESCBC.encrypt() calling method javax.crypto.Cipher.doFinal()


    public static byte[] encrypt(javax.crypto.SecretKey p1, byte[] p2, byte[] p3, java.security.Provider p4)
    {
        try {
            return com.nimbusds.jose.crypto.AESCBC.createAESCBCCipher(p1, 1, p2, p4).doFinal(p3);
        } catch (Exception v1_3) {
            throw new com.nimbusds.jose.JOSEException(v1_3.getMessage(), v1_3);
        }
    }

Method com.nimbusds.jose.crypto.AESCBC.decrypt() calling method javax.crypto.Cipher.doFinal()


    public static byte[] decrypt(javax.crypto.SecretKey p1, byte[] p2, byte[] p3, java.security.Provider p4)
    {
        try {
            return com.nimbusds.jose.crypto.AESCBC.createAESCBCCipher(p1, 0, p2, p4).doFinal(p3);
        } catch (Exception v1_3) {
            throw new com.nimbusds.jose.JOSEException(v1_3.getMessage(), v1_3);
        }
    }

Method com.nimbusds.jose.crypto.DirectEncrypter.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


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

Method com.nimbusds.jose.crypto.DirectDecrypter.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


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

Method com.nimbusds.jose.crypto.AESEncrypter.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


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

Method com.nimbusds.jose.crypto.AESDecrypter.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


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

Method com.nimbusds.jose.crypto.MACProvider.getSecretKey() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public javax.crypto.SecretKey getSecretKey()
    {
        return new javax.crypto.spec.SecretKeySpec(this.secret, "MAC");
    }

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 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 com.nimbusds.jose.jwk.OctetSequenceKey.toSecretKey() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public javax.crypto.SecretKey toSecretKey(String p3)
    {
        return new javax.crypto.spec.SecretKeySpec(this.toByteArray(), p3);
    }

Method com.nimbusds.jose.crypto.ConcatKDF.deriveKey() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public javax.crypto.SecretKey deriveKey(javax.crypto.SecretKey p5, int p6, byte[] p7)
    {
        String v0_1 = new java.io.ByteArrayOutputStream();
        java.security.MessageDigest v1 = this.getMessageDigest();
        int v2 = 1;
        while (v2 <= com.nimbusds.jose.crypto.ConcatKDF.computeDigestCycles(com.nimbusds.jose.util.ByteUtils.safeBitLength(v1.getDigestLength()), p6)) {
            v1.update(com.nimbusds.jose.util.IntegerUtils.toBytes(v2));
            v1.update(p5.getEncoded());
            if (p7 != null) {
                v1.update(p7);
            }
            try {
                v0_1.write(v1.digest());
                v2++;
            } catch (java.io.IOException v5_1) {
                String v7_2 = new StringBuilder("Couldn\'t write derived key: ");
                v7_2.append(v5_1.getMessage());
                throw new com.nimbusds.jose.JOSEException(v7_2.toString(), v5_1);
            }
        }
        java.io.IOException v5_2 = v0_1.toByteArray();
        com.nimbusds.jose.JOSEException v6_3 = com.nimbusds.jose.util.ByteUtils.byteLength(p6);
        if (v5_2.length != v6_3) {
            return new javax.crypto.spec.SecretKeySpec(com.nimbusds.jose.util.ByteUtils.subArray(v5_2, 0, v6_3), "AES");
        } else {
            return new javax.crypto.spec.SecretKeySpec(v5_2, "AES");
        }
    }

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);
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP_256.decryptCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p6, byte[] p7, java.security.Provider p8)
    {
        try {
            java.security.AlgorithmParameters v0_1 = com.nimbusds.jose.crypto.AlgorithmParametersHelper.getInstance("OAEP", p8);
            v0_1.init(new javax.crypto.spec.OAEPParameterSpec("SHA-256", "MGF1", java.security.spec.MGF1ParameterSpec.SHA256, javax.crypto.spec.PSource$PSpecified.DEFAULT));
            String v8_1 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", p8);
            v8_1.init(2, p6, v0_1);
            return new javax.crypto.spec.SecretKeySpec(v8_1.doFinal(p7), "AES");
        } catch (Exception v6_3) {
            throw new com.nimbusds.jose.JOSEException(v6_3.getMessage(), v6_3);
        }
    }

Method com.nimbusds.jose.crypto.RSA_OAEP.decryptCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p1, byte[] p2, java.security.Provider p3)
    {
        try {
            String v3_2 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", p3);
            v3_2.init(2, p1);
            return new javax.crypto.spec.SecretKeySpec(v3_2.doFinal(p2), "AES");
        } catch (Exception v1_1) {
            throw new com.nimbusds.jose.JOSEException(v1_1.getMessage(), v1_1);
        }
    }

Method com.nimbusds.jose.crypto.RSA1_5.decryptCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey decryptCEK(java.security.PrivateKey p1, byte[] p2, int p3, java.security.Provider p4)
    {
        try {
            String v4_2 = com.nimbusds.jose.crypto.CipherHelper.getInstance("RSA/ECB/PKCS1Padding", p4);
            v4_2.init(2, p1);
            int v1_3 = v4_2.doFinal(p2);
        } catch (int v1_2) {
            String v3_3 = new StringBuilder("Couldn\'t decrypt Content Encryption Key (CEK): ");
            v3_3.append(v1_2.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_3.toString(), v1_2);
        }
        if (com.nimbusds.jose.util.ByteUtils.safeBitLength(v1_3) == p3) {
            return new javax.crypto.spec.SecretKeySpec(v1_3, "AES");
        } else {
            return 0;
        }
    }

Method com.nimbusds.jose.crypto.PBKDF2.deriveKey() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey deriveKey(byte[] p7, byte[] p8, int p9, com.nimbusds.jose.crypto.PRFParams p10)
    {
        javax.crypto.spec.SecretKeySpec v7_6 = com.nimbusds.jose.crypto.HMAC.getInitMac(new javax.crypto.spec.SecretKeySpec(p7, p10.getMACAlgorithm()), p10.getMacProvider());
        int v0_4 = v7_6.getMacLength();
        if (((long) p10.getDerivedKeyByteLength()) > 2.1219957905e-314) {
            byte[] v8_2 = new StringBuilder("derived key too long ");
            v8_2.append(p10.getDerivedKeyByteLength());
            throw new com.nimbusds.jose.JOSEException(v8_2.toString());
        } else {
            int v1_7 = ((int) Math.ceil((((double) p10.getDerivedKeyByteLength()) / ((double) v0_4))));
            int v2 = (v1_7 - 1);
            int v0_3 = (p10.getDerivedKeyByteLength() - (v0_4 * v2));
            java.io.ByteArrayOutputStream v3_3 = new java.io.ByteArrayOutputStream();
            int v10_2 = 0;
            while (v10_2 < v1_7) {
                int v5_1 = (v10_2 + 1);
                byte[] v6 = com.nimbusds.jose.crypto.PBKDF2.extractBlock(p8, p9, v5_1, v7_6);
                if (v10_2 == v2) {
                    v6 = com.nimbusds.jose.util.ByteUtils.subArray(v6, 0, v0_3);
                }
                v3_3.write(v6, 0, v6.length);
                v10_2 = v5_1;
            }
            return new javax.crypto.spec.SecretKeySpec(v3_3.toByteArray(), "AES");
        }
    }

Method com.nimbusds.jose.crypto.LegacyConcatKDF.generateCIK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey generateCIK(javax.crypto.SecretKey p2, com.nimbusds.jose.EncryptionMethod p3, byte[] p4, byte[] p5)
    {
        String v0_1 = new java.io.ByteArrayOutputStream();
        try {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ONE_BYTES);
            java.security.NoSuchAlgorithmException v2_2 = p2.getEncoded();
            v0_1.write(v2_2);
            java.security.NoSuchAlgorithmException v2_6 = (v2_2.length * 8);
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes(v2_6));
            v0_1.write(p3.toString().getBytes());
        } catch (java.security.NoSuchAlgorithmException v2_1) {
            throw new com.nimbusds.jose.JOSEException(v2_1.getMessage(), v2_1);
        }
        if (p4 == null) {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ZERO_BYTES);
        } else {
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes(p4.length));
            v0_1.write(p4);
        }
        if (p5 == null) {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ZERO_BYTES);
        } else {
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes(p5.length));
            v0_1.write(p5);
        }
        v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.INTEGRITY_BYTES);
        com.nimbusds.jose.JOSEException v3_12 = v0_1.toByteArray();
        try {
            String v4_3 = new StringBuilder("SHA-");
            v4_3.append(v2_6);
            com.nimbusds.jose.JOSEException v3_13 = java.security.MessageDigest.getInstance(v4_3.toString()).digest(v3_12);
            String v4_7 = new StringBuilder("HMACSHA");
            v4_7.append(v2_6);
            return new javax.crypto.spec.SecretKeySpec(v3_13, v4_7.toString());
        } catch (java.security.NoSuchAlgorithmException v2_4) {
            throw new com.nimbusds.jose.JOSEException(v2_4.getMessage(), v2_4);
        }
    }

Method com.nimbusds.jose.crypto.LegacyConcatKDF.generateCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey generateCEK(javax.crypto.SecretKey p2, com.nimbusds.jose.EncryptionMethod p3, byte[] p4, byte[] p5)
    {
        java.io.ByteArrayOutputStream v0_1 = new java.io.ByteArrayOutputStream();
        try {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ONE_BYTES);
            java.security.NoSuchAlgorithmException v2_3 = p2.getEncoded();
            v0_1.write(v2_3);
            java.security.NoSuchAlgorithmException v2_10 = (v2_3.length * 8);
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes((v2_10 / 2)));
            v0_1.write(p3.toString().getBytes());
        } catch (java.security.NoSuchAlgorithmException v2_1) {
            throw new com.nimbusds.jose.JOSEException(v2_1.getMessage(), v2_1);
        }
        if (p4 == null) {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ZERO_BYTES);
        } else {
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes(p4.length));
            v0_1.write(p4);
        }
        if (p5 == 0) {
            v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ZERO_BYTES);
        } else {
            v0_1.write(com.nimbusds.jose.util.IntegerUtils.toBytes(p5.length));
            v0_1.write(p5);
        }
        v0_1.write(com.nimbusds.jose.crypto.LegacyConcatKDF.ENCRYPTION_BYTES);
        com.nimbusds.jose.JOSEException v3_12 = v0_1.toByteArray();
        try {
            String v4_3 = new StringBuilder("SHA-");
            v4_3.append(v2_10);
            java.security.NoSuchAlgorithmException v2_5 = java.security.MessageDigest.getInstance(v4_3.toString()).digest(v3_12);
            com.nimbusds.jose.JOSEException v3_15 = new byte[(v2_5.length / 2)];
            System.arraycopy(v2_5, 0, v3_15, 0, v3_15.length);
            return new javax.crypto.spec.SecretKeySpec(v3_15, "AES");
        } catch (java.security.NoSuchAlgorithmException v2_8) {
            throw new com.nimbusds.jose.JOSEException(v2_8.getMessage(), v2_8);
        }
    }

Method com.nimbusds.jose.crypto.HMAC.compute() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static byte[] compute(String p1, byte[] p2, byte[] p3, java.security.Provider p4)
    {
        return com.nimbusds.jose.crypto.HMAC.compute(new javax.crypto.spec.SecretKeySpec(p2, p1), p3, p4);
    }

Method com.nimbusds.jose.crypto.ECDH.deriveSharedSecret() calling method javax.crypto.spec.SecretKeySpec.<init>()


    static javax.crypto.SecretKey deriveSharedSecret(java.security.interfaces.ECPublicKey p1, java.security.interfaces.ECPrivateKey p2, java.security.Provider p3)
    {
        try {
            String v3_5;
            if (p3 == null) {
                v3_5 = javax.crypto.KeyAgreement.getInstance("ECDH");
            } else {
                v3_5 = javax.crypto.KeyAgreement.getInstance("ECDH", p3);
            }
            try {
                v3_5.init(p2);
                v3_5.doPhase(p1, 1);
                return new javax.crypto.spec.SecretKeySpec(v3_5.generateSecret(), "AES");
            } catch (java.security.InvalidKeyException v1_3) {
                String v3_7 = new StringBuilder("Invalid key for ECDH key agreement: ");
                v3_7.append(v1_3.getMessage());
                throw new com.nimbusds.jose.JOSEException(v3_7.toString(), v1_3);
            }
        } catch (java.security.InvalidKeyException v1_4) {
            String v3_2 = new StringBuilder("Couldn\'t get an ECDH key agreement instance: ");
            v3_2.append(v1_4.getMessage());
            throw new com.nimbusds.jose.JOSEException(v3_2.toString(), v1_4);
        }
        v3_5.init(p2);
        v3_5.doPhase(p1, 1);
        return new javax.crypto.spec.SecretKeySpec(v3_5.generateSecret(), "AES");
    }

Method com.nimbusds.jose.crypto.ContentCryptoProvider.generateCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey generateCEK(com.nimbusds.jose.EncryptionMethod p1, java.security.SecureRandom p2)
    {
        if (!com.nimbusds.jose.crypto.ContentCryptoProvider.SUPPORTED_ENCRYPTION_METHODS.contains(p1)) {
            throw new com.nimbusds.jose.JOSEException(com.nimbusds.jose.crypto.AlgorithmSupportMessage.unsupportedEncryptionMethod(p1, com.nimbusds.jose.crypto.ContentCryptoProvider.SUPPORTED_ENCRYPTION_METHODS));
        } else {
            String v1_3 = new byte[com.nimbusds.jose.util.ByteUtils.byteLength(p1.cekBitLength())];
            p2.nextBytes(v1_3);
            return new javax.crypto.spec.SecretKeySpec(v1_3, "AES");
        }
    }

Method com.nimbusds.jose.crypto.CompositeKey.<init>() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public CompositeKey(javax.crypto.SecretKey p5)
    {
        this.inputKey = p5;
        com.nimbusds.jose.KeyLengthException v5_3 = p5.getEncoded();
        if (v5_3.length != 32) {
            if (v5_3.length != 48) {
                if (v5_3.length != 64) {
                    throw new com.nimbusds.jose.KeyLengthException("Unsupported AES/CBC/PKCS5Padding/HMAC-SHA2 key length, must be 256, 384 or 512 bits");
                } else {
                    this.macKey = new javax.crypto.spec.SecretKeySpec(v5_3, 0, 32, "HMACSHA512");
                    this.encKey = new javax.crypto.spec.SecretKeySpec(v5_3, 32, 32, "AES");
                    this.truncatedMacLength = 32;
                }
            } else {
                this.macKey = new javax.crypto.spec.SecretKeySpec(v5_3, 0, 24, "HMACSHA384");
                this.encKey = new javax.crypto.spec.SecretKeySpec(v5_3, 24, 24, "AES");
                this.truncatedMacLength = 24;
            }
        } else {
            this.macKey = new javax.crypto.spec.SecretKeySpec(v5_3, 0, 16, "HMACSHA256");
            this.encKey = new javax.crypto.spec.SecretKeySpec(v5_3, 16, 16, "AES");
            this.truncatedMacLength = 16;
        }
        return;
    }

Method com.nimbusds.jose.crypto.AESGCMKW.decryptCEK() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static javax.crypto.SecretKey decryptCEK(javax.crypto.SecretKey p6, byte[] p7, com.nimbusds.jose.crypto.AuthenticatedCipherText p8, int p9, java.security.Provider p10)
    {
        byte[] v3 = new byte[0];
        String v6_1 = com.nimbusds.jose.crypto.AESGCM.decrypt(p6, p7, p8.getCipherText(), v3, p8.getAuthenticationTag(), p10);
        if (com.nimbusds.jose.util.ByteUtils.safeBitLength(v6_1) != p9) {
            StringBuilder v8_2 = new StringBuilder("CEK key length mismatch: ");
            v8_2.append(com.nimbusds.jose.util.ByteUtils.safeBitLength(v6_1));
            v8_2.append(" != ");
            v8_2.append(p9);
            throw new com.nimbusds.jose.KeyLengthException(v8_2.toString());
        } else {
            return new javax.crypto.spec.SecretKeySpec(v6_1, "AES");
        }
    }

Method com.nimbusds.jose.crypto.AESCBC.createAESCBCCipher() calling method javax.crypto.spec.SecretKeySpec.<init>()


    private static javax.crypto.Cipher createAESCBCCipher(javax.crypto.SecretKey p2, boolean p3, byte[] p4, java.security.Provider p5)
    {
        try {
            javax.crypto.Cipher v5_1 = com.nimbusds.jose.crypto.CipherHelper.getInstance("AES/CBC/PKCS5Padding", p5);
            javax.crypto.spec.SecretKeySpec v0_2 = new javax.crypto.spec.SecretKeySpec(p2.getEncoded(), "AES");
            Exception v2_4 = new javax.crypto.spec.IvParameterSpec(p4);
        } catch (Exception v2_1) {
            throw new com.nimbusds.jose.JOSEException(v2_1.getMessage(), v2_1);
        }
        if (p3 == 0) {
            v5_1.init(2, v0_2, v2_4);
        } else {
            v5_1.init(1, v0_2, v2_4);
        }
        return v5_1;
    }

Method com.google.common.hash.Hashing.hmacSha512() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static com.google.common.hash.HashFunction hmacSha512(byte[] p2)
    {
        return com.google.common.hash.Hashing.hmacSha512(new javax.crypto.spec.SecretKeySpec(((byte[]) com.google.common.base.Preconditions.checkNotNull(p2)), "HmacSHA512"));
    }

Method com.google.common.hash.Hashing.hmacSha256() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static com.google.common.hash.HashFunction hmacSha256(byte[] p2)
    {
        return com.google.common.hash.Hashing.hmacSha256(new javax.crypto.spec.SecretKeySpec(((byte[]) com.google.common.base.Preconditions.checkNotNull(p2)), "HmacSHA256"));
    }

Method com.google.common.hash.Hashing.hmacSha1() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static com.google.common.hash.HashFunction hmacSha1(byte[] p2)
    {
        return com.google.common.hash.Hashing.hmacSha1(new javax.crypto.spec.SecretKeySpec(((byte[]) com.google.common.base.Preconditions.checkNotNull(p2)), "HmacSHA1"));
    }

Method com.google.common.hash.Hashing.hmacMd5() calling method javax.crypto.spec.SecretKeySpec.<init>()


    public static com.google.common.hash.HashFunction hmacMd5(byte[] p2)
    {
        return com.google.common.hash.Hashing.hmacMd5(new javax.crypto.spec.SecretKeySpec(((byte[]) com.google.common.base.Preconditions.checkNotNull(p2)), "HmacMD5"));
    }