public final class sun.security.provider.certpath.SunCertPathBuilder extends java.security.cert.CertPathBuilderSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.provider.certpath.SunCertPathBuilder
super_class: java.security.cert.CertPathBuilderSpi
{
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private sun.security.provider.certpath.PKIX$BuilderParams buildParams;
descriptor: Lsun/security/provider/certpath/PKIX$BuilderParams;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.CertificateFactory cf;
descriptor: Ljava/security/cert/CertificateFactory;
flags: (0x0002) ACC_PRIVATE
private boolean pathCompleted;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.security.cert.PolicyNode policyTreeResult;
descriptor: Ljava/security/cert/PolicyNode;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.TrustAnchor trustAnchor;
descriptor: Ljava/security/cert/TrustAnchor;
flags: (0x0002) ACC_PRIVATE
private java.security.PublicKey finalPublicKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "certpath"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.security.cert.CertPathBuilderSpi.<init>:()V
1: aload 0
iconst_0
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
2: aload 0
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
putfield sun.security.provider.certpath.SunCertPathBuilder.cf:Ljava/security/cert/CertificateFactory;
3: goto 6
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder
StackMap stack: java.security.cert.CertificateException
4: astore 1
start local 1 5: new java.security.cert.CertPathBuilderException
dup
aload 1
invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
5 6 1 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
2 3 4 Class java.security.cert.CertificateException
Exceptions:
throws java.security.cert.CertPathBuilderException
public java.security.cert.CertPathChecker engineGetRevocationChecker();
descriptor: ()Ljava/security/cert/CertPathChecker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new sun.security.provider.certpath.RevocationChecker
dup
invokespecial sun.security.provider.certpath.RevocationChecker.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
public java.security.cert.CertPathBuilderResult engineBuild(java.security.cert.CertPathParameters);
descriptor: (Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.engineBuild("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic sun.security.provider.certpath.PKIX.checkBuilderParams:(Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$BuilderParams;
putfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
3: aload 0
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.build:()Ljava/security/cert/PKIXCertPathBuilderResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 4 1 params Ljava/security/cert/CertPathParameters;
Exceptions:
throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
private java.security.cert.PKIXCertPathBuilderResult build();
descriptor: ()Ljava/security/cert/PKIXCertPathBuilderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
iconst_0
aload 1
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildCertPath:(ZLjava/util/List;)Ljava/security/cert/PKIXCertPathBuilderResult;
astore 2
start local 2 2: aload 2
ifnonnull 11
3: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 5
4: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.engineBuild: 2nd pass; try building again searching all certstores"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
5: StackMap locals: java.util.List java.security.cert.PKIXCertPathBuilderResult
StackMap stack:
aload 1
invokeinterface java.util.List.clear:()V
6: aload 0
iconst_1
aload 1
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildCertPath:(ZLjava/util/List;)Ljava/security/cert/PKIXCertPathBuilderResult;
astore 2
7: aload 2
ifnonnull 11
8: new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
9: new sun.security.provider.certpath.AdjacencyList
dup
aload 1
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
10: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
1 12 1 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
2 12 2 result Ljava/security/cert/PKIXCertPathBuilderResult;
Exceptions:
throws java.security.cert.CertPathBuilderException
private java.security.cert.PKIXCertPathBuilderResult buildCertPath(boolean, java.util.List<java.util.List<sun.security.provider.certpath.Vertex>>);
descriptor: (ZLjava/util/List;)Ljava/security/cert/PKIXCertPathBuilderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
1: aload 0
aconst_null
putfield sun.security.provider.certpath.SunCertPathBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
2: aload 0
aconst_null
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
3: aload 0
aconst_null
putfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
4: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
start local 3 5: aload 0
aload 2
aload 3
iload 1
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildForward:(Ljava/util/List;Ljava/util/LinkedList;Z)V
6: goto 15
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder int java.util.List java.util.LinkedList
StackMap stack: java.lang.Exception
7: astore 4
start local 4 8: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 11
9: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.engineBuild() exception in build"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
10: aload 4
invokevirtual java.lang.Exception.printStackTrace:()V
11: StackMap locals: java.lang.Exception
StackMap stack:
new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
12: aload 4
13: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
14: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 33
16: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 18
17: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.engineBuild() pathCompleted"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 3
invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
19: new sun.security.provider.certpath.SunCertPathBuilderResult
dup
20: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.cf:Ljava/security/cert/CertificateFactory;
aload 3
invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
21: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
22: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
23: invokespecial sun.security.provider.certpath.SunCertPathBuilderResult.<init>:(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;Lsun/security/provider/certpath/AdjacencyList;)V
24: areturn
25: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 26: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 29
27: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.engineBuild() exception in wrap-up"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
28: aload 4
invokevirtual java.security.cert.CertificateException.printStackTrace:()V
29: StackMap locals: java.security.cert.CertificateException
StackMap stack:
new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
30: aload 4
31: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
32: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 4 33: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 34 1 searchAllCertStores Z
0 34 2 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
5 34 3 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
8 15 4 e Ljava/lang/Exception;
26 33 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
5 6 7 Class java.security.GeneralSecurityException
5 6 7 Class java.io.IOException
15 24 25 Class java.security.cert.CertificateException
Exceptions:
throws java.security.cert.CertPathBuilderException
Signature: (ZLjava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;)Ljava/security/cert/PKIXCertPathBuilderResult;
MethodParameters:
Name Flags
searchAllCertStores
adjList
private void buildForward(java.util.List<java.util.List<sun.security.provider.certpath.Vertex>>, java.util.LinkedList<java.security.cert.X509Certificate>, );
descriptor: (Ljava/util/List;Ljava/util/LinkedList;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.buildForward()..."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
new sun.security.provider.certpath.ForwardState
dup
invokespecial sun.security.provider.certpath.ForwardState.<init>:()V
astore 4
start local 4 3: aload 4
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.certPathCheckers:()Ljava/util/List;
invokevirtual sun.security.provider.certpath.ForwardState.initState:(Ljava/util/List;)V
4: aload 1
invokeinterface java.util.List.clear:()V
5: aload 1
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 4
new sun.security.provider.certpath.UntrustedChecker
dup
invokespecial sun.security.provider.certpath.UntrustedChecker.<init>:()V
putfield sun.security.provider.certpath.ForwardState.untrustedChecker:Lsun/security/provider/certpath/UntrustedChecker;
7: aload 0
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetSubject:()Ljavax/security/auth/x500/X500Principal;
aload 4
8: new sun.security.provider.certpath.ForwardBuilder
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
9: iload 3
10: invokespecial sun.security.provider.certpath.ForwardBuilder.<init>:(Lsun/security/provider/certpath/PKIX$BuilderParams;Z)V
11: aload 1
aload 2
12: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.depthFirstSearchForward:(Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ForwardState;Lsun/security/provider/certpath/ForwardBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 14 1 adjacencyList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 14 2 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
0 14 3 searchAllCertStores Z
3 14 4 currentState Lsun/security/provider/certpath/ForwardState;
Exceptions:
throws java.security.GeneralSecurityException, java.io.IOException
Signature: (Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;Z)V
MethodParameters:
Name Flags
adjacencyList
certPathList
searchAllCertStores
private void depthFirstSearchForward(javax.security.auth.x500.X500Principal, sun.security.provider.certpath.ForwardState, sun.security.provider.certpath.ForwardBuilder, java.util.List<java.util.List<sun.security.provider.certpath.Vertex>>, java.util.LinkedList<java.security.cert.X509Certificate>);
descriptor: (Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ForwardState;Lsun/security/provider/certpath/ForwardBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=26, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 4
1: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual sun.security.provider.certpath.ForwardState.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 3
aload 2
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.certStores:()Ljava/util/List;
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingCerts:(Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
5: astore 6
start local 6 6: aload 6
aload 4
invokestatic sun.security.provider.certpath.SunCertPathBuilder.addVertices:(Ljava/util/Collection;Ljava/util/List;)Ljava/util/List;
astore 7
start local 7 7: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 11
8: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward(): certs.size="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 7
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
11: StackMap locals: java.util.Collection java.util.List
StackMap stack:
aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 179
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
12: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.Vertex
astore 8
start local 8 13: aload 2
invokevirtual sun.security.provider.certpath.ForwardState.clone:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.ForwardState
astore 10
start local 10 14: aload 8
invokevirtual sun.security.provider.certpath.Vertex.getCertificate:()Ljava/security/cert/X509Certificate;
astore 11
start local 11 15: aload 3
aload 11
aload 10
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.verifyCert:(Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List;)V
16: goto 25
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate
StackMap stack: java.security.GeneralSecurityException
17: astore 12
start local 12 18: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 23
19: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward(): validation failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
22: aload 12
invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
23: StackMap locals: java.security.GeneralSecurityException
StackMap stack:
aload 8
aload 12
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
24: goto 179
end local 12 25: StackMap locals:
StackMap stack:
aload 3
aload 11
invokevirtual sun.security.provider.certpath.ForwardBuilder.isPathCompleted:(Ljava/security/cert/X509Certificate;)Z
ifeq 167
26: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 28
27: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchForward(): commencing final verification"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 5
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 12
start local 12 29: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 31
30: aload 12
iconst_0
aload 11
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
31: StackMap locals: java.util.List
StackMap stack:
ldc "2.5.29.32.0"
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
32: astore 13
start local 13 33: new sun.security.provider.certpath.PolicyNodeImpl
dup
aconst_null
34: ldc "2.5.29.32.0"
aconst_null
iconst_0
aload 13
iconst_0
35: invokespecial sun.security.provider.certpath.PolicyNodeImpl.<init>:(Lsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;ZLjava/util/Set;Z)V
astore 14
start local 14 36: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 15
start local 15 37: new sun.security.provider.certpath.PolicyChecker
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.initialPolicies:()Ljava/util/Set;
38: aload 12
invokeinterface java.util.List.size:()I
39: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
40: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.policyMappingInhibited:()Z
41: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.anyPolicyInhibited:()Z
42: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.policyQualifiersRejected:()Z
43: aload 14
44: invokespecial sun.security.provider.certpath.PolicyChecker.<init>:(Ljava/util/Set;IZZZZLsun/security/provider/certpath/PolicyNodeImpl;)V
45: astore 16
start local 16 46: aload 15
aload 16
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
47: aload 15
new sun.security.provider.certpath.AlgorithmChecker
dup
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
48: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.variant:()Ljava/lang/String;
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;)V
49: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
50: aconst_null
astore 17
start local 17 51: aload 10
invokevirtual sun.security.provider.certpath.ForwardState.keyParamsNeeded:()Z
ifeq 69
52: aload 11
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 18
start local 18 53: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 61
54: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
astore 18
55: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 61
56: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
57: new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward using buildParams public key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
58: aload 18
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
59: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
61: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker java.security.PublicKey
StackMap stack:
new java.security.cert.TrustAnchor
dup
62: aload 11
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 18
aconst_null
63: invokespecial java.security.cert.TrustAnchor.<init>:(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;[B)V
astore 19
start local 19 64: new sun.security.provider.certpath.BasicChecker
dup
aload 19
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
65: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
66: iconst_1
67: invokespecial sun.security.provider.certpath.BasicChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;Z)V
astore 17
68: aload 15
aload 17
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 19 end local 18 69: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.cf:Ljava/security/cert/CertificateFactory;
aload 12
invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.setCertPath:(Ljava/security/cert/CertPath;)V
70: iconst_0
istore 18
start local 18 71: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.certPathCheckers:()Ljava/util/List;
astore 19
start local 19 72: aload 19
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 21
goto 84
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List top java.util.Iterator
StackMap stack:
73: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 20
start local 20 74: aload 20
instanceof java.security.cert.PKIXRevocationChecker
ifeq 84
75: iload 18
ifeq 79
76: new java.security.cert.CertPathValidatorException
dup
77: ldc "Only one PKIXRevocationChecker can be specified"
78: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
79: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List java.security.cert.PKIXCertPathChecker java.util.Iterator
StackMap stack:
iconst_1
istore 18
80: aload 20
instanceof sun.security.provider.certpath.RevocationChecker
ifeq 84
81: aload 20
checkcast sun.security.provider.certpath.RevocationChecker
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
82: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
83: invokevirtual sun.security.provider.certpath.RevocationChecker.init:(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)V
end local 20 84: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List top java.util.Iterator
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 73
85: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.revocationEnabled:()Z
ifeq 89
iload 18
ifne 89
86: aload 15
new sun.security.provider.certpath.RevocationChecker
dup
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
87: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokespecial sun.security.provider.certpath.RevocationChecker.<init>:(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)V
88: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
89: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List
StackMap stack:
aload 15
aload 19
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
90: iconst_0
istore 20
start local 20 91: goto 150
92: StackMap locals: int
StackMap stack:
aload 12
iload 20
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 21
start local 21 93: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 97
94: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "current subject = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
95: aload 21
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
96: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
97: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 21
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
98: astore 22
start local 22 99: aload 22
ifnonnull 101
100: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 22
101: StackMap locals: java.util.Set
StackMap stack:
aload 15
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 123
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List int java.security.cert.X509Certificate java.util.Set top java.util.Iterator
StackMap stack:
102: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 23
start local 23 103: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifne 123
104: iload 20
ifne 109
105: aload 23
iconst_0
invokevirtual java.security.cert.PKIXCertPathChecker.init:(Z)V
106: aload 23
instanceof sun.security.provider.certpath.AlgorithmChecker
ifeq 109
107: aload 23
checkcast sun.security.provider.certpath.AlgorithmChecker
108: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual sun.security.provider.certpath.AlgorithmChecker.trySetTrustAnchor:(Ljava/security/cert/TrustAnchor;)V
109: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List int java.security.cert.X509Certificate java.util.Set java.security.cert.PKIXCertPathChecker java.util.Iterator
StackMap stack:
aload 23
aload 21
aload 22
invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
110: goto 123
StackMap locals:
StackMap stack: java.security.cert.CertPathValidatorException
111: astore 25
start local 25 112: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 118
113: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
114: new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward(): final verification failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
115: aload 25
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
116: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
117: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
118: StackMap locals: java.security.cert.CertPathValidatorException
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetCertConstraints:()Ljava/security/cert/CertSelector;
aload 21
invokeinterface java.security.cert.CertSelector.match:(Ljava/security/cert/Certificate;)Z
ifeq 121
119: aload 25
invokevirtual java.security.cert.CertPathValidatorException.getReason:()Ljava/security/cert/CertPathValidatorException$Reason;
getstatic java.security.cert.CertPathValidatorException$BasicReason.REVOKED:Ljava/security/cert/CertPathValidatorException$BasicReason;
if_acmpne 121
120: aload 25
athrow
121: StackMap locals:
StackMap stack:
aload 8
aload 25
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
122: goto 179
end local 25 end local 23 123: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List int java.security.cert.X509Certificate java.util.Set top java.util.Iterator
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 102
124: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.certPathCheckers:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 131
StackMap locals:
StackMap stack:
125: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 23
start local 23 126: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifeq 131
127: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
128: astore 25
start local 25 129: aload 25
ifnull 131
130: aload 22
aload 25
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
end local 25 end local 23 131: StackMap locals:
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 125
132: aload 22
invokeinterface java.util.Set.isEmpty:()Z
ifne 149
133: aload 22
getstatic sun.security.x509.PKIXExtensions.BasicConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
134: aload 22
getstatic sun.security.x509.PKIXExtensions.NameConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
135: aload 22
getstatic sun.security.x509.PKIXExtensions.CertificatePolicies_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
136: aload 22
getstatic sun.security.x509.PKIXExtensions.PolicyMappings_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
137: aload 22
getstatic sun.security.x509.PKIXExtensions.PolicyConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
138: aload 22
getstatic sun.security.x509.PKIXExtensions.InhibitAnyPolicy_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
139: aload 22
140: getstatic sun.security.x509.PKIXExtensions.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
141: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
142: aload 22
getstatic sun.security.x509.PKIXExtensions.KeyUsage_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
143: aload 22
getstatic sun.security.x509.PKIXExtensions.ExtendedKeyUsage_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
144: aload 22
invokeinterface java.util.Set.isEmpty:()Z
ifne 149
145: new java.security.cert.CertPathValidatorException
dup
146: ldc "unrecognized critical extension(s)"
aconst_null
147: aconst_null
iconst_m1
getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
148: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
end local 22 end local 21 149: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.List java.util.Set sun.security.provider.certpath.PolicyNodeImpl java.util.List sun.security.provider.certpath.PolicyChecker sun.security.provider.certpath.BasicChecker int java.util.List int
StackMap stack:
iinc 20 1
StackMap locals:
StackMap stack:
150: iload 20
aload 12
invokeinterface java.util.List.size:()I
if_icmplt 92
end local 20 151: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 153
152: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchForward(): final verification succeeded - path completed!"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
153: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
154: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 156
155: aload 3
aload 11
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
156: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
putfield sun.security.provider.certpath.SunCertPathBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
157: aload 17
ifnull 160
158: aload 0
aload 17
invokevirtual sun.security.provider.certpath.BasicChecker.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
159: goto 165
160: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 163
161: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 20
start local 20 162: goto 164
end local 20 163: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
astore 20
start local 20 164: StackMap locals: java.security.cert.Certificate
StackMap stack:
aload 0
aload 20
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
end local 20 165: StackMap locals:
StackMap stack:
aload 0
aload 16
invokevirtual sun.security.provider.certpath.PolicyChecker.getPolicyTree:()Ljava/security/cert/PolicyNode;
putfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
166: return
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 167: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate
StackMap stack:
aload 3
aload 11
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
168: aload 10
aload 11
invokevirtual sun.security.provider.certpath.ForwardState.updateState:(Ljava/security/cert/X509Certificate;)V
169: aload 4
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
170: aload 8
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual sun.security.provider.certpath.Vertex.setIndex:(I)V
171: aload 0
aload 11
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 10
172: aload 3
aload 4
aload 5
173: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.depthFirstSearchForward:(Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ForwardState;Lsun/security/provider/certpath/ForwardBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
174: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 176
175: return
176: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 178
177: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchForward(): backtracking"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
178: StackMap locals:
StackMap stack:
aload 3
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.removeFinalCertFromPath:(Ljava/util/LinkedList;)V
end local 11 end local 10 end local 8 179: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ForwardState sun.security.provider.certpath.ForwardBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
180: return
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 181 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 181 1 dN Ljavax/security/auth/x500/X500Principal;
0 181 2 currentState Lsun/security/provider/certpath/ForwardState;
0 181 3 builder Lsun/security/provider/certpath/ForwardBuilder;
0 181 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 181 5 cpList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
6 181 6 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 181 7 vertices Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
13 179 8 vertex Lsun/security/provider/certpath/Vertex;
14 179 10 nextState Lsun/security/provider/certpath/ForwardState;
15 179 11 cert Ljava/security/cert/X509Certificate;
18 25 12 gse Ljava/security/GeneralSecurityException;
29 167 12 appendedCerts Ljava/util/List<Ljava/security/cert/X509Certificate;>;
33 167 13 initExpPolSet Ljava/util/Set<Ljava/lang/String;>;
36 167 14 rootNode Lsun/security/provider/certpath/PolicyNodeImpl;
37 167 15 checkers Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
46 167 16 policyChecker Lsun/security/provider/certpath/PolicyChecker;
51 167 17 basicChecker Lsun/security/provider/certpath/BasicChecker;
53 69 18 rootKey Ljava/security/PublicKey;
64 69 19 anchor Ljava/security/cert/TrustAnchor;
71 167 18 revCheckerAdded Z
72 167 19 ckrs Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
74 84 20 ckr Ljava/security/cert/PKIXCertPathChecker;
91 151 20 i I
93 149 21 currCert Ljava/security/cert/X509Certificate;
99 149 22 unresCritExts Ljava/util/Set<Ljava/lang/String;>;
103 123 23 currChecker Ljava/security/cert/PKIXCertPathChecker;
112 123 25 cpve Ljava/security/cert/CertPathValidatorException;
126 131 23 checker Ljava/security/cert/PKIXCertPathChecker;
129 131 25 suppExts Ljava/util/Set<Ljava/lang/String;>;
162 163 20 finalCert Ljava/security/cert/Certificate;
164 165 20 finalCert Ljava/security/cert/Certificate;
Exception table:
from to target type
15 16 17 Class java.security.GeneralSecurityException
109 110 111 Class java.security.cert.CertPathValidatorException
Exceptions:
throws java.security.GeneralSecurityException, java.io.IOException
Signature: (Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ForwardState;Lsun/security/provider/certpath/ForwardBuilder;Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
dN
currentState
builder
adjList
cpList
private static java.util.List<sun.security.provider.certpath.Vertex> addVertices(java.util.Collection<java.security.cert.X509Certificate>, java.util.List<java.util.List<sun.security.provider.certpath.Vertex>>);
descriptor: (Ljava/util/Collection;Ljava/util/List;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.List
astore 2
start local 2 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: java.util.Collection java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 3: new sun.security.provider.certpath.Vertex
dup
aload 3
invokespecial sun.security.provider.certpath.Vertex.<init>:(Ljava/security/cert/X509Certificate;)V
astore 5
start local 5 4: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 7 1 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
1 7 2 l Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
3 5 3 cert Ljava/security/cert/X509Certificate;
4 5 5 v Lsun/security/provider/certpath/Vertex;
Signature: (Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;)Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
MethodParameters:
Name Flags
certs
adjList
private static boolean anchorIsTarget(java.security.cert.TrustAnchor, java.security.cert.CertSelector);
descriptor: (Ljava/security/cert/TrustAnchor;Ljava/security/cert/CertSelector;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 1
aload 2
invokeinterface java.security.cert.CertSelector.match:(Ljava/security/cert/Certificate;)Z
ireturn
3: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 anchor Ljava/security/cert/TrustAnchor;
0 4 1 sel Ljava/security/cert/CertSelector;
1 4 2 anchorCert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
anchor
sel
}
SourceFile: "SunCertPathBuilder.java"
InnerClasses:
public final BasicReason = java.security.cert.CertPathValidatorException$BasicReason of java.security.cert.CertPathValidatorException
public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX
ValidatorParams = sun.security.provider.certpath.PKIX$ValidatorParams of sun.security.provider.certpath.PKIX