package com.worklight.common.security;

import android.content.Context;
import com.worklight.common.Logger;
import com.worklight.utils.Base64;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore.PrivateKeyEntry;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.Signature;
import java.security.SignatureException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.security.interfaces.RSAPublicKey;
import java.util.HashMap;
import java.util.Iterator;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.jce.PKCS10CertificationRequest;
import org.json.JSONObject;

public abstract class WLCertManager
{
  protected static final String ALG = "alg";
  private static final String APPLICATION = "application";
  protected static final String EXP = "exp";
  protected static final String JPK = "jpk";
  private static String KEYSTORE_FILENAME;
  protected static final String MOD = "mod";
  protected static final String RSA = "RSA";
  protected static final String X5C = "x5c";
  private static char[] keyStorePassword;
  private static Logger logger = Logger.getInstance("wl.certManager");
  protected Context context;
  private HashMap<String, KeyPair> keyPairHash = new HashMap();

  protected WLCertManager(String paramString, char[] paramArrayOfChar)
  {
    KEYSTORE_FILENAME = paramString;
    keyStorePassword = paramArrayOfChar;
  }

  private byte[] signCsrData(String paramString, PrivateKey paramPrivateKey)
    throws NoSuchAlgorithmException, InvalidKeyException, SignatureException
  {
    Signature localSignature = Signature.getInstance("SHA256withRSA");
    localSignature.initSign(paramPrivateKey);
    localSignature.update(paramString.getBytes());
    return localSignature.sign();
  }

  // ERROR //
  public void clearKeystore(String paramString)
    throws java.security.KeyStoreException
  {
    // Byte code:
    //   0: invokestatic 106	java/security/KeyStore:getDefaultType	()Ljava/lang/String;
    //   3: invokestatic 109	java/security/KeyStore:getInstance	(Ljava/lang/String;)Ljava/security/KeyStore;
    //   6: astore_2
    //   7: new 111	java/io/File
    //   10: dup
    //   11: new 113	java/lang/StringBuilder
    //   14: dup
    //   15: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   18: aload_0
    //   19: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   22: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   25: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   28: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   31: ldc 131
    //   33: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   36: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   39: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   42: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   45: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   48: astore_3
    //   49: aconst_null
    //   50: astore 4
    //   52: aconst_null
    //   53: astore 5
    //   55: aload_3
    //   56: invokevirtual 140	java/io/File:exists	()Z
    //   59: istore 12
    //   61: aconst_null
    //   62: astore 4
    //   64: aconst_null
    //   65: astore 5
    //   67: iload 12
    //   69: ifeq +112 -> 181
    //   72: new 142	java/io/FileInputStream
    //   75: dup
    //   76: aload_3
    //   77: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   80: astore 13
    //   82: aload_2
    //   83: aload 13
    //   85: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   88: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   91: aload 13
    //   93: invokevirtual 152	java/io/FileInputStream:close	()V
    //   96: aload 13
    //   98: astore 4
    //   100: aload_0
    //   101: aload_1
    //   102: invokevirtual 156	com/worklight/common/security/WLCertManager:getAlias	(Ljava/lang/String;)Ljava/lang/String;
    //   105: astore 14
    //   107: aload_2
    //   108: aload 14
    //   110: invokevirtual 160	java/security/KeyStore:containsAlias	(Ljava/lang/String;)Z
    //   113: istore 15
    //   115: aconst_null
    //   116: astore 5
    //   118: iload 15
    //   120: ifeq +32 -> 152
    //   123: aload_2
    //   124: aload 14
    //   126: invokevirtual 163	java/security/KeyStore:deleteEntry	(Ljava/lang/String;)V
    //   129: new 165	java/io/FileOutputStream
    //   132: dup
    //   133: aload_3
    //   134: invokespecial 166	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   137: astore 16
    //   139: aload_2
    //   140: aload 16
    //   142: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   145: invokevirtual 170	java/security/KeyStore:store	(Ljava/io/OutputStream;[C)V
    //   148: aload 16
    //   150: astore 5
    //   152: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   155: ldc 172
    //   157: invokevirtual 175	com/worklight/common/Logger:debug	(Ljava/lang/String;)V
    //   160: aload 5
    //   162: ifnull +8 -> 170
    //   165: aload 5
    //   167: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   170: aload 4
    //   172: ifnull +8 -> 180
    //   175: aload 4
    //   177: invokevirtual 152	java/io/FileInputStream:close	()V
    //   180: return
    //   181: aload_2
    //   182: aconst_null
    //   183: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   186: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   189: aconst_null
    //   190: astore 4
    //   192: goto -92 -> 100
    //   195: astore 9
    //   197: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   200: new 113	java/lang/StringBuilder
    //   203: dup
    //   204: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   207: ldc 178
    //   209: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   212: aload 9
    //   214: invokevirtual 181	java/lang/Exception:getMessage	()Ljava/lang/String;
    //   217: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   220: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   223: aload 9
    //   225: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   228: aload 5
    //   230: ifnull +8 -> 238
    //   233: aload 5
    //   235: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   238: aload 4
    //   240: ifnull -60 -> 180
    //   243: aload 4
    //   245: invokevirtual 152	java/io/FileInputStream:close	()V
    //   248: return
    //   249: astore 10
    //   251: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   254: new 113	java/lang/StringBuilder
    //   257: dup
    //   258: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   261: aload 10
    //   263: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   266: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   269: ldc 194
    //   271: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   274: aload 10
    //   276: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   279: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   282: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   285: aload 10
    //   287: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   290: return
    //   291: astore 18
    //   293: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   296: new 113	java/lang/StringBuilder
    //   299: dup
    //   300: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   303: aload 18
    //   305: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   308: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   311: ldc 194
    //   313: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   316: aload 18
    //   318: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   321: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   324: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   327: aload 18
    //   329: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   332: goto -162 -> 170
    //   335: astore 17
    //   337: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   340: new 113	java/lang/StringBuilder
    //   343: dup
    //   344: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   347: aload 17
    //   349: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   352: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   355: ldc 194
    //   357: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   360: aload 17
    //   362: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   365: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   368: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   371: aload 17
    //   373: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   376: return
    //   377: astore 11
    //   379: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   382: new 113	java/lang/StringBuilder
    //   385: dup
    //   386: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   389: aload 11
    //   391: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   394: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   397: ldc 194
    //   399: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   402: aload 11
    //   404: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   407: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   410: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   413: aload 11
    //   415: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   418: goto -180 -> 238
    //   421: astore 6
    //   423: aload 5
    //   425: ifnull +8 -> 433
    //   428: aload 5
    //   430: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   433: aload 4
    //   435: ifnull +8 -> 443
    //   438: aload 4
    //   440: invokevirtual 152	java/io/FileInputStream:close	()V
    //   443: aload 6
    //   445: athrow
    //   446: astore 8
    //   448: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   451: new 113	java/lang/StringBuilder
    //   454: dup
    //   455: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   458: aload 8
    //   460: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   463: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   466: ldc 194
    //   468: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   471: aload 8
    //   473: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   476: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   479: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   482: aload 8
    //   484: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   487: goto -54 -> 433
    //   490: astore 7
    //   492: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   495: new 113	java/lang/StringBuilder
    //   498: dup
    //   499: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   502: aload 7
    //   504: invokevirtual 189	java/lang/Object:getClass	()Ljava/lang/Class;
    //   507: invokevirtual 192	java/lang/StringBuilder:append	(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    //   510: ldc 194
    //   512: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   515: aload 7
    //   517: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   520: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   523: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   526: aload 7
    //   528: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   531: goto -88 -> 443
    //   534: astore 6
    //   536: aload 13
    //   538: astore 4
    //   540: aconst_null
    //   541: astore 5
    //   543: goto -120 -> 423
    //   546: astore 6
    //   548: aload 16
    //   550: astore 5
    //   552: goto -129 -> 423
    //   555: astore 9
    //   557: aload 13
    //   559: astore 4
    //   561: aconst_null
    //   562: astore 5
    //   564: goto -367 -> 197
    //   567: astore 9
    //   569: aload 16
    //   571: astore 5
    //   573: goto -376 -> 197
    //
    // Exception table:
    //   from	to	target	type
    //   55	61	195	java/lang/Exception
    //   72	82	195	java/lang/Exception
    //   100	115	195	java/lang/Exception
    //   123	139	195	java/lang/Exception
    //   152	160	195	java/lang/Exception
    //   181	189	195	java/lang/Exception
    //   243	248	249	java/io/IOException
    //   165	170	291	java/io/IOException
    //   175	180	335	java/io/IOException
    //   233	238	377	java/io/IOException
    //   55	61	421	finally
    //   72	82	421	finally
    //   100	115	421	finally
    //   123	139	421	finally
    //   152	160	421	finally
    //   181	189	421	finally
    //   197	228	421	finally
    //   428	433	446	java/io/IOException
    //   438	443	490	java/io/IOException
    //   82	96	534	finally
    //   139	148	546	finally
    //   82	96	555	java/lang/Exception
    //   139	148	567	java/lang/Exception
  }

