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 sun.security.provider.certpath.CertPathChecker engineGetRevocationChecker();
descriptor: ()Lsun/security/provider/certpath/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"
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
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.buildForward:()Z
ifeq 8
6: aload 0
aload 2
aload 3
iload 1
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildForward:(Ljava/util/List;Ljava/util/LinkedList;Z)V
7: goto 18
8: StackMap locals: java.util.LinkedList
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildReverse:(Ljava/util/List;Ljava/util/LinkedList;)V
9: goto 18
StackMap locals:
StackMap stack: java.lang.Exception
10: astore 4
start local 4 11: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 14
12: 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
13: aload 4
invokevirtual java.lang.Exception.printStackTrace:()V
14: StackMap locals: java.lang.Exception
StackMap stack:
new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
15: aload 4
16: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
17: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 4 18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 36
19: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 21
20: 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
21: StackMap locals:
StackMap stack:
aload 3
invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
22: new sun.security.provider.certpath.SunCertPathBuilderResult
dup
23: 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;
24: 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;
25: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
26: 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
27: areturn
28: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 29: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 32
30: 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
31: aload 4
invokevirtual java.security.cert.CertificateException.printStackTrace:()V
32: 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"
33: aload 4
34: new sun.security.provider.certpath.AdjacencyList
dup
aload 2
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
35: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 4 36: 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 37 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 37 1 searchAllCertStores Z
0 37 2 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
5 37 3 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
11 18 4 e Ljava/lang/Exception;
29 36 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
5 9 10 Class java.security.GeneralSecurityException
5 9 10 Class java.io.IOException
18 27 28 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 buildReverse(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;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 5
1: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.buildReverse()..."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.buildReverse() InitialPolicies: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: 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;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
new sun.security.provider.certpath.ReverseState
dup
invokespecial sun.security.provider.certpath.ReverseState.<init>:()V
astore 3
start local 3 6: aload 1
invokeinterface java.util.List.clear:()V
7: aload 1
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.trustAnchors:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
start local 4 9: goto 40
10: StackMap locals: sun.security.provider.certpath.ReverseState java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 5
start local 5 11: aload 5
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;
invokestatic sun.security.provider.certpath.SunCertPathBuilder.anchorIsTarget:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/CertSelector;)Z
ifeq 16
12: aload 0
aload 5
putfield sun.security.provider.certpath.SunCertPathBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
13: aload 0
iconst_1
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
14: aload 0
aload 5
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
15: goto 41
16: StackMap locals: java.security.cert.TrustAnchor
StackMap stack:
aload 5
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 6
start local 6 17: aload 6
ifnull 18
aload 6
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
goto 19
18: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 5
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
19: StackMap locals:
StackMap stack: java.security.PublicKey
astore 7
start local 7 20: aload 7
invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
ifeq 22
21: goto 40
22: StackMap locals: java.security.PublicKey
StackMap stack:
aload 3
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.ReverseState.initState:(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
23: aload 3
aload 5
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.ReverseState.updateState:(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$BuilderParams;)V
24: aload 3
new sun.security.provider.certpath.AlgorithmChecker
dup
aload 5
25: 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;
26: aconst_null
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;)V
27: putfield sun.security.provider.certpath.ReverseState.algorithmChecker:Lsun/security/provider/certpath/AlgorithmChecker;
28: aload 3
new sun.security.provider.certpath.UntrustedChecker
dup
invokespecial sun.security.provider.certpath.UntrustedChecker.<init>:()V
putfield sun.security.provider.certpath.ReverseState.untrustedChecker:Lsun/security/provider/certpath/UntrustedChecker;
29: aload 0
aconst_null
aload 3
30: new sun.security.provider.certpath.ReverseBuilder
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokespecial sun.security.provider.certpath.ReverseBuilder.<init>:(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
31: aload 1
aload 2
32: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.depthFirstSearchReverse:(Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ReverseState;Lsun/security/provider/certpath/ReverseBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
33: goto 38
StackMap locals:
StackMap stack: java.lang.Exception
34: astore 8
start local 8 35: aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 37
36: goto 40
37: StackMap locals: java.lang.Exception
StackMap stack:
aload 8
athrow
end local 8 38: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 40
39: goto 41
end local 7 end local 6 end local 5 40: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
41: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 46
42: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.buildReverse() returned from depthFirstSearchReverse()"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
43: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.buildReverse() certPathList.size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
44: aload 2
invokevirtual java.util.LinkedList.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
45: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
46: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 47 1 adjacencyList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 47 2 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
6 47 3 currentState Lsun/security/provider/certpath/ReverseState;
9 47 4 iter Ljava/util/Iterator<Ljava/security/cert/TrustAnchor;>;
11 40 5 anchor Ljava/security/cert/TrustAnchor;
17 40 6 trustedCert Ljava/security/cert/X509Certificate;
20 40 7 pubKey Ljava/security/PublicKey;
35 38 8 e Ljava/lang/Exception;
Exception table:
from to target type
29 33 34 Class java.security.GeneralSecurityException
29 33 34 Class java.io.IOException
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;>;)V
MethodParameters:
Name Flags
adjacencyList
certPathList
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 175
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 175
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 163
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 80
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 sun.security.provider.certpath.PKIXRevocationChecker
ifeq 80
75: iconst_1
istore 18
76: aload 20
instanceof sun.security.provider.certpath.RevocationChecker
ifeq 80
77: aload 20
checkcast sun.security.provider.certpath.RevocationChecker
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
78: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
79: invokevirtual sun.security.provider.certpath.RevocationChecker.init:(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)V
end local 20 80: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 73
81: 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 85
iload 18
ifne 85
82: aload 15
new sun.security.provider.certpath.RevocationChecker
dup
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
83: 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
84: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
85: 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
86: iconst_0
istore 20
start local 20 87: goto 146
88: 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 89: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 93
90: 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
91: 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;
92: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
93: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 21
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
94: astore 22
start local 22 95: aload 22
ifnonnull 97
96: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 22
97: StackMap locals: java.util.Set
StackMap stack:
aload 15
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 24
goto 119
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:
98: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 23
start local 23 99: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifne 119
100: iload 20
ifne 105
101: aload 23
iconst_0
invokevirtual java.security.cert.PKIXCertPathChecker.init:(Z)V
102: aload 23
instanceof sun.security.provider.certpath.AlgorithmChecker
ifeq 105
103: aload 23
checkcast sun.security.provider.certpath.AlgorithmChecker
104: 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
105: 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
106: goto 119
StackMap locals:
StackMap stack: java.security.cert.CertPathValidatorException
107: astore 25
start local 25 108: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 114
109: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
110: new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward(): final verification failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
111: aload 25
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
112: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
113: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
114: 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 117
115: 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 117
116: aload 25
athrow
117: StackMap locals:
StackMap stack:
aload 8
aload 25
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
118: goto 175
end local 25 end local 23 119: 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 98
120: 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 127
StackMap locals:
StackMap stack:
121: aload 24
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 23
start local 23 122: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifeq 127
123: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
124: astore 25
start local 25 125: aload 25
ifnull 127
126: aload 22
aload 25
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
end local 25 end local 23 127: StackMap locals:
StackMap stack:
aload 24
invokeinterface java.util.Iterator.hasNext:()Z
ifne 121
128: aload 22
invokeinterface java.util.Set.isEmpty:()Z
ifne 145
129: 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
130: 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
131: 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
132: 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
133: 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
134: 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
135: aload 22
136: getstatic sun.security.x509.PKIXExtensions.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
137: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
138: 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
139: 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
140: aload 22
invokeinterface java.util.Set.isEmpty:()Z
ifne 145
141: new java.security.cert.CertPathValidatorException
dup
142: ldc "unrecognized critical extension(s)"
aconst_null
143: aconst_null
iconst_m1
getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
144: 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 145: 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:
146: iload 20
aload 12
invokeinterface java.util.List.size:()I
if_icmplt 88
end local 20 147: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 149
148: 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
149: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
150: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 152
151: aload 3
aload 11
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
152: 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;
153: aload 17
ifnull 156
154: aload 0
aload 17
invokevirtual sun.security.provider.certpath.BasicChecker.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
155: goto 161
156: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 159
157: 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 158: goto 160
end local 20 159: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
astore 20
start local 20 160: 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 161: 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;
162: 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 163: 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
164: aload 10
aload 11
invokevirtual sun.security.provider.certpath.ForwardState.updateState:(Ljava/security/cert/X509Certificate;)V
165: aload 4
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
166: aload 8
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual sun.security.provider.certpath.Vertex.setIndex:(I)V
167: aload 0
aload 11
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 10
168: aload 3
aload 4
aload 5
169: 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
170: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 172
171: return
172: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 174
173: 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
174: 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 175: 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
176: 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 177 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 177 1 dN Ljavax/security/auth/x500/X500Principal;
0 177 2 currentState Lsun/security/provider/certpath/ForwardState;
0 177 3 builder Lsun/security/provider/certpath/ForwardBuilder;
0 177 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 177 5 cpList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
6 177 6 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 177 7 vertices Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
13 175 8 vertex Lsun/security/provider/certpath/Vertex;
14 175 10 nextState Lsun/security/provider/certpath/ForwardState;
15 175 11 cert Ljava/security/cert/X509Certificate;
18 25 12 gse Ljava/security/GeneralSecurityException;
29 163 12 appendedCerts Ljava/util/List<Ljava/security/cert/X509Certificate;>;
33 163 13 initExpPolSet Ljava/util/Set<Ljava/lang/String;>;
36 163 14 rootNode Lsun/security/provider/certpath/PolicyNodeImpl;
37 163 15 checkers Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
46 163 16 policyChecker Lsun/security/provider/certpath/PolicyChecker;
51 163 17 basicChecker Lsun/security/provider/certpath/BasicChecker;
53 69 18 rootKey Ljava/security/PublicKey;
64 69 19 anchor Ljava/security/cert/TrustAnchor;
71 163 18 revCheckerAdded Z
72 163 19 ckrs Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
74 80 20 ckr Ljava/security/cert/PKIXCertPathChecker;
87 147 20 i I
89 145 21 currCert Ljava/security/cert/X509Certificate;
95 145 22 unresCritExts Ljava/util/Set<Ljava/lang/String;>;
99 119 23 currChecker Ljava/security/cert/PKIXCertPathChecker;
108 119 25 cpve Ljava/security/cert/CertPathValidatorException;
122 127 23 checker Ljava/security/cert/PKIXCertPathChecker;
125 127 25 suppExts Ljava/util/Set<Ljava/lang/String;>;
158 159 20 finalCert Ljava/security/cert/Certificate;
160 161 20 finalCert Ljava/security/cert/Certificate;
Exception table:
from to target type
15 16 17 Class java.security.GeneralSecurityException
105 106 107 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 void depthFirstSearchReverse(javax.security.auth.x500.X500Principal, sun.security.provider.certpath.ReverseState, sun.security.provider.certpath.ReverseBuilder, 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/ReverseState;Lsun/security/provider/certpath/ReverseBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, 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.depthFirstSearchReverse("
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.ReverseState.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.ReverseBuilder.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.depthFirstSearchReverse(): 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 55
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ReverseState sun.security.provider.certpath.ReverseBuilder 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.ReverseState.clone:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.ReverseState
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.ReverseBuilder.verifyCert:(Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List;)V
16: goto 24
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ReverseState sun.security.provider.certpath.ReverseBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ReverseState 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 22
19: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchReverse(): 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: StackMap locals: java.security.GeneralSecurityException
StackMap stack:
aload 8
aload 12
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
23: goto 55
end local 12 24: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.provider.certpath.ReverseState.isInitial:()Z
ifne 26
25: aload 3
aload 11
aload 5
invokevirtual sun.security.provider.certpath.ReverseBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
26: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield sun.security.provider.certpath.ReverseState.trustAnchor:Ljava/security/cert/TrustAnchor;
putfield sun.security.provider.certpath.SunCertPathBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
27: aload 3
aload 11
invokevirtual sun.security.provider.certpath.ReverseBuilder.isPathCompleted:(Ljava/security/cert/X509Certificate;)Z
ifeq 43
28: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 30
29: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchReverse(): path completed!"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
30: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
31: aload 10
getfield sun.security.provider.certpath.ReverseState.rootNode:Lsun/security/provider/certpath/PolicyNodeImpl;
astore 12
start local 12 32: aload 12
ifnonnull 34
33: aload 0
aconst_null
putfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
goto 36
34: StackMap locals: sun.security.provider.certpath.PolicyNodeImpl
StackMap stack:
aload 0
aload 12
invokevirtual sun.security.provider.certpath.PolicyNodeImpl.copyTree:()Lsun/security/provider/certpath/PolicyNodeImpl;
putfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
35: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
checkcast sun.security.provider.certpath.PolicyNodeImpl
invokevirtual sun.security.provider.certpath.PolicyNodeImpl.setImmutable:()V
36: StackMap locals:
StackMap stack:
aload 0
aload 11
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
37: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
ifeq 42
38: aload 0
39: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
aload 2
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
40: invokestatic sun.security.provider.certpath.BasicChecker.makeInheritedParamsKey:(Ljava/security/PublicKey;Ljava/security/PublicKey;)Ljava/security/PublicKey;
41: putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
42: StackMap locals:
StackMap stack:
return
end local 12 43: StackMap locals:
StackMap stack:
aload 10
aload 11
invokevirtual sun.security.provider.certpath.ReverseState.updateState:(Ljava/security/cert/X509Certificate;)V
44: aload 4
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
45: aload 8
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual sun.security.provider.certpath.Vertex.setIndex:(I)V
46: aload 0
aload 11
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 10
47: aload 3
aload 4
aload 5
48: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.depthFirstSearchReverse:(Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ReverseState;Lsun/security/provider/certpath/ReverseBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
49: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 51
50: return
51: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 53
52: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchReverse(): backtracking"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
53: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.provider.certpath.ReverseState.isInitial:()Z
ifne 55
54: aload 3
aload 5
invokevirtual sun.security.provider.certpath.ReverseBuilder.removeFinalCertFromPath:(Ljava/util/LinkedList;)V
end local 11 end local 10 end local 8 55: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ReverseState sun.security.provider.certpath.ReverseBuilder 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
56: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 58
57: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ldc "SunCertPathBuilder.depthFirstSearchReverse() all certs in this adjacency list checked"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
58: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder javax.security.auth.x500.X500Principal sun.security.provider.certpath.ReverseState sun.security.provider.certpath.ReverseBuilder java.util.List java.util.LinkedList java.util.Collection java.util.List
StackMap stack:
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 59 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 59 1 dN Ljavax/security/auth/x500/X500Principal;
0 59 2 currentState Lsun/security/provider/certpath/ReverseState;
0 59 3 builder Lsun/security/provider/certpath/ReverseBuilder;
0 59 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 59 5 cpList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
6 59 6 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 59 7 vertices Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
13 55 8 vertex Lsun/security/provider/certpath/Vertex;
14 55 10 nextState Lsun/security/provider/certpath/ReverseState;
15 55 11 cert Ljava/security/cert/X509Certificate;
18 24 12 gse Ljava/security/GeneralSecurityException;
32 43 12 rootNode Lsun/security/provider/certpath/PolicyNodeImpl;
Exception table:
from to target type
15 16 17 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.GeneralSecurityException, java.io.IOException
Signature: (Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ReverseState;Lsun/security/provider/certpath/ReverseBuilder;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