public class sun.security.util.PolicyUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.util.PolicyUtil
  super_class: java.lang.Object
{
  private static final java.lang.String P11KEYSTORE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKCS11"

  private static final java.lang.String NONE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NONE"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.util.PolicyUtil this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.security.util.PolicyUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/util/PolicyUtil;

  public static java.io.InputStream getInputStream(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.URL url
         0: .line 57
            ldc "file"
            aload 0 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 58
            aload 0 /* url */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         2: .line 59
            aload 1 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* path */
         3: .line 60
            new java.io.FileInputStream
            dup
            aload 1 /* path */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String path
         4: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            areturn
        end local 0 // java.net.URL url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   url  Ljava/net/URL;
            2    4     1  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      url   

  public static java.security.KeyStore getKeyStore(java.net.URL, java.lang.String, java.lang.String, java.lang.String, java.lang.String, sun.security.util.Debug);
    descriptor: (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/security/util/Debug;)Ljava/security/KeyStore;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=6
        start local 0 // java.net.URL policyUrl
        start local 1 // java.lang.String keyStoreName
        start local 2 // java.lang.String keyStoreType
        start local 3 // java.lang.String keyStoreProvider
        start local 4 // java.lang.String storePassURL
        start local 5 // sun.security.util.Debug debug
         0: .line 81
            aload 1 /* keyStoreName */
            ifnonnull 2
         1: .line 82
            new java.lang.IllegalArgumentException
            dup
            ldc "null KeyStore name"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 85
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* keyStorePassword */
        start local 6 // char[] keyStorePassword
         3: .line 88
            aload 2 /* keyStoreType */
            ifnonnull 5
         4: .line 89
            invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
            astore 2 /* keyStoreType */
         5: .line 92
      StackMap locals: char[]
      StackMap stack:
            ldc "PKCS11"
            aload 2 /* keyStoreType */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 17
         6: .line 93
            ldc "NONE"
            aload 1 /* keyStoreName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
         7: .line 94
            new java.lang.IllegalArgumentException
            dup
         8: .line 95
            new java.lang.StringBuilder
            dup
            ldc "Invalid value ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 96
            aload 1 /* keyStoreName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 97
            ldc ") for keystore URL.  If the keystore type is \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 98
            ldc "PKCS11"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 99
            ldc "\", the keystore url must be \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 100
            ldc "NONE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 101
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 95
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 94
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 104
      StackMap locals:
      StackMap stack:
            aload 3 /* keyStoreProvider */
            ifnull 20
        18: .line 105
            aload 2 /* keyStoreType */
            aload 3 /* keyStoreProvider */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 7 /* ks */
        start local 7 // java.security.KeyStore ks
        19: .line 106
            goto 21
        end local 7 // java.security.KeyStore ks
        20: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* keyStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 7 /* ks */
        start local 7 // java.security.KeyStore ks
        21: .line 110
      StackMap locals: java.security.KeyStore
      StackMap stack:
            aload 4 /* storePassURL */
            ifnull 40
        22: .line 113
            new java.net.URL
            dup
            aload 4 /* storePassURL */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 8 /* passURL */
        start local 8 // java.net.URL passURL
        23: .line 115
            goto 28
        end local 8 // java.net.URL passURL
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
        24: astore 9 /* e */
        start local 9 // java.net.MalformedURLException e
        25: .line 117
            aload 0 /* policyUrl */
            ifnonnull 27
        26: .line 118
            aload 9 /* e */
            athrow
        27: .line 120
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore top java.net.MalformedURLException
      StackMap stack:
            new java.net.URL
            dup
            aload 0 /* policyUrl */
            aload 4 /* storePassURL */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 8 /* passURL */
        end local 9 // java.net.MalformedURLException e
        start local 8 // java.net.URL passURL
        28: .line 123
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore java.net.URL
      StackMap stack:
            aload 5 /* debug */
            ifnull 30
        29: .line 124
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "reading password"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* passURL */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        30: .line 127
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* in */
        start local 9 // java.io.InputStream in
        31: .line 129
            aload 8 /* passURL */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 9 /* in */
        32: .line 130
            aload 9 /* in */
            invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
            astore 6 /* keyStorePassword */
        33: .line 131
            goto 38
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore java.net.URL java.io.InputStream
      StackMap stack: java.lang.Throwable
        34: astore 10
        35: .line 132
            aload 9 /* in */
            ifnull 37
        36: .line 133
            aload 9 /* in */
            invokevirtual java.io.InputStream.close:()V
        37: .line 135
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        38: .line 132
      StackMap locals:
      StackMap stack:
            aload 9 /* in */
            ifnull 40
        39: .line 133
            aload 9 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 9 // java.io.InputStream in
        end local 8 // java.net.URL passURL
        40: .line 138
      StackMap locals:
      StackMap stack:
            ldc "NONE"
            aload 1 /* keyStoreName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
        41: .line 139
            aload 7 /* ks */
            aconst_null
            aload 6 /* keyStorePassword */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        42: .line 140
            aload 7 /* ks */
            astore 12
        43: .line 173
            aload 6 /* keyStorePassword */
            ifnull 45
        44: .line 174
            aload 6 /* keyStorePassword */
            bipush 32
            invokestatic java.util.Arrays.fill:([CC)V
        45: .line 140
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore top top top top java.security.KeyStore
      StackMap stack:
            aload 12
            areturn
        46: .line 146
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore
      StackMap stack:
            aconst_null
            astore 8 /* keyStoreUrl */
        start local 8 // java.net.URL keyStoreUrl
        47: .line 148
            new java.net.URL
            dup
            aload 1 /* keyStoreName */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 8 /* keyStoreUrl */
        48: .line 150
            goto 53
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore java.net.URL
      StackMap stack: java.net.MalformedURLException
        49: astore 9 /* e */
        start local 9 // java.net.MalformedURLException e
        50: .line 152
            aload 0 /* policyUrl */
            ifnonnull 52
        51: .line 153
            aload 9 /* e */
            athrow
        52: .line 155
      StackMap locals: java.net.MalformedURLException
      StackMap stack:
            new java.net.URL
            dup
            aload 0 /* policyUrl */
            aload 1 /* keyStoreName */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 8 /* keyStoreUrl */
        end local 9 // java.net.MalformedURLException e
        53: .line 158
      StackMap locals:
      StackMap stack:
            aload 5 /* debug */
            ifnull 55
        54: .line 159
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "reading keystore"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* keyStoreUrl */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        55: .line 162
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* inStream */
        start local 9 // java.io.InputStream inStream
        56: .line 165
            new java.io.BufferedInputStream
            dup
            aload 8 /* keyStoreUrl */
            invokestatic sun.security.util.PolicyUtil.getInputStream:(Ljava/net/URL;)Ljava/io/InputStream;
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
        57: .line 164
            astore 9 /* inStream */
        58: .line 166
            aload 7 /* ks */
            aload 9 /* inStream */
            aload 6 /* keyStorePassword */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        59: .line 167
            goto 63
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore java.net.URL java.io.InputStream
      StackMap stack: java.lang.Throwable
        60: astore 10
        61: .line 168
            aload 9 /* inStream */
            invokevirtual java.io.InputStream.close:()V
        62: .line 169
            aload 10
            athrow
        63: .line 168
      StackMap locals:
      StackMap stack:
            aload 9 /* inStream */
            invokevirtual java.io.InputStream.close:()V
        64: .line 170
            aload 7 /* ks */
            astore 12
        65: .line 173
            aload 6 /* keyStorePassword */
            ifnull 67
        66: .line 174
            aload 6 /* keyStorePassword */
            bipush 32
            invokestatic java.util.Arrays.fill:([CC)V
        67: .line 170
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] java.security.KeyStore java.net.URL java.io.InputStream top top java.security.KeyStore
      StackMap stack:
            aload 12
            areturn
        end local 9 // java.io.InputStream inStream
        end local 8 // java.net.URL keyStoreUrl
        end local 7 // java.security.KeyStore ks
        68: .line 172
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[]
      StackMap stack: java.lang.Throwable
            astore 11
        69: .line 173
            aload 6 /* keyStorePassword */
            ifnull 71
        70: .line 174
            aload 6 /* keyStorePassword */
            bipush 32
            invokestatic java.util.Arrays.fill:([CC)V
        71: .line 176
      StackMap locals: java.net.URL java.lang.String java.lang.String java.lang.String java.lang.String sun.security.util.Debug char[] top top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        end local 6 // char[] keyStorePassword
        end local 5 // sun.security.util.Debug debug
        end local 4 // java.lang.String storePassURL
        end local 3 // java.lang.String keyStoreProvider
        end local 2 // java.lang.String keyStoreType
        end local 1 // java.lang.String keyStoreName
        end local 0 // java.net.URL policyUrl
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   72     0         policyUrl  Ljava/net/URL;
            0   72     1      keyStoreName  Ljava/lang/String;
            0   72     2      keyStoreType  Ljava/lang/String;
            0   72     3  keyStoreProvider  Ljava/lang/String;
            0   72     4      storePassURL  Ljava/lang/String;
            0   72     5             debug  Lsun/security/util/Debug;
            3   72     6  keyStorePassword  [C
           19   20     7                ks  Ljava/security/KeyStore;
           21   68     7                ks  Ljava/security/KeyStore;
           23   24     8           passURL  Ljava/net/URL;
           28   40     8           passURL  Ljava/net/URL;
           25   28     9                 e  Ljava/net/MalformedURLException;
           31   40     9                in  Ljava/io/InputStream;
           47   68     8       keyStoreUrl  Ljava/net/URL;
           50   53     9                 e  Ljava/net/MalformedURLException;
           56   68     9          inStream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
          22    23      24  Class java.net.MalformedURLException
          31    34      34  any
          47    48      49  Class java.net.MalformedURLException
          56    60      60  any
           3    43      68  any
          46    65      68  any
    Exceptions:
      throws java.security.KeyStoreException, java.net.MalformedURLException, java.io.IOException, java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    MethodParameters:
                  Name  Flags
      policyUrl         
      keyStoreName      
      keyStoreType      
      keyStoreProvider  
      storePassURL      
      debug             
}
SourceFile: "PolicyUtil.java"