  public String createSignedCSR(JSONObject paramJSONObject, String paramString)
    throws Exception
  {
    JSONObject localJSONObject = paramJSONObject.getJSONObject("subject");
    paramJSONObject.optJSONObject("attributes");
    Iterator localIterator = localJSONObject.keys();
    String str1 = "";
    while (localIterator.hasNext())
    {
      String str3 = (String)localIterator.next();
      str1 = str1 + str3 + "=" + localJSONObject.getString(str3);
      if (localIterator.hasNext())
        str1 = str1 + ",";
    }
    String str2 = getAlias(paramString);
    KeyPair localKeyPair = (KeyPair)this.keyPairHash.get(str2);
    return Base64.encode(new PKCS10CertificationRequest("SHA1withRSA", new X500Principal(str1), localKeyPair.getPublic(), null, localKeyPair.getPrivate()).getEncoded(), "UTF-8");
  }

  public KeyPair generateKeyPair(String paramString, int paramInt)
    throws NoSuchAlgorithmException
  {
    KeyPairGenerator localKeyPairGenerator = KeyPairGenerator.getInstance("RSA");
    localKeyPairGenerator.initialize(paramInt);
    KeyPair localKeyPair = localKeyPairGenerator.genKeyPair();
    this.keyPairHash.put(getAlias(paramString), localKeyPair);
    return localKeyPair;
  }

  protected abstract String getAlias(String paramString);

