public final class sun.security.provider.certpath.ssl.SSLServerCertStore extends java.security.cert.CertStoreSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.provider.certpath.ssl.SSLServerCertStore
super_class: java.security.cert.CertStoreSpi
{
private final java.net.URI uri;
descriptor: Ljava/net/URI;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager trustManager;
descriptor: Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final javax.net.ssl.SSLSocketFactory socketFactory;
descriptor: Ljavax/net/ssl/SSLSocketFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final javax.net.ssl.HostnameVerifier hostnameVerifier;
descriptor: Ljavax/net/ssl/HostnameVerifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=2, args_size=0
0: new sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager
dup
invokespecial sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.<init>:()V
putstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
1: new sun.security.provider.certpath.ssl.SSLServerCertStore$1
dup
invokespecial sun.security.provider.certpath.ssl.SSLServerCertStore$1.<init>:()V
putstatic sun.security.provider.certpath.ssl.SSLServerCertStore.hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
2: ldc "SSL"
invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
astore 1
start local 1 3: aload 1
aconst_null
iconst_1
anewarray javax.net.ssl.TrustManager
dup
iconst_0
getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
aastore
aconst_null
invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
4: aload 1
invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
astore 0
end local 1 start local 0 5: goto 8
end local 0 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
6: pop
7: aconst_null
astore 0
start local 0 8: StackMap locals: javax.net.ssl.SSLSocketFactory
StackMap stack:
aload 0
putstatic sun.security.provider.certpath.ssl.SSLServerCertStore.socketFactory:Ljavax/net/ssl/SSLSocketFactory;
end local 0 9: return
LocalVariableTable:
Start End Slot Name Signature
5 6 0 tempFactory Ljavax/net/ssl/SSLSocketFactory;
8 9 0 tempFactory Ljavax/net/ssl/SSLSocketFactory;
3 5 1 context Ljavax/net/ssl/SSLContext;
Exception table:
from to target type
2 5 6 Class java.security.GeneralSecurityException
void <init>(java.net.URI);
descriptor: (Ljava/net/URI;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
invokespecial java.security.cert.CertStoreSpi.<init>:(Ljava/security/cert/CertStoreParameters;)V
1: aload 0
aload 1
putfield sun.security.provider.certpath.ssl.SSLServerCertStore.uri:Ljava/net/URI;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/certpath/ssl/SSLServerCertStore;
0 3 1 uri Ljava/net/URI;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
uri
public java.util.Collection<java.security.cert.X509Certificate> engineGetCertificates(java.security.cert.CertSelector);
descriptor: (Ljava/security/cert/CertSelector;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.certpath.ssl.SSLServerCertStore.uri:Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 2
start local 2 1: aload 2
instanceof javax.net.ssl.HttpsURLConnection
ifeq 31
2: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.socketFactory:Ljavax/net/ssl/SSLSocketFactory;
ifnonnull 6
3: new java.security.cert.CertStoreException
dup
4: ldc "No initialized SSLSocketFactory"
5: invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.net.URLConnection
StackMap stack:
aload 2
checkcast javax.net.ssl.HttpsURLConnection
astore 3
start local 3 7: aload 3
getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.socketFactory:Ljavax/net/ssl/SSLSocketFactory;
invokevirtual javax.net.ssl.HttpsURLConnection.setSSLSocketFactory:(Ljavax/net/ssl/SSLSocketFactory;)V
8: aload 3
getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
invokevirtual javax.net.ssl.HttpsURLConnection.setHostnameVerifier:(Ljavax/net/ssl/HostnameVerifier;)V
9: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
dup
astore 4
monitorenter
10: aload 3
invokevirtual javax.net.ssl.HttpsURLConnection.connect:()V
11: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
getfield sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.serverChain:Ljava/util/List;
aload 1
12: invokestatic sun.security.provider.certpath.ssl.SSLServerCertStore.getMatchingCerts:(Ljava/util/List;Ljava/security/cert/CertSelector;)Ljava/util/List;
astore 7
13: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
invokevirtual sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.cleanup:()V
14: aload 4
monitorexit
15: aload 7
areturn
16: StackMap locals: sun.security.provider.certpath.ssl.SSLServerCertStore java.security.cert.CertSelector java.net.URLConnection javax.net.ssl.HttpsURLConnection sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager
StackMap stack: java.io.IOException
astore 5
start local 5 17: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
getfield sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.exchangedServerCerts:Z
ifeq 23
18: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
getfield sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.serverChain:Ljava/util/List;
aload 1
19: invokestatic sun.security.provider.certpath.ssl.SSLServerCertStore.getMatchingCerts:(Ljava/util/List;Ljava/security/cert/CertSelector;)Ljava/util/List;
astore 7
20: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
invokevirtual sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.cleanup:()V
21: aload 4
monitorexit
22: aload 7
areturn
23: StackMap locals: java.io.IOException
StackMap stack:
aload 5
athrow
end local 5 24: StackMap locals: sun.security.provider.certpath.ssl.SSLServerCertStore java.security.cert.CertSelector java.net.URLConnection javax.net.ssl.HttpsURLConnection sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager
StackMap stack: java.lang.Throwable
astore 6
25: getstatic sun.security.provider.certpath.ssl.SSLServerCertStore.trustManager:Lsun/security/provider/certpath/ssl/SSLServerCertStore$GetChainTrustManager;
invokevirtual sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager.cleanup:()V
26: aload 6
athrow
27: StackMap locals:
StackMap stack: java.lang.Throwable
aload 4
monitorexit
28: athrow
end local 3 end local 2 29: StackMap locals: sun.security.provider.certpath.ssl.SSLServerCertStore java.security.cert.CertSelector
StackMap stack: java.io.IOException
astore 2
start local 2 30: new java.security.cert.CertStoreException
dup
aload 2
invokespecial java.security.cert.CertStoreException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 31: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/provider/certpath/ssl/SSLServerCertStore;
0 32 1 selector Ljava/security/cert/CertSelector;
1 29 2 urlConn Ljava/net/URLConnection;
7 29 3 https Ljavax/net/ssl/HttpsURLConnection;
17 24 5 ioe Ljava/io/IOException;
30 31 2 ioe Ljava/io/IOException;
Exception table:
from to target type
10 13 16 Class java.io.IOException
10 13 24 any
16 20 24 any
23 24 24 any
10 15 27 any
16 22 27 any
23 28 27 any
0 15 29 Class java.io.IOException
16 22 29 Class java.io.IOException
23 29 29 Class java.io.IOException
Exceptions:
throws java.security.cert.CertStoreException
Signature: (Ljava/security/cert/CertSelector;)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
selector
private static java.util.List<java.security.cert.X509Certificate> getMatchingCerts(java.util.List<java.security.cert.X509Certificate>, java.security.cert.CertSelector);
descriptor: (Ljava/util/List;Ljava/security/cert/CertSelector;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 3: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: java.util.List java.security.cert.CertSelector java.util.List top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 5: aload 1
aload 3
invokeinterface java.security.cert.CertSelector.match:(Ljava/security/cert/Certificate;)Z
ifeq 7
6: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 certs Ljava/util/List<Ljava/security/cert/X509Certificate;>;
0 9 1 selector Ljava/security/cert/CertSelector;
3 9 2 matchedCerts Ljava/util/List<Ljava/security/cert/X509Certificate;>;
5 7 3 cert Ljava/security/cert/X509Certificate;
Signature: (Ljava/util/List<Ljava/security/cert/X509Certificate;>;Ljava/security/cert/CertSelector;)Ljava/util/List<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
certs
selector
public java.util.Collection<java.security.cert.X509CRL> engineGetCRLs(java.security.cert.CRLSelector);
descriptor: (Ljava/security/cert/CRLSelector;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/ssl/SSLServerCertStore;
0 1 1 selector Ljava/security/cert/CRLSelector;
Exceptions:
throws java.security.cert.CertStoreException
Signature: (Ljava/security/cert/CRLSelector;)Ljava/util/Collection<Ljava/security/cert/X509CRL;>;
MethodParameters:
Name Flags
selector
static java.security.cert.CertStore getInstance(java.net.URI);
descriptor: (Ljava/net/URI;)Ljava/security/cert/CertStore;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new sun.security.provider.certpath.ssl.SSLServerCertStore$CS
dup
new sun.security.provider.certpath.ssl.SSLServerCertStore
dup
aload 0
invokespecial sun.security.provider.certpath.ssl.SSLServerCertStore.<init>:(Ljava/net/URI;)V
aconst_null
ldc "SSLServer"
aconst_null
invokespecial sun.security.provider.certpath.ssl.SSLServerCertStore$CS.<init>:(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 uri Ljava/net/URI;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
uri
}
SourceFile: "SSLServerCertStore.java"
NestMembers:
sun.security.provider.certpath.ssl.SSLServerCertStore$1 sun.security.provider.certpath.ssl.SSLServerCertStore$CS sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager
InnerClasses:
sun.security.provider.certpath.ssl.SSLServerCertStore$1
private CS = sun.security.provider.certpath.ssl.SSLServerCertStore$CS of sun.security.provider.certpath.ssl.SSLServerCertStore
private GetChainTrustManager = sun.security.provider.certpath.ssl.SSLServerCertStore$GetChainTrustManager of sun.security.provider.certpath.ssl.SSLServerCertStore