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 java.security.cert.PKIXBuilderParameters buildParams;
descriptor: Ljava/security/cert/PKIXBuilderParameters;
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 javax.security.auth.x500.X500Principal targetSubjectDN;
descriptor: Ljavax/security/auth/x500/X500Principal;
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
private java.security.cert.X509CertSelector targetSel;
descriptor: Ljava/security/cert/X509CertSelector;
flags: (0x0002) ACC_PRIVATE
private java.util.List<java.security.cert.CertStore> orderedCertStores;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/security/cert/CertStore;>;
private boolean onlyEECert;
descriptor: Z
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=4, 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
iconst_0
putfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
3: 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;
4: goto 7
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder
StackMap stack: java.security.cert.CertificateException
5: astore 1
start local 1 6: new java.security.cert.CertPathBuilderException
dup
aload 1
invokespecial java.security.cert.CertPathBuilderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 7: StackMap locals:
StackMap stack:
aload 0
8: new sun.security.action.GetBooleanSecurityPropertyAction
dup
9: ldc "com.sun.security.onlyCheckRevocationOfEECert"
10: invokespecial sun.security.action.GetBooleanSecurityPropertyAction.<init>:(Ljava/lang/String;)V
11: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
6 7 1 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
3 4 5 Class java.security.cert.CertificateException
Exceptions:
throws java.security.cert.CertPathBuilderException
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=6, locals=6, 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 1
instanceof java.security.cert.PKIXBuilderParameters
ifne 4
3: new java.security.InvalidAlgorithmParameterException
dup
ldc "inappropriate parameter type, must be an instance of PKIXBuilderParameters"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 5: aload 1
instanceof sun.security.provider.certpath.SunCertPathBuilderParameters
ifeq 8
6: aload 1
checkcast sun.security.provider.certpath.SunCertPathBuilderParameters
invokevirtual sun.security.provider.certpath.SunCertPathBuilderParameters.getBuildForward:()Z
7: istore 2
8: StackMap locals: int
StackMap stack:
aload 0
aload 1
checkcast java.security.cert.PKIXBuilderParameters
putfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
9: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getTrustAnchors:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.security.cert.CertPathParameters int top java.util.Iterator
StackMap stack:
10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 3
start local 3 11: aload 3
invokevirtual java.security.cert.TrustAnchor.getNameConstraints:()[B
ifnull 15
12: new java.security.InvalidAlgorithmParameterException
dup
13: ldc "name constraints in trust anchor not supported"
14: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 3 15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getTargetCertConstraints:()Ljava/security/cert/CertSelector;
astore 3
start local 3 17: aload 3
instanceof java.security.cert.X509CertSelector
ifne 19
18: new java.security.InvalidAlgorithmParameterException
dup
ldc "the targetCertConstraints parameter must be an X509CertSelector"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.security.cert.CertPathParameters int java.security.cert.CertSelector
StackMap stack:
aload 0
aload 3
checkcast java.security.cert.X509CertSelector
putfield sun.security.provider.certpath.SunCertPathBuilder.targetSel:Ljava/security/cert/X509CertSelector;
20: aload 0
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSel:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getSubject:()Ljavax/security/auth/x500/X500Principal;
putfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
21: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
ifnonnull 25
22: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSel:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
astore 4
start local 4 23: aload 4
ifnull 25
24: aload 0
aload 4
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
putfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
end local 4 25: StackMap locals:
StackMap stack:
aload 0
26: new java.util.ArrayList
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getCertStores:()Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
27: putfield sun.security.provider.certpath.SunCertPathBuilder.orderedCertStores:Ljava/util/List;
28: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.orderedCertStores:Ljava/util/List;
new sun.security.provider.certpath.SunCertPathBuilder$CertStoreComparator
dup
invokespecial sun.security.provider.certpath.SunCertPathBuilder$CertStoreComparator.<init>:()V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
29: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
ifnonnull 31
30: aload 0
aload 0
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.orderedCertStores:Ljava/util/List;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSel:Ljava/security/cert/X509CertSelector;
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.getTargetSubjectDN:(Ljava/util/List;Ljava/security/cert/X509CertSelector;)Ljavax/security/auth/x500/X500Principal;
putfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
ifnonnull 35
32: new java.security.InvalidAlgorithmParameterException
dup
33: ldc "Could not determine unique target subject"
34: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 36: aload 0
iload 2
iconst_0
aload 4
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildCertPath:(ZZLjava/util/List;)Ljava/security/cert/CertPathBuilderResult;
37: astore 5
start local 5 38: aload 5
ifnonnull 47
39: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 41
40: 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
41: StackMap locals: java.util.List java.security.cert.CertPathBuilderResult
StackMap stack:
aload 4
invokeinterface java.util.List.clear:()V
42: aload 0
iload 2
iconst_1
aload 4
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildCertPath:(ZZLjava/util/List;)Ljava/security/cert/CertPathBuilderResult;
astore 5
43: aload 5
ifnonnull 47
44: new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
45: new sun.security.provider.certpath.AdjacencyList
dup
aload 4
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
46: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
47: StackMap locals:
StackMap stack:
aload 5
areturn
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 48 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 48 1 params Ljava/security/cert/CertPathParameters;
5 48 2 buildForward Z
11 15 3 anchor Ljava/security/cert/TrustAnchor;
17 48 3 sel Ljava/security/cert/CertSelector;
23 25 4 targetCert Ljava/security/cert/X509Certificate;
36 48 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
38 48 5 result Ljava/security/cert/CertPathBuilderResult;
Exceptions:
throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
private java.security.cert.CertPathBuilderResult buildCertPath(boolean, boolean, java.util.List<java.util.List<sun.security.provider.certpath.Vertex>>);
descriptor: (ZZLjava/util/List;)Ljava/security/cert/CertPathBuilderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 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
5: astore 4
start local 4 6: iload 1
ifeq 9
7: aload 0
aload 3
aload 4
iload 2
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildForward:(Ljava/util/List;Ljava/util/LinkedList;Z)V
8: goto 19
9: StackMap locals: java.util.LinkedList
StackMap stack:
aload 0
aload 3
aload 4
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.buildReverse:(Ljava/util/List;Ljava/util/LinkedList;)V
10: goto 19
StackMap locals:
StackMap stack: java.lang.Exception
11: astore 5
start local 5 12: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 15
13: 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
14: aload 5
invokevirtual java.lang.Exception.printStackTrace:()V
15: StackMap locals: java.lang.Exception
StackMap stack:
new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
16: aload 5
17: new sun.security.provider.certpath.AdjacencyList
dup
aload 3
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
18: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 5 19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 37
20: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 22
21: 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
22: StackMap locals:
StackMap stack:
aload 4
invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
23: new sun.security.provider.certpath.SunCertPathBuilderResult
dup
24: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.cf:Ljava/security/cert/CertificateFactory;
aload 4
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;
25: 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;
26: new sun.security.provider.certpath.AdjacencyList
dup
aload 3
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
27: 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
28: areturn
29: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 30: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 33
31: 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
32: aload 5
invokevirtual java.lang.Exception.printStackTrace:()V
33: StackMap locals: java.lang.Exception
StackMap stack:
new sun.security.provider.certpath.SunCertPathBuilderException
dup
ldc "unable to find valid certification path to requested target"
34: aload 5
35: new sun.security.provider.certpath.AdjacencyList
dup
aload 3
invokespecial sun.security.provider.certpath.AdjacencyList.<init>:(Ljava/util/List;)V
36: invokespecial sun.security.provider.certpath.SunCertPathBuilderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Lsun/security/provider/certpath/AdjacencyList;)V
athrow
end local 5 37: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 38 1 buildForward Z
0 38 2 searchAllCertStores Z
0 38 3 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
6 38 4 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
12 19 5 e Ljava/lang/Exception;
30 37 5 e Ljava/lang/Exception;
Exception table:
from to target type
6 10 11 Class java.lang.Exception
19 28 29 Class java.lang.Exception
Exceptions:
throws java.security.cert.CertPathBuilderException
Signature: (ZZLjava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;)Ljava/security/cert/CertPathBuilderResult;
MethodParameters:
Name Flags
buildForward
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=7, locals=7, 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:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getInitialPolicies:()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:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getTrustAnchors:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
start local 4 9: goto 39
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 0
aload 5
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSel:Ljava/security/cert/X509CertSelector;
invokevirtual sun.security.provider.certpath.SunCertPathBuilder.anchorIsTarget:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/X509CertSelector;)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 40
16: StackMap locals: java.security.cert.TrustAnchor
StackMap stack:
aload 3
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getMaxPathLength:()I
17: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isExplicitPolicyRequired:()Z
18: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isPolicyMappingInhibited:()Z
19: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isAnyPolicyInhibited:()Z
20: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getCertPathCheckers:()Ljava/util/List;
21: invokevirtual sun.security.provider.certpath.ReverseState.initState:(IZZZLjava/util/List;)V
22: aload 3
aload 5
invokevirtual sun.security.provider.certpath.ReverseState.updateState:(Ljava/security/cert/TrustAnchor;)V
23: aload 3
24: new sun.security.provider.certpath.CrlRevocationChecker
dup
aconst_null
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
aconst_null
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
invokespecial sun.security.provider.certpath.CrlRevocationChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PKIXParameters;Ljava/util/Collection;Z)V
25: putfield sun.security.provider.certpath.ReverseState.crlChecker:Lsun/security/provider/certpath/CrlRevocationChecker;
26: aload 3
new sun.security.provider.certpath.AlgorithmChecker
dup
aload 5
aconst_null
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/lang/String;)V
putfield sun.security.provider.certpath.ReverseState.algorithmChecker:Lsun/security/provider/certpath/AlgorithmChecker;
27: 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;
28: aload 0
aconst_null
aload 3
29: new sun.security.provider.certpath.ReverseBuilder
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokespecial sun.security.provider.certpath.ReverseBuilder.<init>:(Ljava/security/cert/PKIXBuilderParameters;Ljavax/security/auth/x500/X500Principal;)V
aload 1
30: aload 2
31: 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
32: goto 37
StackMap locals:
StackMap stack: java.lang.Exception
33: astore 6
start local 6 34: aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 36
35: goto 39
36: StackMap locals: java.lang.Exception
StackMap stack:
aload 6
athrow
end local 6 37: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 39
38: goto 40
end local 5 39: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
40: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 45
41: 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
42: 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
43: 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;
44: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
45: 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 46 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 46 1 adjacencyList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 46 2 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
6 46 3 currentState Lsun/security/provider/certpath/ReverseState;
9 46 4 iter Ljava/util/Iterator<Ljava/security/cert/TrustAnchor;>;
11 39 5 anchor Ljava/security/cert/TrustAnchor;
34 37 6 e Ljava/lang/Exception;
Exception table:
from to target type
28 32 33 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
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=9, 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:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getCertPathCheckers:()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
7: new sun.security.provider.certpath.CrlRevocationChecker
dup
aconst_null
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
aconst_null
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
invokespecial sun.security.provider.certpath.CrlRevocationChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PKIXParameters;Ljava/util/Collection;Z)V
8: putfield sun.security.provider.certpath.ForwardState.crlChecker:Lsun/security/provider/certpath/CrlRevocationChecker;
9: 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;
10: aload 0
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
aload 4
11: new sun.security.provider.certpath.ForwardBuilder
dup
12: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
iload 3
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
13: invokespecial sun.security.provider.certpath.ForwardBuilder.<init>:(Ljava/security/cert/PKIXBuilderParameters;Ljavax/security/auth/x500/X500Principal;ZZ)V
14: aload 1
aload 2
15: 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
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 17 1 adjacencyList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 17 2 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
0 17 3 searchAllCertStores Z
3 17 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
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: (0x0000)
Code:
stack=9, locals=25, 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 0
5: aload 3
aload 2
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.orderedCertStores:Ljava/util/List;
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingCerts:(Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
aload 4
6: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.addVertices:(Ljava/util/Collection;Ljava/util/List;)Ljava/util/List;
astore 6
start local 6 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 6
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.List
StackMap stack:
aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 190
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.List top java.util.Iterator
StackMap stack:
12: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.Vertex
astore 7
start local 7 13: aload 2
invokevirtual sun.security.provider.certpath.ForwardState.clone:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.ForwardState
astore 9
start local 9 14: aload 7
invokevirtual sun.security.provider.certpath.Vertex.getCertificate:()Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 10
start local 10 15: aload 3
aload 10
aload 9
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.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 11
start local 11 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 11
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 11
invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
23: StackMap locals: java.security.GeneralSecurityException
StackMap stack:
aload 7
aload 11
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
24: goto 190
end local 11 25: StackMap locals:
StackMap stack:
aload 3
aload 10
invokevirtual sun.security.provider.certpath.ForwardBuilder.isPathCompleted:(Ljava/security/cert/X509Certificate;)Z
ifeq 178
26: aconst_null
astore 11
start local 11 27: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 29
28: 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
29: StackMap locals: sun.security.provider.certpath.BasicChecker
StackMap stack:
new java.util.ArrayList
dup
aload 5
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
30: astore 12
start local 12 31: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 33
32: aload 12
iconst_0
aload 10
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
33: StackMap locals: java.util.ArrayList
StackMap stack:
new java.util.HashSet
dup
iconst_1
invokespecial java.util.HashSet.<init>:(I)V
astore 13
start local 13 34: aload 13
ldc "2.5.29.32.0"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
35: new sun.security.provider.certpath.PolicyNodeImpl
dup
aconst_null
36: ldc "2.5.29.32.0"
aconst_null
iconst_0
aload 13
iconst_0
37: 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 38: new sun.security.provider.certpath.PolicyChecker
dup
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getInitialPolicies:()Ljava/util/Set;
39: aload 12
invokevirtual java.util.ArrayList.size:()I
40: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isExplicitPolicyRequired:()Z
41: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isPolicyMappingInhibited:()Z
42: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isAnyPolicyInhibited:()Z
43: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getPolicyQualifiersRejected:()Z
44: aload 14
45: invokespecial sun.security.provider.certpath.PolicyChecker.<init>:(Ljava/util/Set;IZZZZLsun/security/provider/certpath/PolicyNodeImpl;)V
46: astore 15
start local 15 47: new java.util.ArrayList
dup
48: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getCertPathCheckers:()Ljava/util/List;
49: invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 16
start local 16 50: iconst_0
istore 17
start local 17 51: aload 16
iload 17
aload 15
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
52: iinc 17 1
53: aconst_null
astore 18
start local 18 54: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
instanceof sun.security.provider.certpath.PKIXExtendedParameters
ifeq 56
55: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
checkcast sun.security.provider.certpath.PKIXExtendedParameters
invokevirtual sun.security.provider.certpath.PKIXExtendedParameters.getVariant:()Ljava/lang/String;
astore 18
56: 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.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate sun.security.provider.certpath.BasicChecker java.util.ArrayList java.util.HashSet sun.security.provider.certpath.PolicyNodeImpl sun.security.provider.certpath.PolicyChecker java.util.List int java.lang.String
StackMap stack:
aload 16
iload 17
57: new sun.security.provider.certpath.AlgorithmChecker
dup
aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
58: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getDate:()Ljava/util/Date;
aload 18
59: invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;)V
60: invokeinterface java.util.List.add:(ILjava/lang/Object;)V
61: iinc 17 1
62: aload 9
invokevirtual sun.security.provider.certpath.ForwardState.keyParamsNeeded:()Z
ifeq 87
63: aload 10
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 19
start local 19 64: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 72
65: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
astore 19
66: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 72
67: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
68: new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.depthFirstSearchForward using buildParams public key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
69: aload 19
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
70: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
71: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
72: StackMap locals: java.security.PublicKey
StackMap stack:
new java.security.cert.TrustAnchor
dup
73: aload 10
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 19
aconst_null
74: invokespecial java.security.cert.TrustAnchor.<init>:(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;[B)V
astore 20
start local 20 75: new sun.security.provider.certpath.BasicChecker
dup
aload 20
76: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.date:Ljava/util/Date;
77: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getSigProvider:()Ljava/lang/String;
78: iconst_1
79: invokespecial sun.security.provider.certpath.BasicChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;Z)V
astore 11
80: aload 16
iload 17
aload 11
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
81: iinc 17 1
82: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isRevocationEnabled:()Z
ifeq 87
83: aload 16
iload 17
new sun.security.provider.certpath.CrlRevocationChecker
dup
84: aload 20
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
aconst_null
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.onlyEECert:Z
invokespecial sun.security.provider.certpath.CrlRevocationChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PKIXParameters;Ljava/util/Collection;Z)V
85: invokeinterface java.util.List.add:(ILjava/lang/Object;)V
86: iinc 17 1
end local 20 end local 19 87: StackMap locals:
StackMap stack:
iconst_0
istore 19
start local 19 88: goto 161
89: StackMap locals: int
StackMap stack:
aload 12
iload 19
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 20
start local 20 90: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 94
91: 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
92: aload 20
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;
93: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
94: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 20
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
95: astore 21
start local 21 96: aload 21
ifnonnull 98
97: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 21
98: StackMap locals: java.util.Set
StackMap stack:
iconst_0
istore 22
start local 22 99: goto 121
100: StackMap locals: int
StackMap stack:
aload 16
iload 22
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 23
start local 23 101: iload 22
iload 17
if_icmplt 103
102: aload 23
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifne 120
103: StackMap locals: java.security.cert.PKIXCertPathChecker
StackMap stack:
iload 19
ifne 109
104: aload 23
iconst_0
invokevirtual java.security.cert.PKIXCertPathChecker.init:(Z)V
105: iload 22
iload 17
if_icmplt 109
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:
StackMap stack:
aload 23
aload 20
aload 21
invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
110: goto 120
StackMap locals:
StackMap stack: java.security.cert.CertPathValidatorException
111: astore 24
start local 24 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 24
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 7
aload 24
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
119: goto 190
end local 24 end local 23 120: StackMap locals:
StackMap stack:
iinc 22 1
StackMap locals:
StackMap stack:
121: iload 22
aload 16
invokeinterface java.util.List.size:()I
if_icmplt 100
end local 22 122: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getCertPathCheckers:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 23
goto 129
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.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate sun.security.provider.certpath.BasicChecker java.util.ArrayList java.util.HashSet sun.security.provider.certpath.PolicyNodeImpl sun.security.provider.certpath.PolicyChecker java.util.List int java.lang.String int java.security.cert.X509Certificate java.util.Set top java.util.Iterator
StackMap stack:
123: aload 23
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 22
start local 22 124: aload 22
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifeq 129
125: aload 22
invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
126: astore 24
start local 24 127: aload 24
ifnull 129
128: aload 21
aload 24
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
end local 24 end local 22 129: StackMap locals:
StackMap stack:
aload 23
invokeinterface java.util.Iterator.hasNext:()Z
ifne 123
130: aload 21
invokeinterface java.util.Set.isEmpty:()Z
ifne 160
131: aload 21
132: getstatic sun.security.x509.PKIXExtensions.BasicConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
133: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
134: aload 21
135: getstatic sun.security.x509.PKIXExtensions.NameConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
136: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
137: aload 21
138: getstatic sun.security.x509.PKIXExtensions.CertificatePolicies_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
139: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
140: aload 21
141: getstatic sun.security.x509.PKIXExtensions.PolicyMappings_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
142: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
143: aload 21
144: getstatic sun.security.x509.PKIXExtensions.PolicyConstraints_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
145: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
146: aload 21
147: getstatic sun.security.x509.PKIXExtensions.InhibitAnyPolicy_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
148: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
149: aload 21
150: getstatic sun.security.x509.PKIXExtensions.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
151: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
152: aload 21
153: getstatic sun.security.x509.PKIXExtensions.KeyUsage_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
154: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
155: aload 21
156: getstatic sun.security.x509.PKIXExtensions.ExtendedKeyUsage_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
157: invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
158: aload 21
invokeinterface java.util.Set.isEmpty:()Z
ifne 160
159: new java.security.cert.CertPathValidatorException
dup
ldc "unrecognized critical extension(s)"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
end local 21 end local 20 160: 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.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate sun.security.provider.certpath.BasicChecker java.util.ArrayList java.util.HashSet sun.security.provider.certpath.PolicyNodeImpl sun.security.provider.certpath.PolicyChecker java.util.List int java.lang.String int
StackMap stack:
iinc 19 1
StackMap locals:
StackMap stack:
161: iload 19
aload 12
invokevirtual java.util.ArrayList.size:()I
if_icmplt 89
end local 19 162: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 164
163: 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
164: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
165: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnonnull 167
166: aload 3
aload 10
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
167: 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;
168: aload 11
ifnull 171
169: aload 0
aload 11
invokevirtual sun.security.provider.certpath.BasicChecker.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
170: goto 176
171: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.LinkedList.size:()I
ifne 174
172: aload 3
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 19
start local 19 173: goto 175
end local 19 174: StackMap locals:
StackMap stack:
aload 5
aload 5
invokevirtual java.util.LinkedList.size:()I
iconst_1
isub
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
checkcast java.security.cert.Certificate
astore 19
start local 19 175: StackMap locals: java.security.cert.Certificate
StackMap stack:
aload 0
aload 19
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
end local 19 176: StackMap locals:
StackMap stack:
aload 0
aload 15
invokevirtual sun.security.provider.certpath.PolicyChecker.getPolicyTree:()Ljava/security/cert/PolicyNode;
putfield sun.security.provider.certpath.SunCertPathBuilder.policyTreeResult:Ljava/security/cert/PolicyNode;
177: return
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 178: 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.List sun.security.provider.certpath.Vertex java.util.Iterator sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate
StackMap stack:
aload 3
aload 10
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.addCertToPath:(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
179: aload 9
aload 10
invokevirtual sun.security.provider.certpath.ForwardState.updateState:(Ljava/security/cert/X509Certificate;)V
180: aload 4
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
181: aload 7
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual sun.security.provider.certpath.Vertex.setIndex:(I)V
182: aload 0
aload 10
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
183: aload 9
aload 3
aload 4
aload 5
184: 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
185: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 187
186: return
187: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 189
188: 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
189: StackMap locals:
StackMap stack:
aload 3
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.removeFinalCertFromPath:(Ljava/util/LinkedList;)V
end local 10 end local 9 end local 7 190: 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.List top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
191: return
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 192 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 192 1 dN Ljavax/security/auth/x500/X500Principal;
0 192 2 currentState Lsun/security/provider/certpath/ForwardState;
0 192 3 builder Lsun/security/provider/certpath/ForwardBuilder;
0 192 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 192 5 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
7 192 6 vertices Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
13 190 7 vertex Lsun/security/provider/certpath/Vertex;
14 190 9 nextState Lsun/security/provider/certpath/ForwardState;
15 190 10 cert Ljava/security/cert/X509Certificate;
18 25 11 gse Ljava/security/GeneralSecurityException;
27 178 11 basicChecker Lsun/security/provider/certpath/BasicChecker;
31 178 12 appendedCerts Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
34 178 13 initExpPolSet Ljava/util/HashSet<Ljava/lang/String;>;
38 178 14 rootNode Lsun/security/provider/certpath/PolicyNodeImpl;
47 178 15 policyChecker Lsun/security/provider/certpath/PolicyChecker;
50 178 16 userCheckers Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
51 178 17 mustCheck I
54 178 18 variant Ljava/lang/String;
64 87 19 rootKey Ljava/security/PublicKey;
75 87 20 anchor Ljava/security/cert/TrustAnchor;
88 162 19 i I
90 160 20 currCert Ljava/security/cert/X509Certificate;
96 160 21 unresCritExts Ljava/util/Set<Ljava/lang/String;>;
99 122 22 j I
101 120 23 currChecker Ljava/security/cert/PKIXCertPathChecker;
112 120 24 cpve Ljava/security/cert/CertPathValidatorException;
124 129 22 checker Ljava/security/cert/PKIXCertPathChecker;
127 129 24 suppExts Ljava/util/Set<Ljava/lang/String;>;
173 174 19 finalCert Ljava/security/cert/Certificate;
175 176 19 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
certPathList
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: (0x0000)
Code:
stack=6, locals=12, 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 0
5: aload 3
aload 2
aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.orderedCertStores:Ljava/util/List;
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingCerts:(Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
aload 4
6: invokevirtual sun.security.provider.certpath.SunCertPathBuilder.addVertices:(Ljava/util/Collection;Ljava/util/List;)Ljava/util/List;
astore 6
start local 6 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 6
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.List
StackMap stack:
aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 56
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.List top java.util.Iterator
StackMap stack:
12: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.Vertex
astore 7
start local 7 13: aload 2
invokevirtual sun.security.provider.certpath.ReverseState.clone:()Ljava/lang/Object;
checkcast sun.security.provider.certpath.ReverseState
astore 9
start local 9 14: aload 7
invokevirtual sun.security.provider.certpath.Vertex.getCertificate:()Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 10
start local 10 15: aload 3
aload 10
aload 9
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.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 11
start local 11 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 11
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 7
aload 11
invokevirtual sun.security.provider.certpath.Vertex.setThrowable:(Ljava/lang/Throwable;)V
23: goto 56
end local 11 24: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.provider.certpath.ReverseState.isInitial:()Z
ifne 26
25: aload 3
aload 10
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 10
invokevirtual sun.security.provider.certpath.ReverseBuilder.isPathCompleted:(Ljava/security/cert/X509Certificate;)Z
ifeq 44
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 9
getfield sun.security.provider.certpath.ReverseState.rootNode:Lsun/security/provider/certpath/PolicyNodeImpl;
astore 11
start local 11 32: aload 11
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 11
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 10
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;
instanceof java.security.interfaces.DSAPublicKey
ifeq 43
38: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
ifnonnull 43
39: aload 0
40: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
aload 2
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
41: invokestatic sun.security.provider.certpath.BasicChecker.makeInheritedParamsKey:(Ljava/security/PublicKey;Ljava/security/PublicKey;)Ljava/security/PublicKey;
42: putfield sun.security.provider.certpath.SunCertPathBuilder.finalPublicKey:Ljava/security/PublicKey;
43: StackMap locals:
StackMap stack:
return
end local 11 44: StackMap locals:
StackMap stack:
aload 9
aload 10
invokevirtual sun.security.provider.certpath.ReverseState.updateState:(Ljava/security/cert/X509Certificate;)V
45: aload 4
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
46: aload 7
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual sun.security.provider.certpath.Vertex.setIndex:(I)V
47: aload 0
aload 10
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 9
48: aload 3
aload 4
aload 5
49: 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
50: aload 0
getfield sun.security.provider.certpath.SunCertPathBuilder.pathCompleted:Z
ifeq 52
51: return
52: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 54
53: 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
54: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.provider.certpath.ReverseState.isInitial:()Z
ifne 56
55: aload 3
aload 5
invokevirtual sun.security.provider.certpath.ReverseBuilder.removeFinalCertFromPath:(Ljava/util/LinkedList;)V
end local 10 end local 9 end local 7 56: 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.List top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
57: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 59
58: 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
59: 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.List
StackMap stack:
return
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 60 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 60 1 dN Ljavax/security/auth/x500/X500Principal;
0 60 2 currentState Lsun/security/provider/certpath/ReverseState;
0 60 3 builder Lsun/security/provider/certpath/ReverseBuilder;
0 60 4 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
0 60 5 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
7 60 6 vertices Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
13 56 7 vertex Lsun/security/provider/certpath/Vertex;
14 56 9 nextState Lsun/security/provider/certpath/ReverseState;
15 56 10 cert Ljava/security/cert/X509Certificate;
18 24 11 gse Ljava/security/GeneralSecurityException;
32 44 11 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
certPathList
private 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: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 2
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 1: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.util.Collection java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 4
start local 4 3: new sun.security.provider.certpath.Vertex
dup
aload 4
invokespecial sun.security.provider.certpath.Vertex.<init>:(Ljava/security/cert/Certificate;)V
astore 6
start local 6 4: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 4 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 7 1 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 7 2 adjList Ljava/util/List<Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;>;
1 7 3 l Ljava/util/List<Lsun/security/provider/certpath/Vertex;>;
3 5 4 cert Ljava/security/cert/X509Certificate;
4 5 6 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 boolean anchorIsTarget(java.security.cert.TrustAnchor, java.security.cert.X509CertSelector);
descriptor: (Ljava/security/cert/TrustAnchor;Ljava/security/cert/X509CertSelector;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 2
aload 3
invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
ireturn
3: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 4 1 anchor Ljava/security/cert/TrustAnchor;
0 4 2 sel Ljava/security/cert/X509CertSelector;
1 4 3 anchorCert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
anchor
sel
private javax.security.auth.x500.X500Principal getTargetSubjectDN(java.util.List<java.security.cert.CertStore>, java.security.cert.X509CertSelector);
descriptor: (Ljava/util/List;Ljava/security/cert/X509CertSelector;)Ljavax/security/auth/x500/X500Principal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.util.List java.security.cert.X509CertSelector top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.CertStore
astore 3
start local 3 2: aload 3
aload 2
invokevirtual java.security.cert.CertStore.getCertificates:(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
3: astore 5
start local 5 4: aload 5
invokeinterface java.util.Collection.isEmpty:()Z
ifne 15
5: aload 5
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
6: astore 6
start local 6 7: aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
8: areturn
end local 6 end local 5 9: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.util.List java.security.cert.X509CertSelector java.security.cert.CertStore java.util.Iterator
StackMap stack: java.security.cert.CertStoreException
astore 5
start local 5 10: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
ifnull 15
11: getstatic sun.security.provider.certpath.SunCertPathBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "SunCertPathBuilder.getTargetSubjectDN: non-fatal exception retrieving certs: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
14: aload 5
invokevirtual java.security.cert.CertStoreException.printStackTrace:()V
end local 5 end local 3 15: StackMap locals: sun.security.provider.certpath.SunCertPathBuilder java.util.List java.security.cert.X509CertSelector top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
16: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/provider/certpath/SunCertPathBuilder;
0 17 1 stores Ljava/util/List<Ljava/security/cert/CertStore;>;
0 17 2 targetSel Ljava/security/cert/X509CertSelector;
2 15 3 store Ljava/security/cert/CertStore;
4 9 5 targetCerts Ljava/util/Collection<+Ljava/security/cert/Certificate;>;
7 9 6 targetCert Ljava/security/cert/X509Certificate;
10 15 5 e Ljava/security/cert/CertStoreException;
Exception table:
from to target type
2 8 9 Class java.security.cert.CertStoreException
Signature: (Ljava/util/List<Ljava/security/cert/CertStore;>;Ljava/security/cert/X509CertSelector;)Ljavax/security/auth/x500/X500Principal;
MethodParameters:
Name Flags
stores
targetSel
}
SourceFile: "SunCertPathBuilder.java"
NestMembers:
sun.security.provider.certpath.SunCertPathBuilder$CertStoreComparator
InnerClasses:
private CertStoreComparator = sun.security.provider.certpath.SunCertPathBuilder$CertStoreComparator of sun.security.provider.certpath.SunCertPathBuilder