  // ERROR //
  protected KeyStore.PrivateKeyEntry getPrivateKeyEntry(String paramString)
    throws java.io.IOException, java.security.KeyStoreException, NoSuchAlgorithmException, java.security.cert.CertificateException, android.content.pm.PackageManager.NameNotFoundException, java.security.UnrecoverableEntryException
  {
    // Byte code:
    //   0: invokestatic 106	java/security/KeyStore:getDefaultType	()Ljava/lang/String;
    //   3: invokestatic 109	java/security/KeyStore:getInstance	(Ljava/lang/String;)Ljava/security/KeyStore;
    //   6: astore_2
    //   7: new 111	java/io/File
    //   10: dup
    //   11: new 113	java/lang/StringBuilder
    //   14: dup
    //   15: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   18: aload_0
    //   19: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   22: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   25: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   28: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   31: ldc 131
    //   33: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   36: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   39: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   42: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   45: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   48: astore_3
    //   49: aload_0
    //   50: aload_1
    //   51: invokevirtual 156	com/worklight/common/security/WLCertManager:getAlias	(Ljava/lang/String;)Ljava/lang/String;
    //   54: astore 4
    //   56: aconst_null
    //   57: astore 5
    //   59: aload_3
    //   60: invokevirtual 140	java/io/File:exists	()Z
    //   63: ifeq +350 -> 413
    //   66: new 142	java/io/FileInputStream
    //   69: dup
    //   70: aload_3
    //   71: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   74: astore 19
    //   76: aload_2
    //   77: aload 19
    //   79: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   82: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   85: aload_2
    //   86: aload 4
    //   88: new 296	java/security/KeyStore$PasswordProtection
    //   91: dup
    //   92: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   95: invokespecial 299	java/security/KeyStore$PasswordProtection:<init>	([C)V
    //   98: invokevirtual 303	java/security/KeyStore:getEntry	(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
    //   101: checkcast 305	java/security/KeyStore$PrivateKeyEntry
    //   104: astore 17
    //   106: aload 17
    //   108: ifnull +16 -> 124
    //   111: aload 19
    //   113: ifnull +8 -> 121
    //   116: aload 19
    //   118: invokevirtual 152	java/io/FileInputStream:close	()V
    //   121: aload 17
    //   123: areturn
    //   124: ldc 11
    //   126: aload_1
    //   127: invokevirtual 308	java/lang/String:equalsIgnoreCase	(Ljava/lang/String;)Z
    //   130: istore 22
    //   132: iload 22
    //   134: ifeq +15 -> 149
    //   137: aload 19
    //   139: ifnull +8 -> 147
    //   142: aload 19
    //   144: invokevirtual 152	java/io/FileInputStream:close	()V
    //   147: aconst_null
    //   148: areturn
    //   149: aload 19
    //   151: ifnull +516 -> 667
    //   154: aload 19
    //   156: invokevirtual 152	java/io/FileInputStream:close	()V
    //   159: aload_0
    //   160: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   163: invokevirtual 312	android/content/Context:getPackageManager	()Landroid/content/pm/PackageManager;
    //   166: aload_0
    //   167: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   170: invokevirtual 316	android/content/Context:getApplicationInfo	()Landroid/content/pm/ApplicationInfo;
    //   173: getfield 322	android/content/pm/ApplicationInfo:uid	I
    //   176: invokevirtual 328	android/content/pm/PackageManager:getPackagesForUid	(I)[Ljava/lang/String;
    //   179: astore 6
    //   181: invokestatic 106	java/security/KeyStore:getDefaultType	()Ljava/lang/String;
    //   184: invokestatic 109	java/security/KeyStore:getInstance	(Ljava/lang/String;)Ljava/security/KeyStore;
    //   187: astore 7
    //   189: aload 6
    //   191: arraylength
    //   192: istore 8
    //   194: iconst_0
    //   195: istore 9
    //   197: iload 9
    //   199: iload 8
    //   201: if_icmpge +393 -> 594
    //   204: aload 6
    //   206: iload 9
    //   208: aaload
    //   209: astore 10
    //   211: new 111	java/io/File
    //   214: dup
    //   215: new 113	java/lang/StringBuilder
    //   218: dup
    //   219: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   222: aload_0
    //   223: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   226: aload 10
    //   228: iconst_0
    //   229: invokevirtual 332	android/content/Context:createPackageContext	(Ljava/lang/String;I)Landroid/content/Context;
    //   232: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   235: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   238: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   241: ldc 131
    //   243: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   246: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   249: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   252: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   255: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   258: astore 11
    //   260: aconst_null
    //   261: astore 12
    //   263: aconst_null
    //   264: astore 13
    //   266: aload 11
    //   268: invokevirtual 140	java/io/File:exists	()Z
    //   271: ifeq +74 -> 345
    //   274: new 142	java/io/FileInputStream
    //   277: dup
    //   278: aload 11
    //   280: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   283: astore 14
    //   285: aload 7
    //   287: aload 14
    //   289: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   292: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   295: aload 7
    //   297: aload 4
    //   299: new 296	java/security/KeyStore$PasswordProtection
    //   302: dup
    //   303: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   306: invokespecial 299	java/security/KeyStore$PasswordProtection:<init>	([C)V
    //   309: invokevirtual 303	java/security/KeyStore:getEntry	(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
    //   312: checkcast 305	java/security/KeyStore$PrivateKeyEntry
    //   315: astore 17
    //   317: aload 17
    //   319: ifnonnull +116 -> 435
    //   322: aload 14
    //   324: invokevirtual 152	java/io/FileInputStream:close	()V
    //   327: aload 14
    //   329: ifnull +8 -> 337
    //   332: aload 14
    //   334: invokevirtual 152	java/io/FileInputStream:close	()V
    //   337: iconst_0
    //   338: ifeq +326 -> 664
    //   341: aconst_null
    //   342: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   345: iinc 9 1
    //   348: goto -151 -> 197
    //   351: astore 20
    //   353: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   356: new 113	java/lang/StringBuilder
    //   359: dup
    //   360: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   363: ldc_w 334
    //   366: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   369: aload 20
    //   371: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   374: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   377: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   380: aload 20
    //   382: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   385: aload 5
    //   387: ifnull -228 -> 159
    //   390: aload 5
    //   392: invokevirtual 152	java/io/FileInputStream:close	()V
    //   395: goto -236 -> 159
    //   398: astore 21
    //   400: aload 5
    //   402: ifnull +8 -> 410
    //   405: aload 5
    //   407: invokevirtual 152	java/io/FileInputStream:close	()V
    //   410: aload 21
    //   412: athrow
    //   413: ldc 11
    //   415: aload_1
    //   416: invokevirtual 308	java/lang/String:equalsIgnoreCase	(Ljava/lang/String;)Z
    //   419: ifeq +5 -> 424
    //   422: aconst_null
    //   423: areturn
    //   424: aload_2
    //   425: aconst_null
    //   426: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   429: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   432: goto -273 -> 159
    //   435: new 165	java/io/FileOutputStream
    //   438: dup
    //   439: aload_3
    //   440: invokespecial 166	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   443: astore 18
    //   445: aload_2
    //   446: aload 4
    //   448: aload 17
    //   450: invokevirtual 337	java/security/KeyStore$PrivateKeyEntry:getPrivateKey	()Ljava/security/PrivateKey;
    //   453: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   456: aload 17
    //   458: invokevirtual 341	java/security/KeyStore$PrivateKeyEntry:getCertificateChain	()[Ljava/security/cert/Certificate;
    //   461: invokevirtual 345	java/security/KeyStore:setKeyEntry	(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
    //   464: aload_2
    //   465: aload 18
    //   467: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   470: invokevirtual 170	java/security/KeyStore:store	(Ljava/io/OutputStream;[C)V
    //   473: aload 18
    //   475: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   478: aload 14
    //   480: invokevirtual 152	java/io/FileInputStream:close	()V
    //   483: aload 14
    //   485: ifnull +8 -> 493
    //   488: aload 14
    //   490: invokevirtual 152	java/io/FileInputStream:close	()V
    //   493: aload 18
    //   495: ifnull -374 -> 121
    //   498: aload 18
    //   500: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   503: aload 17
    //   505: areturn
    //   506: astore 15
    //   508: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   511: new 113	java/lang/StringBuilder
    //   514: dup
    //   515: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   518: ldc_w 347
    //   521: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   524: aload 15
    //   526: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   529: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   532: ldc_w 349
    //   535: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   538: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   541: aload 15
    //   543: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   546: aload 12
    //   548: ifnull +8 -> 556
    //   551: aload 12
    //   553: invokevirtual 152	java/io/FileInputStream:close	()V
    //   556: aload 13
    //   558: ifnull -213 -> 345
    //   561: aload 13
    //   563: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   566: goto -221 -> 345
    //   569: astore 16
    //   571: aload 12
    //   573: ifnull +8 -> 581
    //   576: aload 12
    //   578: invokevirtual 152	java/io/FileInputStream:close	()V
    //   581: aload 13
    //   583: ifnull +8 -> 591
    //   586: aload 13
    //   588: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   591: aload 16
    //   593: athrow
    //   594: aconst_null
    //   595: areturn
    //   596: astore 16
    //   598: aload 14
    //   600: astore 12
    //   602: aconst_null
    //   603: astore 13
    //   605: goto -34 -> 571
    //   608: astore 16
    //   610: aload 18
    //   612: astore 13
    //   614: aload 14
    //   616: astore 12
    //   618: goto -47 -> 571
    //   621: astore 15
    //   623: aload 14
    //   625: astore 12
    //   627: aconst_null
    //   628: astore 13
    //   630: goto -122 -> 508
    //   633: astore 15
    //   635: aload 18
    //   637: astore 13
    //   639: aload 14
    //   641: astore 12
    //   643: goto -135 -> 508
    //   646: astore 21
    //   648: aload 19
    //   650: astore 5
    //   652: goto -252 -> 400
    //   655: astore 20
    //   657: aload 19
    //   659: astore 5
    //   661: goto -308 -> 353
    //   664: goto -319 -> 345
    //   667: goto -508 -> 159
    //
    // Exception table:
    //   from	to	target	type
    //   66	76	351	java/io/IOException
    //   66	76	398	finally
    //   353	385	398	finally
    //   274	285	506	java/io/IOException
    //   274	285	569	finally
    //   508	546	569	finally
    //   285	317	596	finally
    //   322	327	596	finally
    //   435	445	596	finally
    //   445	483	608	finally
    //   285	317	621	java/io/IOException
    //   322	327	621	java/io/IOException
    //   435	445	621	java/io/IOException
    //   445	483	633	java/io/IOException
    //   76	106	646	finally
    //   124	132	646	finally
    //   76	106	655	java/io/IOException
    //   124	132	655	java/io/IOException
  }

