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

  private static final java.text.Collator collator;
    descriptor: Ljava/text/Collator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 53
            invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
            putstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
         1: .line 56
            getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
            iconst_0
            invokevirtual java.text.Collator.setStrength:(I)V
         2: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.KeyStoreUtil this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            return
        end local 0 // sun.security.tools.KeyStoreUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/tools/KeyStoreUtil;

  public static boolean isWindowsKeyStore(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String storetype
         0: .line 64
            aload 0 /* storetype */
            ldc "Windows-MY"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 3
         1: .line 65
            aload 0 /* storetype */
            ldc "Windows-ROOT"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 3
         2: .line 64
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.lang.String storetype
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  storetype  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      storetype  

  public static java.lang.String niceStoreTypeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String storetype
         0: .line 72
            aload 0 /* storetype */
            ldc "Windows-MY"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 73
            ldc "Windows-MY"
            areturn
         2: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* storetype */
            ldc "Windows-ROOT"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 75
            ldc "Windows-ROOT"
            areturn
         4: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* storetype */
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String storetype
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  storetype  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      storetype  

  public static java.security.KeyStore getCacertsKeyStore();
    descriptor: ()Ljava/security/KeyStore;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 87
            getstatic java.io.File.separator:Ljava/lang/String;
            astore 0 /* sep */
        start local 0 // java.lang.String sep
         1: .line 88
            new java.io.File
            dup
            new java.lang.StringBuilder
            dup
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 89
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "security"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 90
            ldc "cacerts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 88
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* file */
        start local 1 // java.io.File file
         5: .line 91
            aload 1 /* file */
            invokevirtual java.io.File.exists:()Z
            ifne 7
         6: .line 92
            aconst_null
            areturn
         7: .line 94
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            aconst_null
            astore 2 /* fis */
        start local 2 // java.io.FileInputStream fis
         8: .line 95
            aconst_null
            astore 3 /* caks */
        start local 3 // java.security.KeyStore caks
         9: .line 97
            new java.io.FileInputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 2 /* fis */
        10: .line 98
            ldc "jks"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 3 /* caks */
        11: .line 99
            aload 3 /* caks */
            aload 2 /* fis */
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        12: .line 100
            goto 16
      StackMap locals: java.lang.String java.io.File java.io.FileInputStream java.security.KeyStore
      StackMap stack: java.lang.Throwable
        13: astore 4
        14: .line 101
            aload 2 /* fis */
            ifnull 15
            aload 2 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        15: .line 102
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        16: .line 101
      StackMap locals:
      StackMap stack:
            aload 2 /* fis */
            ifnull 17
            aload 2 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        17: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* caks */
            areturn
        end local 3 // java.security.KeyStore caks
        end local 2 // java.io.FileInputStream fis
        end local 1 // java.io.File file
        end local 0 // java.lang.String sep
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1   18     0   sep  Ljava/lang/String;
            5   18     1  file  Ljava/io/File;
            8   18     2   fis  Ljava/io/FileInputStream;
            9   18     3  caks  Ljava/security/KeyStore;
      Exception table:
        from    to  target  type
           9    13      13  any
    Exceptions:
      throws java.lang.Exception

  public static char[] getPassWithModifier(java.lang.String, java.lang.String, java.util.ResourceBundle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/ResourceBundle;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String modifier
        start local 1 // java.lang.String arg
        start local 2 // java.util.ResourceBundle rb
         0: .line 108
            aload 0 /* modifier */
            ifnonnull 2
         1: .line 109
            aload 1 /* arg */
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
         2: .line 110
      StackMap locals:
      StackMap stack:
            getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
            aload 0 /* modifier */
            ldc "env"
            invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
            ifne 12
         3: .line 111
            aload 1 /* arg */
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* value */
        start local 3 // java.lang.String value
         4: .line 112
            aload 3 /* value */
            ifnonnull 11
         5: .line 113
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 2 /* rb */
         6: .line 114
            ldc "Cannot.find.environment.variable."
         7: .line 113
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 114
            aload 1 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 113
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 115
            aconst_null
            areturn
        11: .line 117
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* value */
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
        end local 3 // java.lang.String value
        12: .line 119
      StackMap locals:
      StackMap stack:
            getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
            aload 0 /* modifier */
            ldc "file"
            invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
            ifne 43
        13: .line 121
            aconst_null
            astore 3 /* url */
        start local 3 // java.net.URL url
        14: .line 123
            new java.net.URL
            dup
            aload 1 /* arg */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 3 /* url */
        15: .line 124
            goto 27
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL
      StackMap stack: java.net.MalformedURLException
        16: pop
        17: .line 125
            new java.io.File
            dup
            aload 1 /* arg */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* f */
        start local 4 // java.io.File f
        18: .line 126
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 21
        19: .line 127
            aload 4 /* f */
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 3 /* url */
        20: .line 128
            goto 27
        21: .line 129
      StackMap locals: java.io.File
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 2 /* rb */
        22: .line 130
            ldc "Cannot.find.file."
        23: .line 129
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 130
            aload 1 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 129
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 131
            aconst_null
            areturn
        end local 4 // java.io.File f
        27: .line 135
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* br */
        start local 4 // java.io.BufferedReader br
        28: .line 137
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 3 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* br */
        29: .line 138
            aload 4 /* br */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 5 /* value */
        start local 5 // java.lang.String value
        30: .line 140
            aload 5 /* value */
            ifnonnull 34
        31: .line 141
            iconst_0
            newarray 5
            astore 7
        32: .line 146
            aload 4 /* br */
            ifnull 33
            aload 4 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        33: .line 141
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.io.BufferedReader java.lang.String top char[]
      StackMap stack:
            aload 7
            areturn
        34: .line 144
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 5 /* value */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 7
        35: .line 146
            aload 4 /* br */
            ifnull 36
            aload 4 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        36: .line 144
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.io.BufferedReader java.lang.String top char[]
      StackMap stack:
            aload 7
            areturn
        end local 5 // java.lang.String value
        37: .line 145
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.io.BufferedReader
      StackMap stack: java.lang.Throwable
            astore 6
        38: .line 146
            aload 4 /* br */
            ifnull 39
            aload 4 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        39: .line 147
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.io.BufferedReader top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // java.io.BufferedReader br
        end local 3 // java.net.URL url
        40: .line 148
      StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        41: .line 149
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 3 /* ioe */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        42: .line 150
            aconst_null
            areturn
        end local 3 // java.io.IOException ioe
        43: .line 153
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 2 /* rb */
            ldc "Unknown.password.type."
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 154
            aload 0 /* modifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 153
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        46: .line 155
            aconst_null
            areturn
        end local 2 // java.util.ResourceBundle rb
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String modifier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   47     0  modifier  Ljava/lang/String;
            0   47     1       arg  Ljava/lang/String;
            0   47     2        rb  Ljava/util/ResourceBundle;
            4   12     3     value  Ljava/lang/String;
           14   40     3       url  Ljava/net/URL;
           18   27     4         f  Ljava/io/File;
           28   40     4        br  Ljava/io/BufferedReader;
           30   37     5     value  Ljava/lang/String;
           41   43     3       ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          14    15      16  Class java.net.MalformedURLException
          28    32      37  any
          34    35      37  any
          13    26      40  Class java.io.IOException
          27    33      40  Class java.io.IOException
          34    36      40  Class java.io.IOException
          37    40      40  Class java.io.IOException
    MethodParameters:
          Name  Flags
      modifier  
      arg       
      rb        
}
SourceFile: "KeyStoreUtil.java"