class sun.security.provider.certpath.ReverseBuilder extends sun.security.provider.certpath.Builder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.provider.certpath.ReverseBuilder
super_class: sun.security.provider.certpath.Builder
{
private sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x0002) ACC_PRIVATE
java.util.Set<java.lang.String> initPolicies;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/String;>;
void <init>(java.security.cert.PKIXBuilderParameters, javax.security.auth.x500.X500Principal);
descriptor: (Ljava/security/cert/PKIXBuilderParameters;Ljavax/security/auth/x500/X500Principal;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.security.provider.certpath.Builder.<init>:(Ljava/security/cert/PKIXBuilderParameters;Ljavax/security/auth/x500/X500Principal;)V
1: aload 0
ldc "certpath"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
2: aload 1
invokevirtual java.security.cert.PKIXBuilderParameters.getInitialPolicies:()Ljava/util/Set;
astore 3
start local 3 3: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
4: aload 3
invokeinterface java.util.Set.isEmpty:()Z
ifeq 7
5: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
ldc "2.5.29.32.0"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: goto 11
7: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.PKIXBuilderParameters javax.security.auth.x500.X500Principal java.util.Set
StackMap stack:
aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.PKIXBuilderParameters javax.security.auth.x500.X500Principal java.util.Set top java.util.Iterator
StackMap stack:
8: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 9: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.PKIXBuilderParameters javax.security.auth.x500.X500Principal java.util.Set
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 12 1 buildParams Ljava/security/cert/PKIXBuilderParameters;
0 12 2 targetSubjectDN Ljavax/security/auth/x500/X500Principal;
3 12 3 initialPolicies Ljava/util/Set<Ljava/lang/String;>;
9 10 4 policy Ljava/lang/String;
MethodParameters:
Name Flags
buildParams
targetSubjectDN
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=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.provider.certpath.ReverseState
astore 3
start local 3 1: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 3
2: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ldc "In ReverseBuilder.getMatchingCerts."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
3: StackMap locals: sun.security.provider.certpath.ReverseState
StackMap stack:
aload 0
aload 3
aload 2
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingEECerts:(Lsun/security/provider/certpath/ReverseState;Ljava/util/List;)Ljava/util/Collection;
4: astore 4
start local 4 5: aload 4
aload 0
aload 3
aload 2
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingCACerts:(Lsun/security/provider/certpath/ReverseState;Ljava/util/List;)Ljava/util/Collection;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
6: aload 4
areturn
end local 4 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/ReverseBuilder;
0 7 1 currState Lsun/security/provider/certpath/State;
0 7 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
1 7 3 currentState Lsun/security/provider/certpath/ReverseState;
5 7 4 certs Ljava/util/Collection<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
currState
certStores
private java.util.Collection<java.security.cert.X509Certificate> getMatchingEECerts(sun.security.provider.certpath.ReverseState, java.util.List<java.security.cert.CertStore>);
descriptor: (Lsun/security/provider/certpath/ReverseState;Ljava/util/List;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.clone:()Ljava/lang/Object;
checkcast java.security.cert.X509CertSelector
astore 3
start local 3 1: aload 3
aload 1
getfield sun.security.provider.certpath.ReverseState.subjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual java.security.cert.X509CertSelector.setIssuer:(Ljavax/security/auth/x500/X500Principal;)V
2: aload 3
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.date:Ljava/util/Date;
invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
3: aload 1
getfield sun.security.provider.certpath.ReverseState.explicitPolicy:I
ifne 5
4: aload 3
aload 0
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
5: StackMap locals: java.security.cert.X509CertSelector
StackMap stack:
aload 3
bipush -2
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
6: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 7: aload 0
aload 3
aload 2
aload 4
iconst_1
invokevirtual sun.security.provider.certpath.ReverseBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
pop
8: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 12
9: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ReverseBuilder.getMatchingEECerts got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.util.HashSet.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
10: ldc " certs."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
12: StackMap locals: java.util.HashSet
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 13 1 currentState Lsun/security/provider/certpath/ReverseState;
0 13 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
1 13 3 sel Ljava/security/cert/X509CertSelector;
7 13 4 eeCerts Ljava/util/HashSet<Ljava/security/cert/X509Certificate;>;
Exceptions:
throws java.security.cert.CertStoreException, java.security.cert.CertificateException, java.io.IOException
Signature: (Lsun/security/provider/certpath/ReverseState;Ljava/util/List<Ljava/security/cert/CertStore;>;)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
currentState
certStores
private java.util.Collection<java.security.cert.X509Certificate> getMatchingCACerts(sun.security.provider.certpath.ReverseState, java.util.List<java.security.cert.CertStore>);
descriptor: (Lsun/security/provider/certpath/ReverseState;Ljava/util/List;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.security.cert.X509CertSelector
dup
invokespecial java.security.cert.X509CertSelector.<init>:()V
astore 3
start local 3 1: aload 3
aload 1
getfield sun.security.provider.certpath.ReverseState.subjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual java.security.cert.X509CertSelector.setIssuer:(Ljavax/security/auth/x500/X500Principal;)V
2: aload 3
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.date:Ljava/util/Date;
invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
3: aload 3
iconst_4
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getSubjectAsBytes:()[B
invokevirtual java.security.cert.X509CertSelector.addPathToName:(I[B)V
4: aload 1
getfield sun.security.provider.certpath.ReverseState.explicitPolicy:I
ifne 6
5: aload 3
aload 0
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
6: StackMap locals: java.security.cert.X509CertSelector
StackMap stack:
aload 3
iconst_0
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
8: astore 4
start local 4 9: aload 0
aload 3
aload 2
aload 4
iconst_1
invokevirtual sun.security.provider.certpath.ReverseBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
pop
10: aload 4
new sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator
dup
aload 0
invokespecial sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.<init>:(Lsun/security/provider/certpath/ReverseBuilder;)V
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
11: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 15
12: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ReverseBuilder.getMatchingCACerts got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 4
invokevirtual java.util.ArrayList.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " certs."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
15: StackMap locals: java.util.ArrayList
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 16 1 currentState Lsun/security/provider/certpath/ReverseState;
0 16 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
1 16 3 sel Ljava/security/cert/X509CertSelector;
9 16 4 reverseCerts Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
Exceptions:
throws java.security.cert.CertificateException, java.security.cert.CertStoreException, java.io.IOException
Signature: (Lsun/security/provider/certpath/ReverseState;Ljava/util/List<Ljava/security/cert/CertStore;>;)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
currentState
certStores
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=10, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 5
1: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "ReverseBuilder.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 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;
4: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 2
checkcast sun.security.provider.certpath.ReverseState
astore 4
start local 4 6: aload 4
invokevirtual sun.security.provider.certpath.ReverseState.isInitial:()Z
ifeq 8
7: return
8: StackMap locals: sun.security.provider.certpath.ReverseState
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ReverseState.untrustedChecker:Lsun/security/provider/certpath/UntrustedChecker;
aload 1
9: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
10: invokevirtual sun.security.provider.certpath.UntrustedChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
11: aload 3
ifnull 35
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 35
12: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
13: astore 5
start local 5 14: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 17
StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState java.util.List top java.util.Iterator
StackMap stack:
15: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 16: aload 5
iconst_0
aload 6
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
end local 6 17: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: iconst_0
istore 6
start local 6 19: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 34
StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState java.util.List int top java.util.Iterator
StackMap stack:
20: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 7
start local 7 21: aload 7
invokestatic sun.security.x509.X509CertImpl.toImpl:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
astore 9
start local 9 22: aload 9
invokevirtual sun.security.x509.X509CertImpl.getPolicyMappingsExtension:()Lsun/security/x509/PolicyMappingsExtension;
23: astore 10
start local 10 24: aload 10
ifnull 26
25: iconst_1
istore 6
26: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState java.util.List int java.security.cert.X509Certificate java.util.Iterator sun.security.x509.X509CertImpl sun.security.x509.PolicyMappingsExtension
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 28
27: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "policyMappingFound = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
aload 1
aload 7
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 34
29: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isPolicyMappingInhibited:()Z
ifne 31
30: iload 6
ifne 34
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 33
32: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ldc "loop detected!!"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
33: StackMap locals:
StackMap stack:
new java.security.cert.CertPathValidatorException
dup
ldc "loop detected"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
end local 10 end local 9 end local 7 34: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState java.util.List int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
end local 6 end local 5 35: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState
StackMap stack:
aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
istore 5
start local 5 36: aload 1
invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
iconst_m1
if_icmpeq 37
iconst_1
goto 38
StackMap locals: int
StackMap stack:
37: iconst_0
StackMap locals:
StackMap stack: int
38: istore 6
start local 6 39: iload 5
ifne 48
40: iload 6
ifne 42
41: new java.security.cert.CertPathValidatorException
dup
ldc "cert is NOT a CA cert"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals: int
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ReverseState.remainingCACerts:I
ifgt 46
aload 1
invokestatic sun.security.x509.X509CertImpl.isSelfIssued:(Ljava/security/cert/X509Certificate;)Z
ifne 46
43: new java.security.cert.CertPathValidatorException
dup
44: ldc "pathLenConstraint violated, path too long"
45: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
46: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.provider.certpath.KeyChecker.verifyCAKeyUsage:(Ljava/security/cert/X509Certificate;)V
47: goto 50
48: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
aload 1
invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
ifne 50
49: new java.security.cert.CertPathValidatorException
dup
ldc "target certificate constraints check failed"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
50: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.isRevocationEnabled:()Z
ifeq 55
51: aload 4
getfield sun.security.provider.certpath.ReverseState.crlChecker:Lsun/security/provider/certpath/CrlRevocationChecker;
aload 1
52: aload 4
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
53: aload 4
getfield sun.security.provider.certpath.ReverseState.crlSign:Z
54: invokevirtual sun.security.provider.certpath.CrlRevocationChecker.check:(Ljava/security/cert/X509Certificate;Ljava/security/PublicKey;Z)Z
pop
55: StackMap locals:
StackMap stack:
iload 5
ifne 56
aload 1
invokestatic sun.security.x509.X509CertImpl.isSelfIssued:(Ljava/security/cert/X509Certificate;)Z
ifne 63
56: StackMap locals:
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ReverseState.nc:Lsun/security/x509/NameConstraintsExtension;
ifnull 63
57: aload 4
getfield sun.security.provider.certpath.ReverseState.nc:Lsun/security/x509/NameConstraintsExtension;
aload 1
invokevirtual sun.security.x509.NameConstraintsExtension.verify:(Ljava/security/cert/X509Certificate;)Z
ifne 63
58: new java.security.cert.CertPathValidatorException
dup
59: ldc "name constraints check failed"
60: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 62: new java.security.cert.CertPathValidatorException
dup
aload 7
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 63: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.x509.X509CertImpl.toImpl:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
astore 7
start local 7 64: aload 4
65: aload 4
getfield sun.security.provider.certpath.ReverseState.certIndex:I
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
66: aload 4
getfield sun.security.provider.certpath.ReverseState.explicitPolicy:I
aload 4
getfield sun.security.provider.certpath.ReverseState.policyMapping:I
67: aload 4
getfield sun.security.provider.certpath.ReverseState.inhibitAnyPolicy:I
68: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getPolicyQualifiersRejected:()Z
aload 4
getfield sun.security.provider.certpath.ReverseState.rootNode:Lsun/security/provider/certpath/PolicyNodeImpl;
69: aload 7
iload 5
70: invokestatic sun.security.provider.certpath.PolicyChecker.processPolicies:(ILjava/util/Set;IIIZLsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/x509/X509CertImpl;Z)Lsun/security/provider/certpath/PolicyNodeImpl;
putfield sun.security.provider.certpath.ReverseState.rootNode:Lsun/security/provider/certpath/PolicyNodeImpl;
71: aload 1
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 8
start local 8 72: aload 8
ifnonnull 74
73: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 8
74: StackMap locals: sun.security.x509.X509CertImpl java.util.Set
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ReverseState.algorithmChecker:Lsun/security/provider/certpath/AlgorithmChecker;
aload 1
aload 8
invokevirtual sun.security.provider.certpath.AlgorithmChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
75: aload 4
getfield sun.security.provider.certpath.ReverseState.userCheckers:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 10
goto 78
StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState int int sun.security.x509.X509CertImpl java.util.Set top java.util.Iterator
StackMap stack:
76: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 9
start local 9 77: aload 9
aload 1
aload 8
invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
end local 9 78: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 76
79: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifne 91
80: aload 8
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
81: aload 8
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
82: aload 8
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
83: aload 8
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
84: aload 8
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
85: aload 8
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
86: aload 8
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
87: aload 8
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
88: aload 8
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
89: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifne 91
90: new java.security.cert.CertificateException
dup
ldc "Unrecognized critical extension(s)"
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
91: StackMap locals: sun.security.provider.certpath.ReverseBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ReverseState int int sun.security.x509.X509CertImpl java.util.Set
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getSigProvider:()Ljava/lang/String;
ifnull 94
92: aload 1
aload 4
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.getSigProvider:()Ljava/lang/String;
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
93: goto 95
94: StackMap locals:
StackMap stack:
aload 1
aload 4
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
95: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 96 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 96 1 cert Ljava/security/cert/X509Certificate;
0 96 2 currState Lsun/security/provider/certpath/State;
0 96 3 certPathList Ljava/util/List<Ljava/security/cert/X509Certificate;>;
6 96 4 currentState Lsun/security/provider/certpath/ReverseState;
14 35 5 reverseCertList Ljava/util/List<Ljava/security/cert/X509Certificate;>;
16 17 6 c Ljava/security/cert/X509Certificate;
19 35 6 policyMappingFound Z
21 34 7 cpListCert Ljava/security/cert/X509Certificate;
22 34 9 cpListCertImpl Lsun/security/x509/X509CertImpl;
24 34 10 policyMappingsExt Lsun/security/x509/PolicyMappingsExtension;
36 96 5 finalCert Z
39 96 6 caCert Z
62 63 7 ioe Ljava/io/IOException;
64 96 7 certImpl Lsun/security/x509/X509CertImpl;
72 96 8 unresolvedCritExts Ljava/util/Set<Ljava/lang/String;>;
77 78 9 checker Ljava/security/cert/PKIXCertPathChecker;
Exception table:
from to target type
57 61 61 Class java.io.IOException
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
currState
certPathList
boolean isPathCompleted(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 1 1 cert Ljava/security/cert/X509Certificate;
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.addLast:(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/ReverseBuilder;
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.removeLast:()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/ReverseBuilder;
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: "ReverseBuilder.java"
NestMembers:
sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator
InnerClasses:
PKIXCertComparator = sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator of sun.security.provider.certpath.ReverseBuilder