  public void init(Context paramContext)
  {
    this.context = paramContext;
  }

  public boolean isCertificateExists(String paramString)
  {
    if (this.context == null)
      return false;
    try
    {
      KeyStore.PrivateKeyEntry localPrivateKeyEntry = getPrivateKeyEntry(paramString);
      boolean bool = false;
      if (localPrivateKeyEntry != null)
        bool = true;
      return bool;
    }
    catch (Exception localException)
    {
      logger.error("Failed to determine the existence of certificate for device authentication with " + localException.getMessage(), localException);
    }
    return false;
  }

  // ERROR //
  public void removeEntityKeyStoreValues(String paramString)
    throws java.security.KeyStoreException
  {
    // Byte code:
    //   0: invokestatic 106	java/security/KeyStore:getDefaultType	()Ljava/lang/String;
    //   3: invokestatic 109	java/security/KeyStore:getInstance	(Ljava/lang/String;)Ljava/security/KeyStore;
    //   6: astore_2
    //   7: new 111	java/io/File
    //   10: dup
    //   11: new 113	java/lang/StringBuilder
    //   14: dup
    //   15: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   18: aload_0
    //   19: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   22: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   25: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   28: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   31: ldc 131
    //   33: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   36: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   39: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   42: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   45: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   48: astore_3
    //   49: aconst_null
    //   50: astore 4
    //   52: aconst_null
    //   53: astore 5
    //   55: aload_0
    //   56: aload_1
    //   57: invokevirtual 156	com/worklight/common/security/WLCertManager:getAlias	(Ljava/lang/String;)Ljava/lang/String;
    //   60: astore 12
    //   62: aload_3
    //   63: invokevirtual 140	java/io/File:exists	()Z
    //   66: istore 13
    //   68: aconst_null
    //   69: astore 4
    //   71: aconst_null
    //   72: astore 5
    //   74: iload 13
    //   76: ifeq +76 -> 152
    //   79: new 142	java/io/FileInputStream
    //   82: dup
    //   83: aload_3
    //   84: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   87: astore 14
    //   89: aload_2
    //   90: aload 14
    //   92: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   95: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   98: aload_2
    //   99: aload 12
    //   101: invokevirtual 160	java/security/KeyStore:containsAlias	(Ljava/lang/String;)Z
    //   104: istore 15
    //   106: aconst_null
    //   107: astore 5
    //   109: iload 15
    //   111: ifeq +32 -> 143
    //   114: aload_2
    //   115: aload 12
    //   117: invokevirtual 163	java/security/KeyStore:deleteEntry	(Ljava/lang/String;)V
    //   120: new 165	java/io/FileOutputStream
    //   123: dup
    //   124: aload_3
    //   125: invokespecial 166	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   128: astore 16
    //   130: aload_2
    //   131: aload 16
    //   133: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   136: invokevirtual 170	java/security/KeyStore:store	(Ljava/io/OutputStream;[C)V
    //   139: aload 16
    //   141: astore 5
    //   143: aload 14
    //   145: invokevirtual 152	java/io/FileInputStream:close	()V
    //   148: aload 14
    //   150: astore 4
    //   152: aload_1
    //   153: ldc 11
    //   155: invokevirtual 359	java/lang/String:equals	(Ljava/lang/Object;)Z
    //   158: istore 17
    //   160: iload 17
    //   162: ifeq +58 -> 220
    //   165: aload 5
    //   167: ifnull +8 -> 175
    //   170: aload 5
    //   172: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   175: aload 4
    //   177: ifnull +8 -> 185
    //   180: aload 4
    //   182: invokevirtual 152	java/io/FileInputStream:close	()V
    //   185: return
    //   186: astore 37
    //   188: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   191: aload 37
    //   193: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   196: aload 37
    //   198: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   201: goto -26 -> 175
    //   204: astore 36
    //   206: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   209: aload 36
    //   211: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   214: aload 36
    //   216: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   219: return
    //   220: aload_0
    //   221: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   224: invokevirtual 312	android/content/Context:getPackageManager	()Landroid/content/pm/PackageManager;
    //   227: aload_0
    //   228: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   231: invokevirtual 316	android/content/Context:getApplicationInfo	()Landroid/content/pm/ApplicationInfo;
    //   234: getfield 322	android/content/pm/ApplicationInfo:uid	I
    //   237: invokevirtual 328	android/content/pm/PackageManager:getPackagesForUid	(I)[Ljava/lang/String;
    //   240: astore 18
    //   242: aload 18
    //   244: arraylength
    //   245: istore 19
    //   247: iconst_0
    //   248: istore 20
    //   250: aload_3
    //   251: astore 21
    //   253: iload 20
    //   255: iload 19
    //   257: if_icmpge +322 -> 579
    //   260: aload 18
    //   262: iload 20
    //   264: aaload
    //   265: astore 29
    //   267: new 111	java/io/File
    //   270: dup
    //   271: new 113	java/lang/StringBuilder
    //   274: dup
    //   275: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   278: aload_0
    //   279: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   282: aload 29
    //   284: iconst_0
    //   285: invokevirtual 332	android/content/Context:createPackageContext	(Ljava/lang/String;I)Landroid/content/Context;
    //   288: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   291: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   294: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   297: ldc 131
    //   299: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   302: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   305: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   308: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   311: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   314: astore 30
    //   316: aconst_null
    //   317: astore 4
    //   319: aconst_null
    //   320: astore 5
    //   322: aload 30
    //   324: invokevirtual 140	java/io/File:exists	()Z
    //   327: istore 31
    //   329: aconst_null
    //   330: astore 4
    //   332: aconst_null
    //   333: astore 5
    //   335: iload 31
    //   337: ifeq +87 -> 424
    //   340: new 142	java/io/FileInputStream
    //   343: dup
    //   344: aload 30
    //   346: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   349: astore 14
    //   351: aload_2
    //   352: aload 14
    //   354: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   357: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   360: aload_2
    //   361: aload 12
    //   363: invokevirtual 163	java/security/KeyStore:deleteEntry	(Ljava/lang/String;)V
    //   366: new 165	java/io/FileOutputStream
    //   369: dup
    //   370: aload 30
    //   372: invokespecial 166	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   375: astore 16
    //   377: aload_2
    //   378: aload 16
    //   380: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   383: invokevirtual 170	java/security/KeyStore:store	(Ljava/io/OutputStream;[C)V
    //   386: aload 16
    //   388: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   391: aload 14
    //   393: invokevirtual 152	java/io/FileInputStream:close	()V
    //   396: aload 14
    //   398: ifnull +8 -> 406
    //   401: aload 14
    //   403: invokevirtual 152	java/io/FileInputStream:close	()V
    //   406: aload 16
    //   408: ifnull +426 -> 834
    //   411: aload 16
    //   413: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   416: aload 16
    //   418: astore 5
    //   420: aload 14
    //   422: astore 4
    //   424: iinc 20 1
    //   427: aload 30
    //   429: astore 21
    //   431: goto -178 -> 253
    //   434: astore 35
    //   436: aload 4
    //   438: ifnull +8 -> 446
    //   441: aload 4
    //   443: invokevirtual 152	java/io/FileInputStream:close	()V
    //   446: aload 5
    //   448: ifnull -24 -> 424
    //   451: aload 5
    //   453: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   456: goto -32 -> 424
    //   459: astore 9
    //   461: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   464: new 113	java/lang/StringBuilder
    //   467: dup
    //   468: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   471: ldc 178
    //   473: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   476: aload 9
    //   478: invokevirtual 181	java/lang/Exception:getMessage	()Ljava/lang/String;
    //   481: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   484: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   487: aload 9
    //   489: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   492: aload 5
    //   494: ifnull +8 -> 502
    //   497: aload 5
    //   499: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   502: aload 4
    //   504: ifnull -319 -> 185
    //   507: aload 4
    //   509: invokevirtual 152	java/io/FileInputStream:close	()V
    //   512: return
    //   513: astore 10
    //   515: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   518: aload 10
    //   520: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   523: aload 10
    //   525: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   528: return
    //   529: astore 33
    //   531: aload 4
    //   533: ifnull +8 -> 541
    //   536: aload 4
    //   538: invokevirtual 152	java/io/FileInputStream:close	()V
    //   541: aload 5
    //   543: ifnull +8 -> 551
    //   546: aload 5
    //   548: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   551: aload 33
    //   553: athrow
    //   554: astore 6
    //   556: aload 5
    //   558: ifnull +8 -> 566
    //   561: aload 5
    //   563: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   566: aload 4
    //   568: ifnull +8 -> 576
    //   571: aload 4
    //   573: invokevirtual 152	java/io/FileInputStream:close	()V
    //   576: aload 6
    //   578: athrow
    //   579: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   582: new 113	java/lang/StringBuilder
    //   585: dup
    //   586: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   589: ldc_w 361
    //   592: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   595: aload_1
    //   596: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   599: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   602: invokevirtual 175	com/worklight/common/Logger:debug	(Ljava/lang/String;)V
    //   605: aload 5
    //   607: ifnull +8 -> 615
    //   610: aload 5
    //   612: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   615: aload 4
    //   617: ifnull +213 -> 830
    //   620: aload 4
    //   622: invokevirtual 152	java/io/FileInputStream:close	()V
    //   625: aload 21
    //   627: pop
    //   628: return
    //   629: astore 28
    //   631: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   634: aload 28
    //   636: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   639: aload 28
    //   641: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   644: goto -29 -> 615
    //   647: astore 25
    //   649: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   652: aload 25
    //   654: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   657: aload 25
    //   659: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   662: aload 21
    //   664: pop
    //   665: return
    //   666: astore 11
    //   668: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   671: aload 11
    //   673: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   676: aload 11
    //   678: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   681: goto -179 -> 502
    //   684: astore 8
    //   686: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   689: aload 8
    //   691: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   694: aload 8
    //   696: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   699: goto -133 -> 566
    //   702: astore 7
    //   704: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   707: aload 7
    //   709: invokevirtual 195	java/io/IOException:getMessage	()Ljava/lang/String;
    //   712: aload 7
    //   714: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   717: goto -141 -> 576
    //   720: astore 6
    //   722: aload 14
    //   724: astore 4
    //   726: goto -170 -> 556
    //   729: astore 6
    //   731: aload 16
    //   733: astore 5
    //   735: aload 14
    //   737: astore 4
    //   739: goto -183 -> 556
    //   742: astore 6
    //   744: aload 21
    //   746: pop
    //   747: goto -191 -> 556
    //   750: astore 9
    //   752: aload 14
    //   754: astore 4
    //   756: goto -295 -> 461
    //   759: astore 9
    //   761: aload 16
    //   763: astore 5
    //   765: aload 14
    //   767: astore 4
    //   769: goto -308 -> 461
    //   772: astore 9
    //   774: aload 21
    //   776: pop
    //   777: goto -316 -> 461
    //   780: astore 33
    //   782: aload 14
    //   784: astore 4
    //   786: aconst_null
    //   787: astore 5
    //   789: goto -258 -> 531
    //   792: astore 33
    //   794: aload 16
    //   796: astore 5
    //   798: aload 14
    //   800: astore 4
    //   802: goto -271 -> 531
    //   805: astore 32
    //   807: aload 14
    //   809: astore 4
    //   811: aconst_null
    //   812: astore 5
    //   814: goto -378 -> 436
    //   817: astore 34
    //   819: aload 16
    //   821: astore 5
    //   823: aload 14
    //   825: astore 4
    //   827: goto -391 -> 436
    //   830: aload 21
    //   832: pop
    //   833: return
    //   834: aload 16
    //   836: astore 5
    //   838: aload 14
    //   840: astore 4
    //   842: goto -418 -> 424
    //
    // Exception table:
    //   from	to	target	type
    //   170	175	186	java/io/IOException
    //   180	185	204	java/io/IOException
    //   340	351	434	java/io/IOException
    //   55	68	459	java/lang/Exception
    //   79	89	459	java/lang/Exception
    //   152	160	459	java/lang/Exception
    //   220	247	459	java/lang/Exception
    //   322	329	459	java/lang/Exception
    //   441	446	459	java/lang/Exception
    //   451	456	459	java/lang/Exception
    //   536	541	459	java/lang/Exception
    //   546	551	459	java/lang/Exception
    //   551	554	459	java/lang/Exception
    //   507	512	513	java/io/IOException
    //   340	351	529	finally
    //   55	68	554	finally
    //   79	89	554	finally
    //   152	160	554	finally
    //   220	247	554	finally
    //   322	329	554	finally
    //   441	446	554	finally
    //   451	456	554	finally
    //   461	492	554	finally
    //   536	541	554	finally
    //   546	551	554	finally
    //   551	554	554	finally
    //   610	615	629	java/io/IOException
    //   620	625	647	java/io/IOException
    //   497	502	666	java/io/IOException
    //   561	566	684	java/io/IOException
    //   571	576	702	java/io/IOException
    //   89	106	720	finally
    //   114	130	720	finally
    //   143	148	720	finally
    //   130	139	729	finally
    //   401	406	729	finally
    //   411	416	729	finally
    //   260	316	742	finally
    //   579	605	742	finally
    //   89	106	750	java/lang/Exception
    //   114	130	750	java/lang/Exception
    //   143	148	750	java/lang/Exception
    //   130	139	759	java/lang/Exception
    //   401	406	759	java/lang/Exception
    //   411	416	759	java/lang/Exception
    //   260	316	772	java/lang/Exception
    //   579	605	772	java/lang/Exception
    //   351	377	780	finally
    //   377	396	792	finally
    //   351	377	805	java/io/IOException
    //   377	396	817	java/io/IOException
  }

