class sun.security.provider.certpath.ForwardBuilder extends sun.security.provider.certpath.Builder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.provider.certpath.ForwardBuilder
super_class: sun.security.provider.certpath.Builder
{
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Set<java.security.cert.X509Certificate> trustedCerts;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
private final java.util.Set<javax.security.auth.x500.X500Principal> trustedSubjectDNs;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljavax/security/auth/x500/X500Principal;>;
private final java.util.Set<java.security.cert.TrustAnchor> trustAnchors;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/security/cert/TrustAnchor;>;
private java.security.cert.X509CertSelector eeSelector;
descriptor: Ljava/security/cert/X509CertSelector;
flags: (0x0002) ACC_PRIVATE
private sun.security.provider.certpath.AdaptableX509CertSelector caSelector;
descriptor: Lsun/security/provider/certpath/AdaptableX509CertSelector;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.X509CertSelector caTargetSelector;
descriptor: Ljava/security/cert/X509CertSelector;
flags: (0x0002) ACC_PRIVATE
java.security.cert.TrustAnchor trustAnchor;
descriptor: Ljava/security/cert/TrustAnchor;
flags: (0x0000)
private boolean searchAllCertStores;
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.ForwardBuilder.debug:Lsun/security/util/Debug;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.provider.certpath.PKIX$BuilderParams, boolean);
descriptor: (Lsun/security/provider/certpath/PKIX$BuilderParams;Z)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial sun.security.provider.certpath.Builder.<init>:(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
1: aload 0
iconst_1
putfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
2: aload 0
aload 1
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.trustAnchors:()Ljava/util/Set;
putfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
3: aload 0
new java.util.HashSet
dup
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
invokespecial java.util.HashSet.<init>:(I)V
putfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
4: aload 0
new java.util.HashSet
dup
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
invokespecial java.util.HashSet.<init>:(I)V
putfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
5: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 3
start local 3 7: aload 3
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 5
start local 5 8: aload 5
ifnull 12
9: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
10: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
aload 5
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: goto 13
12: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int java.security.cert.TrustAnchor java.util.Iterator java.security.cert.X509Certificate
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
aload 3
invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 13: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
14: aload 0
iload 2
putfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 16 1 buildParams Lsun/security/provider/certpath/PKIX$BuilderParams;
0 16 2 searchAllCertStores Z
7 13 3 anchor Ljava/security/cert/TrustAnchor;
8 13 5 trustedCert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
buildParams
searchAllCertStores
java.util.Collection<java.security.cert.X509Certificate> getMatchingCerts(sun.security.provider.certpath.State, java.util.List<java.security.cert.CertStore>);
descriptor: (Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.getMatchingCerts()..."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.provider.certpath.ForwardState
astore 3
start local 3 3: new sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
dup
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
aload 3
getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
invokespecial sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.<init>:(Ljava/util/Set;Lsun/security/x509/X509CertImpl;)V
4: astore 4
start local 4 5: new java.util.TreeSet
dup
aload 4
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 5
start local 5 6: aload 3
invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
ifeq 8
7: aload 0
aload 3
aload 2
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingEECerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
8: StackMap locals: sun.security.provider.certpath.ForwardState java.util.Comparator java.util.Set
StackMap stack:
aload 0
aload 3
aload 2
aload 5
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingCACerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
9: 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 10 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 10 1 currentState Lsun/security/provider/certpath/State;
0 10 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
3 10 3 currState Lsun/security/provider/certpath/ForwardState;
5 10 4 comparator Ljava/util/Comparator<Ljava/security/cert/X509Certificate;>;
6 10 5 certs Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
Exceptions:
throws java.security.cert.CertStoreException, java.security.cert.CertificateException, java.io.IOException
Signature: (Lsun/security/provider/certpath/State;Ljava/util/List<Ljava/security/cert/CertStore;>;)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
currentState
certStores
private void getMatchingEECerts(sun.security.provider.certpath.ForwardState, java.util.List<java.security.cert.CertStore>, java.util.Collection<java.security.cert.X509Certificate>);
descriptor: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.getMatchingEECerts()..."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
ifnonnull 8
3: aload 0
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.clone:()Ljava/lang/Object;
checkcast java.security.cert.X509CertSelector
putfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
4: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
5: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
ifeq 7
6: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
aload 0
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
bipush -2
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
8: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
aload 2
aload 3
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
invokevirtual sun.security.provider.certpath.ForwardBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 10 1 currentState Lsun/security/provider/certpath/ForwardState;
0 10 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
0 10 3 eeCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
Exceptions:
throws java.io.IOException
Signature: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List<Ljava/security/cert/CertStore;>;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
currentState
certStores
eeCerts
private void getMatchingCACerts(sun.security.provider.certpath.ForwardState, java.util.List<java.security.cert.CertStore>, java.util.Collection<java.security.cert.X509Certificate>);
descriptor: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.getMatchingCACerts()..."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Collection.size:()I
istore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aload 1
invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
ifeq 17
5: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getBasicConstraints:()I
bipush -2
if_icmpne 7
6: return
7: StackMap locals: int java.security.cert.X509CertSelector
StackMap stack:
getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 9
8: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.getMatchingCACerts(): the target is a CA"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
ifnonnull 15
10: aload 0
11: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.clone:()Ljava/lang/Object;
checkcast java.security.cert.X509CertSelector
12: putfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
13: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
ifeq 15
14: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
aload 0
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
astore 5
16: goto 28
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
ifnonnull 21
18: aload 0
new sun.security.provider.certpath.AdaptableX509CertSelector
dup
invokespecial sun.security.provider.certpath.AdaptableX509CertSelector.<init>:()V
putfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
19: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
ifeq 21
20: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
aload 0
invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setPolicy:(Ljava/util/Set;)V
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
aload 1
getfield sun.security.provider.certpath.ForwardState.issuerDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setSubject:(Ljavax/security/auth/x500/X500Principal;)V
22: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
aload 1
getfield sun.security.provider.certpath.ForwardState.subjectNamesTraversed:Ljava/util/HashSet;
23: invokestatic sun.security.provider.certpath.CertPathHelper.setPathToNames:(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
24: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
aload 1
getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
invokevirtual sun.security.x509.X509CertImpl.getNotBefore:()Ljava/util/Date;
25: aload 1
getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
invokevirtual sun.security.x509.X509CertImpl.getNotAfter:()Ljava/util/Date;
26: invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setValidityPeriod:(Ljava/util/Date;Ljava/util/Date;)V
27: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
astore 5
28: StackMap locals:
StackMap stack:
aload 5
iconst_m1
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
29: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 42
StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector top java.util.Iterator
StackMap stack:
30: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 31: aload 5
aload 6
invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
ifeq 42
32: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 40
33: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ForwardBuilder.getMatchingCACerts: found matching trust anchor.\n SN: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
34: aload 6
invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc "\n Subject: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
37: ldc "\n Issuer: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
38: aload 6
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
40: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector java.security.cert.X509Certificate java.util.Iterator
StackMap stack:
aload 3
aload 6
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
ifeq 42
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
ifne 42
41: return
end local 6 42: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
43: aload 5
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
44: aload 5
aload 1
getfield sun.security.provider.certpath.ForwardState.traversedCACerts:I
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
45: aload 1
invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
ifne 48
46: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.maxPathLength:()I
iconst_m1
if_icmpeq 48
47: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.maxPathLength:()I
aload 1
getfield sun.security.provider.certpath.ForwardState.traversedCACerts:I
if_icmple 54
48: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector
StackMap stack:
aload 0
aload 5
aload 2
49: aload 3
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
50: invokevirtual sun.security.provider.certpath.ForwardBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
51: ifeq 54
52: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
ifne 54
53: return
54: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
ifne 59
getstatic sun.security.provider.certpath.Builder.USE_AIA:Z
ifeq 59
55: aload 1
getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
invokevirtual sun.security.x509.X509CertImpl.getAuthorityInfoAccessExtension:()Lsun/security/x509/AuthorityInfoAccessExtension;
56: astore 6
start local 6 57: aload 6
ifnull 59
58: aload 0
aload 6
aload 3
invokevirtual sun.security.provider.certpath.ForwardBuilder.getCerts:(Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection;)Z
pop
end local 6 59: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 64
60: aload 3
invokeinterface java.util.Collection.size:()I
iload 4
isub
istore 6
start local 6 61: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ForwardBuilder.getMatchingCACerts: found "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
62: iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " CA certs"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
63: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
end local 6 64: StackMap locals:
StackMap stack:
return
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 65 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 65 1 currentState Lsun/security/provider/certpath/ForwardState;
0 65 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
0 65 3 caCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
3 65 4 initialSize I
4 65 5 sel Ljava/security/cert/X509CertSelector;
31 42 6 trustedCert Ljava/security/cert/X509Certificate;
57 59 6 aiaExt Lsun/security/x509/AuthorityInfoAccessExtension;
61 64 6 numCerts I
Exceptions:
throws java.io.IOException
Signature: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List<Ljava/security/cert/CertStore;>;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
currentState
certStores
caCerts
private boolean getCerts(sun.security.x509.AuthorityInfoAccessExtension, java.util.Collection<java.security.cert.X509Certificate>);
descriptor: (Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.security.provider.certpath.Builder.USE_AIA:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.x509.AuthorityInfoAccessExtension.getAccessDescriptions:()Ljava/util/List;
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 5
4: StackMap locals: java.util.List
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 6: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 21
StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.x509.AccessDescription
astore 5
start local 5 8: aload 5
invokestatic sun.security.provider.certpath.URICertStore.getInstance:(Lsun/security/x509/AccessDescription;)Ljava/security/cert/CertStore;
astore 7
start local 7 9: aload 7
ifnull 21
10: aload 2
11: aload 7
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
invokevirtual java.security.cert.CertStore.getCertificates:(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
12: invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
13: ifeq 21
14: iconst_1
istore 4
15: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
ifne 21
16: iconst_1
ireturn
17: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int sun.security.x509.AccessDescription java.util.Iterator java.security.cert.CertStore
StackMap stack: java.security.cert.CertStoreException
astore 8
start local 8 18: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 21
19: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "exception getting certs from CertStore:"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
20: aload 8
invokevirtual java.security.cert.CertStoreException.printStackTrace:()V
end local 8 end local 7 end local 5 21: StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
22: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 23 1 aiaExt Lsun/security/x509/AuthorityInfoAccessExtension;
0 23 2 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
3 23 3 adList Ljava/util/List<Lsun/security/x509/AccessDescription;>;
6 23 4 add Z
8 21 5 ad Lsun/security/x509/AccessDescription;
9 21 7 cs Ljava/security/cert/CertStore;
18 21 8 cse Ljava/security/cert/CertStoreException;
Exception table:
from to target type
10 16 17 Class java.security.cert.CertStoreException
Signature: (Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)Z
MethodParameters:
Name Flags
aiaExt
certs
void verifyCert(java.security.cert.X509Certificate, sun.security.provider.certpath.State, java.util.List<java.security.cert.X509Certificate>);
descriptor: (Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=7, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 6
1: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ForwardBuilder.verifyCert(SN: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 1
invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "\n Issuer: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc "\n Subject: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
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;
5: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 2
checkcast sun.security.provider.certpath.ForwardState
astore 4
start local 4 7: aload 4
getfield sun.security.provider.certpath.ForwardState.untrustedChecker:Lsun/security/provider/certpath/UntrustedChecker;
aload 1
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.UntrustedChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
8: aload 3
ifnull 16
9: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState top java.util.Iterator
StackMap stack:
10: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 5
start local 5 11: aload 1
aload 5
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 15
12: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 14
13: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "loop detected!!"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
14: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.Iterator
StackMap stack:
new java.security.cert.CertPathValidatorException
dup
ldc "loop detected"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
end local 5 15: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
istore 5
start local 5 17: iload 5
ifne 47
18: aload 1
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 6
start local 6 19: aload 6
ifnonnull 21
20: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 6
21: StackMap locals: int java.util.Set
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ForwardState.forwardCheckers:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 8
goto 24
StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState int java.util.Set top java.util.Iterator
StackMap stack:
22: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 7
start local 7 23: aload 7
aload 1
aload 6
invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
end local 7 24: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.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 8
goto 31
StackMap locals:
StackMap stack:
26: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 7
start local 7 27: aload 7
invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
ifne 31
28: aload 7
invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
astore 9
start local 9 29: aload 9
ifnull 31
30: aload 6
aload 9
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
end local 9 end local 7 31: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
32: aload 6
invokeinterface java.util.Set.isEmpty:()Z
ifne 47
33: aload 6
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
34: aload 6
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
35: aload 6
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
36: aload 6
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
37: aload 6
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
38: aload 6
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
39: aload 6
getstatic sun.security.x509.PKIXExtensions.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
40: aload 6
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
41: aload 6
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
42: aload 6
invokeinterface java.util.Set.isEmpty:()Z
ifne 47
43: new java.security.cert.CertPathValidatorException
dup
44: ldc "Unrecognized critical extension(s)"
aconst_null
aconst_null
iconst_m1
45: getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
46: 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 6 47: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState int
StackMap stack:
aload 4
invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
ifeq 49
48: return
49: StackMap locals:
StackMap stack:
iload 5
ifne 53
50: aload 1
invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
iconst_m1
if_icmpne 52
51: new java.security.cert.CertificateException
dup
ldc "cert is NOT a CA cert"
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
52: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.provider.certpath.KeyChecker.verifyCAKeyUsage:(Ljava/security/cert/X509Certificate;)V
53: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.provider.certpath.ForwardState.keyParamsNeeded:()Z
ifne 57
54: aload 4
getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
55: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
56: invokevirtual sun.security.x509.X509CertImpl.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
57: StackMap locals:
StackMap stack:
return
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 58 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 58 1 cert Ljava/security/cert/X509Certificate;
0 58 2 currentState Lsun/security/provider/certpath/State;
0 58 3 certPathList Ljava/util/List<Ljava/security/cert/X509Certificate;>;
7 58 4 currState Lsun/security/provider/certpath/ForwardState;
11 15 5 cpListCert Ljava/security/cert/X509Certificate;
17 58 5 isTrustedCert Z
19 47 6 unresCritExts Ljava/util/Set<Ljava/lang/String;>;
23 24 7 checker Ljava/security/cert/PKIXCertPathChecker;
27 31 7 checker Ljava/security/cert/PKIXCertPathChecker;
29 31 9 supportedExts Ljava/util/Set<Ljava/lang/String;>;
Exceptions:
throws java.security.GeneralSecurityException
Signature: (Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
cert
currentState
certPathList
boolean isPathCompleted(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Z
flags: (0x0000)
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 3
start local 3 3: aload 3
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnull 7
4: aload 1
aload 3
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 15
5: aload 0
aload 3
putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
6: iconst_1
ireturn
7: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List java.security.cert.TrustAnchor java.util.Iterator
StackMap stack:
aload 3
invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 8: aload 3
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
astore 6
start local 6 9: aload 5
ifnull 14
aload 6
ifnull 14
10: aload 5
aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 14
11: aload 6
aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 0
aload 3
putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
13: iconst_1
ireturn
14: StackMap locals: javax.security.auth.x500.X500Principal java.security.PublicKey
StackMap stack:
aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 3 15: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
16: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 38
StackMap locals:
StackMap stack:
17: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 3
start local 3 18: aload 3
invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 19: aload 3
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
astore 6
start local 6 20: aload 5
ifnull 38
21: aload 5
aload 1
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 23
22: goto 38
23: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List java.security.cert.TrustAnchor java.util.Iterator javax.security.auth.x500.X500Principal java.security.PublicKey
StackMap stack:
aload 6
invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
ifeq 25
24: goto 38
25: StackMap locals:
StackMap stack:
aload 1
aload 6
aload 0
getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
26: goto 36
StackMap locals:
StackMap stack: java.security.InvalidKeyException
27: pop
28: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 38
29: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.isPathCompleted() invalid DSA key found"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
30: goto 38
31: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 7
start local 7 32: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ifnull 38
33: getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
ldc "ForwardBuilder.isPathCompleted() unexpected exception"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
34: aload 7
invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
35: goto 38
end local 7 36: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
37: iconst_1
ireturn
end local 6 end local 5 end local 3 38: StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
39: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 40 1 cert Ljava/security/cert/X509Certificate;
1 40 2 otherAnchors Ljava/util/List<Ljava/security/cert/TrustAnchor;>;
3 15 3 anchor Ljava/security/cert/TrustAnchor;
8 15 5 principal Ljavax/security/auth/x500/X500Principal;
9 15 6 publicKey Ljava/security/PublicKey;
18 38 3 anchor Ljava/security/cert/TrustAnchor;
19 38 5 principal Ljavax/security/auth/x500/X500Principal;
20 38 6 publicKey Ljava/security/PublicKey;
32 36 7 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
25 26 27 Class java.security.InvalidKeyException
25 26 31 Class java.security.GeneralSecurityException
MethodParameters:
Name Flags
cert
void addCertToPath(java.security.cert.X509Certificate, java.util.LinkedList<java.security.cert.X509Certificate>);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 2 1 cert Ljava/security/cert/X509Certificate;
0 2 2 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
cert
certPathList
void removeFinalCertFromPath(java.util.LinkedList<java.security.cert.X509Certificate>);
descriptor: (Ljava/util/LinkedList;)V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/certpath/ForwardBuilder;
0 2 1 certPathList Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
Signature: (Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
certPathList
}
SourceFile: "ForwardBuilder.java"
NestMembers:
sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
InnerClasses:
public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
PKIXCertComparator = sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator of sun.security.provider.certpath.ForwardBuilder
BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX