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.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: invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
putstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
1: getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
iconst_0
invokevirtual java.text.Collator.setStrength:(I)V
2: 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 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/tools/KeyStoreUtil;
public static boolean isSelfSigned(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokestatic sun.security.tools.KeyStoreUtil.signedBy:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 cert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
cert
public static boolean signedBy(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack: java.lang.Exception
pop
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 end Ljava/security/cert/X509Certificate;
0 6 1 ca Ljava/security/cert/X509Certificate;
Exception table:
from to target type
2 3 4 Class java.lang.Exception
MethodParameters:
Name Flags
end
ca
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 0: aload 0
ldc "Windows-MY"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 3
1: aload 0
ldc "Windows-ROOT"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 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 0: aload 0
ldc "Windows-MY"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 2
1: ldc "Windows-MY"
areturn
2: StackMap locals:
StackMap stack:
aload 0
ldc "Windows-ROOT"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 4
3: ldc "Windows-ROOT"
areturn
4: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 storetype Ljava/lang/String;
MethodParameters:
Name Flags
storetype
public static java.lang.String getCacerts();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.io.File.separator:Ljava/lang/String;
astore 0
start local 0 1: 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
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "lib"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
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
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "cacerts"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 sep Ljava/lang/String;
public static java.security.KeyStore getCacertsKeyStore();
descriptor: ()Ljava/security/KeyStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: new java.io.File
dup
invokestatic sun.security.tools.KeyStoreUtil.getCacerts:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 0
start local 0 1: aload 0
invokevirtual java.io.File.exists:()Z
ifne 3
2: aconst_null
areturn
3: StackMap locals: java.io.File
StackMap stack:
aload 0
aconst_null
invokestatic java.security.KeyStore.getInstance:(Ljava/io/File;[C)Ljava/security/KeyStore;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 file Ljava/io/File;
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 start local 1 start local 2 0: aload 0
ifnonnull 2
1: aload 1
invokevirtual java.lang.String.toCharArray:()[C
areturn
2: StackMap locals:
StackMap stack:
getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
aload 0
ldc "env"
invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
ifne 12
3: aload 1
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 4: aload 3
ifnonnull 11
5: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
aload 2
6: ldc "Cannot.find.environment.variable."
7: 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: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: aconst_null
areturn
11: StackMap locals: java.lang.String
StackMap stack:
aload 3
invokevirtual java.lang.String.toCharArray:()[C
areturn
end local 3 12: StackMap locals:
StackMap stack:
getstatic sun.security.tools.KeyStoreUtil.collator:Ljava/text/Collator;
aload 0
ldc "file"
invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
ifne 49
13: aconst_null
astore 3
start local 3 14: new java.net.URL
dup
aload 1
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 3
15: goto 27
StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL
StackMap stack: java.net.MalformedURLException
16: pop
17: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
start local 4 18: aload 4
invokevirtual java.io.File.exists:()Z
ifeq 21
19: aload 4
invokevirtual java.io.File.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
astore 3
20: goto 27
21: StackMap locals: java.io.File
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
aload 2
22: ldc "Cannot.find.file."
23: 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: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: aconst_null
areturn
end local 4 27: StackMap locals:
StackMap stack:
aconst_null
astore 4
aconst_null
astore 5
28: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
29: aload 3
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
30: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
31: astore 6
start local 6 32: aload 6
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 7
start local 7 33: aload 7
ifnonnull 37
34: iconst_0
newarray 5
35: aload 6
ifnull 36
aload 6
invokevirtual java.io.BufferedReader.close:()V
36: StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
StackMap stack: char[]
areturn
37: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.String.toCharArray:()[C
38: aload 6
ifnull 39
aload 6
invokevirtual java.io.BufferedReader.close:()V
39: StackMap locals:
StackMap stack: char[]
areturn
end local 7 StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle java.net.URL java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack: java.lang.Throwable
40: astore 4
41: aload 6
ifnull 42
aload 6
invokevirtual java.io.BufferedReader.close:()V
end local 6 StackMap locals:
StackMap stack:
42: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 5
aload 4
ifnonnull 44
aload 5
astore 4
goto 45
StackMap locals:
StackMap stack:
44: aload 4
aload 5
if_acmpeq 45
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
45: aload 4
athrow
end local 3 46: StackMap locals: java.lang.String java.lang.String java.util.ResourceBundle
StackMap stack: java.io.IOException
astore 3
start local 3 47: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 3
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
48: aconst_null
areturn
end local 3 49: StackMap locals:
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
aload 2
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
50: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
52: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 modifier Ljava/lang/String;
0 53 1 arg Ljava/lang/String;
0 53 2 rb Ljava/util/ResourceBundle;
4 12 3 value Ljava/lang/String;
14 46 3 url Ljava/net/URL;
18 27 4 f Ljava/io/File;
32 42 6 br Ljava/io/BufferedReader;
33 40 7 value Ljava/lang/String;
47 49 3 ioe Ljava/io/IOException;
Exception table:
from to target type
14 15 16 Class java.net.MalformedURLException
32 35 40 any
37 38 40 any
28 36 43 any
37 39 43 any
40 43 43 any
13 26 46 Class java.io.IOException
27 36 46 Class java.io.IOException
37 39 46 Class java.io.IOException
40 46 46 Class java.io.IOException
MethodParameters:
Name Flags
modifier
arg
rb
private static void parseArgsLine(java.util.List<java.lang.String>, java.lang.String);
descriptor: (Ljava/util/List;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.io.StreamTokenizer
dup
new java.io.StringReader
dup
aload 1
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
invokespecial java.io.StreamTokenizer.<init>:(Ljava/io/Reader;)V
astore 2
start local 2 1: aload 2
invokevirtual java.io.StreamTokenizer.resetSyntax:()V
2: aload 2
iconst_0
bipush 32
invokevirtual java.io.StreamTokenizer.whitespaceChars:(II)V
3: aload 2
bipush 33
sipush 255
invokevirtual java.io.StreamTokenizer.wordChars:(II)V
4: aload 2
bipush 34
invokevirtual java.io.StreamTokenizer.quoteChar:(I)V
5: aload 2
bipush 39
invokevirtual java.io.StreamTokenizer.quoteChar:(I)V
6: StackMap locals: java.io.StreamTokenizer
StackMap stack:
aload 2
invokevirtual java.io.StreamTokenizer.nextToken:()I
iconst_m1
if_icmpne 8
7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield java.io.StreamTokenizer.sval:Ljava/lang/String;
invokestatic sun.security.util.PropertyExpander.expand:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: goto 6
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 list Ljava/util/List<Ljava/lang/String;>;
0 11 1 s Ljava/lang/String;
1 11 2 st Ljava/io/StreamTokenizer;
Exceptions:
throws java.io.IOException, sun.security.util.PropertyExpander$ExpandException
Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
list
s
public static java.lang.String[] expandArgs(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 1: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 6
start local 6 2: aload 6
new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
3: aload 6
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".all"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 4: aload 7
ifnull 6
5: aload 5
aload 7
invokestatic sun.security.tools.KeyStoreUtil.parseArgsLine:(Ljava/util/List;Ljava/lang/String;)V
6: StackMap locals: java.util.List java.util.Properties java.lang.String
StackMap stack:
aload 6
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 7: aconst_null
astore 9
start local 9 8: aload 3
ifnull 10
9: aload 6
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 9
10: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 8
ifnull 14
aload 9
ifnull 14
11: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Cannot have both "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " as pre-configured options"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 8
ifnonnull 16
15: aload 9
astore 8
16: StackMap locals:
StackMap stack:
aload 8
ifnull 18
17: aload 5
aload 8
invokestatic sun.security.tools.KeyStoreUtil.parseArgsLine:(Ljava/util/List;Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.List.isEmpty:()Z
ifeq 20
19: aload 4
areturn
20: StackMap locals:
StackMap stack:
aload 5
aload 4
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
21: aload 5
aload 5
invokeinterface java.util.List.size:()I
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 tool Ljava/lang/String;
0 22 1 file Ljava/lang/String;
0 22 2 c1 Ljava/lang/String;
0 22 3 c2 Ljava/lang/String;
0 22 4 args [Ljava/lang/String;
1 22 5 result Ljava/util/List<Ljava/lang/String;>;
2 22 6 p Ljava/util/Properties;
4 22 7 s Ljava/lang/String;
7 22 8 s1 Ljava/lang/String;
8 22 9 s2 Ljava/lang/String;
Exceptions:
throws java.io.IOException, sun.security.util.PropertyExpander$ExpandException
MethodParameters:
Name Flags
tool
file
c1
c2
args
public static void loadProviderByName(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
astore 2
start local 2 1: aload 2
ifnull 6
2: aload 1
ifnull 5
3: aload 2
aload 1
invokevirtual java.security.Provider.configure:(Ljava/lang/String;)Ljava/security/Provider;
astore 2
4: aload 2
invokestatic java.security.Security.addProvider:(Ljava/security/Provider;)I
pop
5: StackMap locals: java.security.Provider
StackMap stack:
return
6: StackMap locals:
StackMap stack:
ldc Ljava/security/Provider;
7: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
8: invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: java.lang.String java.lang.String java.security.Provider top java.util.Iterator
StackMap stack:
9: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Provider
astore 3
start local 3 10: aload 3
invokevirtual java.security.Provider.getName:()Ljava/lang/String;
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
11: aload 1
ifnull 13
12: aload 3
aload 1
invokevirtual java.security.Provider.configure:(Ljava/lang/String;)Ljava/security/Provider;
astore 3
13: StackMap locals: java.lang.String java.lang.String java.security.Provider java.security.Provider java.util.Iterator
StackMap stack:
aload 3
invokestatic java.security.Security.addProvider:(Ljava/security/Provider;)I
pop
14: return
end local 3 15: StackMap locals: java.lang.String java.lang.String java.security.Provider top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
16: new java.lang.IllegalArgumentException
dup
ldc "No provider found"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 provName Ljava/lang/String;
0 17 1 arg Ljava/lang/String;
1 17 2 loaded Ljava/security/Provider;
10 15 3 p Ljava/security/Provider;
MethodParameters:
Name Flags
provName
arg
public static void loadProviderByClass(java.lang.String, java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "sun.security.pkcs11.SunPKCS11"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: ldc "SunPKCS11"
aload 1
invokestatic sun.security.tools.KeyStoreUtil.loadProviderByName:(Ljava/lang/String;Ljava/lang/String;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
ldc "com.oracle.security.crypto.UcryptoProvider"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
4: ldc "OracleUcrypto"
aload 1
invokestatic sun.security.tools.KeyStoreUtil.loadProviderByName:(Ljava/lang/String;Ljava/lang/String;)V
5: return
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
aload 2
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 4
start local 4 7: aload 4
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.Provider
astore 3
end local 4 start local 3 8: goto 11
end local 3 StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
9: astore 4
start local 4 10: new java.lang.IllegalArgumentException
dup
aload 4
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 11: StackMap locals: java.security.Provider
StackMap stack:
aload 1
ifnull 13
12: aload 3
aload 1
invokevirtual java.security.Provider.configure:(Ljava/lang/String;)Ljava/security/Provider;
astore 3
13: StackMap locals:
StackMap stack:
aload 3
invokestatic java.security.Security.addProvider:(Ljava/security/Provider;)I
pop
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 provClass Ljava/lang/String;
0 15 1 arg Ljava/lang/String;
0 15 2 cl Ljava/lang/ClassLoader;
8 9 3 prov Ljava/security/Provider;
11 15 3 prov Ljava/security/Provider;
7 8 4 clazz Ljava/lang/Class<*>;
10 11 4 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
6 8 9 Class java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
provClass
arg
cl
}
SourceFile: "KeyStoreUtil.java"
InnerClasses:
public ExpandException = sun.security.util.PropertyExpander$ExpandException of sun.security.util.PropertyExpander