  public void saveCertificate(String paramString1, String paramString2, String paramString3)
    throws Exception
  {
    if (paramString2 == null)
      throw new Exception("cannot save null certificate");
    ByteArrayInputStream localByteArrayInputStream = new ByteArrayInputStream(Base64.decode(paramString2.getBytes()));
    X509Certificate localX509Certificate = (X509Certificate)CertificateFactory.getInstance("X.509").generateCertificate(localByteArrayInputStream);
    localByteArrayInputStream.close();
    saveCertificate(paramString1, localX509Certificate, paramString3);
  }

  // ERROR //
  public void saveCertificate(String paramString1, java.security.cert.Certificate paramCertificate, String paramString2)
    throws Exception
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_1
    //   2: invokevirtual 395	com/worklight/common/security/WLCertManager:isCertificateExists	(Ljava/lang/String;)Z
    //   5: ifeq +14 -> 19
    //   8: new 98	java/lang/Exception
    //   11: dup
    //   12: ldc_w 397
    //   15: invokespecial 366	java/lang/Exception:<init>	(Ljava/lang/String;)V
    //   18: athrow
    //   19: invokestatic 106	java/security/KeyStore:getDefaultType	()Ljava/lang/String;
    //   22: invokestatic 109	java/security/KeyStore:getInstance	(Ljava/lang/String;)Ljava/security/KeyStore;
    //   25: astore 4
    //   27: new 111	java/io/File
    //   30: dup
    //   31: new 113	java/lang/StringBuilder
    //   34: dup
    //   35: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   38: aload_0
    //   39: getfield 116	com/worklight/common/security/WLCertManager:context	Landroid/content/Context;
    //   42: invokevirtual 122	android/content/Context:getFilesDir	()Ljava/io/File;
    //   45: invokevirtual 125	java/io/File:getAbsolutePath	()Ljava/lang/String;
    //   48: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   51: ldc 131
    //   53: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   56: getstatic 58	com/worklight/common/security/WLCertManager:KEYSTORE_FILENAME	Ljava/lang/String;
    //   59: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   62: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   65: invokespecial 136	java/io/File:<init>	(Ljava/lang/String;)V
    //   68: astore 5
    //   70: aconst_null
    //   71: astore 6
    //   73: aconst_null
    //   74: astore 7
    //   76: aload 5
    //   78: invokevirtual 140	java/io/File:exists	()Z
    //   81: istore 10
    //   83: aconst_null
    //   84: astore 6
    //   86: aconst_null
    //   87: astore 7
    //   89: iload 10
    //   91: ifeq +132 -> 223
    //   94: new 142	java/io/FileInputStream
    //   97: dup
    //   98: aload 5
    //   100: invokespecial 145	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   103: astore 11
    //   105: aload 4
    //   107: aload 11
    //   109: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   112: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   115: aload 11
    //   117: invokevirtual 152	java/io/FileInputStream:close	()V
    //   120: aload 11
    //   122: astore 6
    //   124: aload 4
    //   126: aload_0
    //   127: aload_1
    //   128: invokevirtual 156	com/worklight/common/security/WLCertManager:getAlias	(Ljava/lang/String;)Ljava/lang/String;
    //   131: aload_0
    //   132: getfield 56	com/worklight/common/security/WLCertManager:keyPairHash	Ljava/util/HashMap;
    //   135: aload_0
    //   136: aload_1
    //   137: invokevirtual 156	com/worklight/common/security/WLCertManager:getAlias	(Ljava/lang/String;)Ljava/lang/String;
    //   140: invokevirtual 236	java/util/HashMap:get	(Ljava/lang/Object;)Ljava/lang/Object;
    //   143: checkcast 238	java/security/KeyPair
    //   146: invokevirtual 253	java/security/KeyPair:getPrivate	()Ljava/security/PrivateKey;
    //   149: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   152: iconst_1
    //   153: anewarray 399	java/security/cert/Certificate
    //   156: dup
    //   157: iconst_0
    //   158: aload_2
    //   159: aastore
    //   160: invokevirtual 345	java/security/KeyStore:setKeyEntry	(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
    //   163: new 165	java/io/FileOutputStream
    //   166: dup
    //   167: aload 5
    //   169: invokespecial 166	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   172: astore 12
    //   174: aload 4
    //   176: aload 12
    //   178: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   181: invokevirtual 170	java/security/KeyStore:store	(Ljava/io/OutputStream;[C)V
    //   184: aload_0
    //   185: getfield 56	com/worklight/common/security/WLCertManager:keyPairHash	Ljava/util/HashMap;
    //   188: aload_3
    //   189: invokevirtual 402	java/util/HashMap:remove	(Ljava/lang/Object;)Ljava/lang/Object;
    //   192: pop
    //   193: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   196: ldc_w 404
    //   199: invokevirtual 175	com/worklight/common/Logger:debug	(Ljava/lang/String;)V
    //   202: aload 12
    //   204: ifnull +8 -> 212
    //   207: aload 12
    //   209: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   212: aload 6
    //   214: ifnull +146 -> 360
    //   217: aload 6
    //   219: invokevirtual 152	java/io/FileInputStream:close	()V
    //   222: return
    //   223: aload 4
    //   225: aconst_null
    //   226: getstatic 60	com/worklight/common/security/WLCertManager:keyStorePassword	[C
    //   229: invokevirtual 149	java/security/KeyStore:load	(Ljava/io/InputStream;[C)V
    //   232: aconst_null
    //   233: astore 6
    //   235: goto -111 -> 124
    //   238: astore 9
    //   240: getstatic 47	com/worklight/common/security/WLCertManager:logger	Lcom/worklight/common/Logger;
    //   243: new 113	java/lang/StringBuilder
    //   246: dup
    //   247: invokespecial 114	java/lang/StringBuilder:<init>	()V
    //   250: ldc_w 406
    //   253: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   256: aload 9
    //   258: invokevirtual 181	java/lang/Exception:getMessage	()Ljava/lang/String;
    //   261: invokevirtual 129	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   264: invokevirtual 134	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   267: aload 9
    //   269: invokevirtual 185	com/worklight/common/Logger:error	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   272: aload 7
    //   274: ifnull +8 -> 282
    //   277: aload 7
    //   279: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   282: aload 6
    //   284: ifnull -62 -> 222
    //   287: aload 6
    //   289: invokevirtual 152	java/io/FileInputStream:close	()V
    //   292: return
    //   293: astore 8
    //   295: aload 7
    //   297: ifnull +8 -> 305
    //   300: aload 7
    //   302: invokevirtual 176	java/io/FileOutputStream:close	()V
    //   305: aload 6
    //   307: ifnull +8 -> 315
    //   310: aload 6
    //   312: invokevirtual 152	java/io/FileInputStream:close	()V
    //   315: aload 8
    //   317: athrow
    //   318: astore 8
    //   320: aload 11
    //   322: astore 6
    //   324: aconst_null
    //   325: astore 7
    //   327: goto -32 -> 295
    //   330: astore 8
    //   332: aload 12
    //   334: astore 7
    //   336: goto -41 -> 295
    //   339: astore 9
    //   341: aload 11
    //   343: astore 6
    //   345: aconst_null
    //   346: astore 7
    //   348: goto -108 -> 240
    //   351: astore 9
    //   353: aload 12
    //   355: astore 7
    //   357: goto -117 -> 240
    //   360: return
    //
    // Exception table:
    //   from	to	target	type
    //   76	83	238	java/lang/Exception
    //   94	105	238	java/lang/Exception
    //   124	174	238	java/lang/Exception
    //   223	232	238	java/lang/Exception
    //   76	83	293	finally
    //   94	105	293	finally
    //   124	174	293	finally
    //   223	232	293	finally
    //   240	272	293	finally
    //   105	120	318	finally
    //   174	202	330	finally
    //   105	120	339	java/lang/Exception
    //   174	202	351	java/lang/Exception
  }

  public String signCsr(JSONObject paramJSONObject, String paramString)
    throws Exception
  {
    JSONObject localJSONObject1 = new JSONObject();
    localJSONObject1.put("alg", "RS256");
    JSONObject localJSONObject2 = new JSONObject();
    String str1 = getAlias(paramString);
    KeyPair localKeyPair = (KeyPair)this.keyPairHash.get(str1);
    RSAPublicKey localRSAPublicKey = (RSAPublicKey)localKeyPair.getPublic();
    localJSONObject2.put("alg", "RSA");
    localJSONObject2.put("mod", Base64.encodeUrlSafe(localRSAPublicKey.getModulus().toByteArray(), "UTF-8"));
    localJSONObject2.put("exp", Base64.encodeUrlSafe(localRSAPublicKey.getPublicExponent().toByteArray(), "UTF-8"));
    localJSONObject1.put("jpk", localJSONObject2);
    String str2 = localJSONObject1.toString();
    String str3 = paramJSONObject.toString();
    String str4 = Base64.encodeUrlSafe(str2.getBytes(), "UTF-8") + "." + Base64.encodeUrlSafe(str3.getBytes(), "UTF-8");
    String str5 = Base64.encodeUrlSafe(signCsrData(str4, localKeyPair.getPrivate()), "UTF-8");
    return str4 + "." + str5;
  }

  protected byte[] signData(String paramString, PrivateKey paramPrivateKey)
    throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException, SignatureException
  {
    Signature localSignature = Signature.getInstance("SHA256withRSA");
    localSignature.initSign(paramPrivateKey);
    localSignature.update(paramString.getBytes());
    return localSignature.sign();
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.worklight.common.security.WLCertManager
 * JD-Core Version:    0.6.2
 */