final class sun.security.ssl.TrustStoreManager$TrustAnchorManager
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.TrustStoreManager$TrustAnchorManager
super_class: java.lang.Object
{
private sun.security.ssl.TrustStoreManager$TrustStoreDescriptor descriptor;
descriptor: Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
flags: (0x0002) ACC_PRIVATE
private java.lang.ref.WeakReference<java.security.KeyStore> ksRef;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/WeakReference<Ljava/security/KeyStore;>;
private java.lang.ref.WeakReference<java.util.Set<java.security.cert.X509Certificate>> csRef;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/WeakReference<Ljava/util/Set<Ljava/security/cert/X509Certificate;>;>;
private final java.util.concurrent.locks.ReentrantLock tamLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
aconst_null
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
3: aload 0
new java.lang.ref.WeakReference
dup
aconst_null
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
4: aload 0
new java.lang.ref.WeakReference
dup
aconst_null
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.csRef:Ljava/lang/ref/WeakReference;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/TrustStoreManager$TrustAnchorManager;
java.security.KeyStore getKeyStore(sun.security.ssl.TrustStoreManager$TrustStoreDescriptor);
descriptor: (Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/security/KeyStore;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
astore 2
start local 2 1: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.security.KeyStore
astore 3
start local 3 2: aload 3
ifnull 4
aload 1
aload 2
invokevirtual sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 3
areturn
4: StackMap locals: sun.security.ssl.TrustStoreManager$TrustStoreDescriptor java.security.KeyStore
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.security.KeyStore
astore 3
6: aload 3
ifnull 10
aload 1
aload 2
invokevirtual sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.equals:(Ljava/lang/Object;)Z
ifeq 10
7: aload 3
astore 5
8: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 5
areturn
10: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 12
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 12
11: ldc "Reload the trust store"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.ssl.TrustStoreManager$TrustAnchorManager.loadKeyStore:(Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/security/KeyStore;
astore 3
13: aload 0
aload 1
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
14: aload 0
new java.lang.ref.WeakReference
dup
aload 3
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
15: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 4
17: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 4
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
20: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/ssl/TrustStoreManager$TrustAnchorManager;
0 21 1 descriptor Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
1 21 2 temporaryDesc Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
2 21 3 ks Ljava/security/KeyStore;
Exception table:
from to target type
5 8 16 any
10 16 16 any
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
descriptor
java.util.Set<java.security.cert.X509Certificate> getTrustedCerts(sun.security.ssl.TrustStoreManager$TrustStoreDescriptor);
descriptor: (Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/util/Set;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
astore 3
start local 3 2: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.csRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.util.Set
astore 4
start local 4 3: aload 4
ifnull 5
aload 1
aload 3
invokevirtual sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 4
areturn
5: StackMap locals: java.security.KeyStore sun.security.ssl.TrustStoreManager$TrustStoreDescriptor java.util.Set
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
6: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
astore 3
7: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.csRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.util.Set
astore 4
8: aload 4
ifnull 15
9: aload 1
aload 3
invokevirtual sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.equals:(Ljava/lang/Object;)Z
ifeq 13
10: aload 4
astore 6
11: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 6
areturn
13: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
14: goto 19
15: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.equals:(Ljava/lang/Object;)Z
ifeq 18
16: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast java.security.KeyStore
astore 2
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.descriptor:Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
19: StackMap locals:
StackMap stack:
aload 2
ifnonnull 24
20: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 22
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 22
21: ldc "Reload the trust store"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
22: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.ssl.TrustStoreManager$TrustAnchorManager.loadKeyStore:(Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/security/KeyStore;
astore 2
23: aload 0
new java.lang.ref.WeakReference
dup
aload 2
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.ksRef:Ljava/lang/ref/WeakReference;
24: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 26
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 26
25: ldc "Reload trust certs"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 2
invokestatic sun.security.ssl.TrustStoreManager$TrustAnchorManager.loadTrustedCerts:(Ljava/security/KeyStore;)Ljava/util/Set;
astore 4
27: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 29
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 29
28: new java.lang.StringBuilder
dup
ldc "Reloaded "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface java.util.Set.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " trust certs"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals:
StackMap stack:
aload 0
new java.lang.ref.WeakReference
dup
aload 4
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.csRef:Ljava/lang/ref/WeakReference;
30: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 5
32: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: aload 5
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustAnchorManager.tamLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
35: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/security/ssl/TrustStoreManager$TrustAnchorManager;
0 36 1 descriptor Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
1 36 2 ks Ljava/security/KeyStore;
2 36 3 temporaryDesc Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
3 36 4 certs Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
Exception table:
from to target type
6 11 31 any
13 31 31 any
Exceptions:
throws java.lang.Exception
Signature: (Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
descriptor
private static java.security.KeyStore loadKeyStore(sun.security.ssl.TrustStoreManager$TrustStoreDescriptor);
descriptor: (Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;)Ljava/security/KeyStore;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: ldc "NONE"
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
1: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeFile:Ljava/io/File;
ifnonnull 5
2: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 4
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 4
3: ldc "No available key store"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeProvider:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 8
6: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeType:Ljava/lang/String;
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
astore 1
start local 1 7: goto 10
end local 1 8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeType:Ljava/lang/String;
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeProvider:Ljava/lang/String;
9: invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
astore 1
start local 1 10: StackMap locals: java.security.KeyStore
StackMap stack:
aconst_null
astore 2
start local 2 11: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storePassword:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 13
12: aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storePassword:Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
astore 2
13: StackMap locals: char[]
StackMap stack:
ldc "NONE"
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
14: aconst_null
astore 3
aconst_null
astore 4
15: new sun.security.action.OpenFileInputStreamAction
dup
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeFile:Ljava/io/File;
invokespecial sun.security.action.OpenFileInputStreamAction.<init>:(Ljava/io/File;)V
16: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.io.FileInputStream
astore 5
start local 5 17: aload 1
aload 5
aload 2
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
18: aload 5
ifnull 30
aload 5
invokevirtual java.io.FileInputStream.close:()V
goto 30
StackMap locals: sun.security.ssl.TrustStoreManager$TrustStoreDescriptor java.security.KeyStore char[] java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack: java.lang.Throwable
19: astore 3
aload 5
ifnull 20
aload 5
invokevirtual java.io.FileInputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
20: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 4
aload 3
ifnonnull 22
aload 4
astore 3
goto 23
StackMap locals:
StackMap stack:
22: aload 3
aload 4
if_acmpeq 23
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
23: aload 3
athrow
StackMap locals: sun.security.ssl.TrustStoreManager$TrustStoreDescriptor java.security.KeyStore char[]
StackMap stack: java.io.FileNotFoundException
24: pop
25: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 28
ldc "trustmanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 28
26: new java.lang.StringBuilder
dup
ldc "Not available key store: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.TrustStoreManager$TrustStoreDescriptor.storeName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
27: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
aconst_null
areturn
29: StackMap locals:
StackMap stack:
aload 1
aconst_null
aload 2
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
30: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 descriptor Lsun/security/ssl/TrustStoreManager$TrustStoreDescriptor;
7 8 1 ks Ljava/security/KeyStore;
10 31 1 ks Ljava/security/KeyStore;
11 31 2 password [C
17 20 5 fis Ljava/io/FileInputStream;
Exception table:
from to target type
17 18 19 any
15 21 21 any
14 24 24 Class java.io.FileNotFoundException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
descriptor
private static java.util.Set<java.security.cert.X509Certificate> loadTrustedCerts(java.security.KeyStore);
descriptor: (Ljava/security/KeyStore;)Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.security.validator.TrustStoreUtil.getTrustedCerts:(Ljava/security/KeyStore;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ks Ljava/security/KeyStore;
Signature: (Ljava/security/KeyStore;)Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
ks
}
SourceFile: "TrustStoreManager.java"
NestHost: sun.security.ssl.TrustStoreManager
InnerClasses:
private final TrustAnchorManager = sun.security.ssl.TrustStoreManager$TrustAnchorManager of sun.security.ssl.TrustStoreManager
private final TrustStoreDescriptor = sun.security.ssl.TrustStoreManager$TrustStoreDescriptor of sun.security.ssl.TrustStoreManager