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
private final java.util.Set<java.lang.String> initPolicies;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
void <init>(sun.security.provider.certpath.PKIX$BuilderParams);
descriptor: (Lsun/security/provider/certpath/PKIX$BuilderParams;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.security.provider.certpath.Builder.<init>:(Lsun/security/provider/certpath/PKIX$BuilderParams;)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 sun.security.provider.certpath.PKIX$BuilderParams.initialPolicies:()Ljava/util/Set;
astore 2
start local 2 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 2
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 8
7: StackMap locals: sun.security.provider.certpath.ReverseBuilder sun.security.provider.certpath.PKIX$BuilderParams java.util.Set
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 9 1 buildParams Lsun/security/provider/certpath/PKIX$BuilderParams;
3 9 2 initialPolicies Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
buildParams
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.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
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
10: aload 4
invokevirtual java.util.HashSet.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;
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=6, 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.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
3: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getSubjectAsBytes:()[B
astore 4
start local 4 4: aload 4
ifnull 7
5: aload 3
iconst_4
aload 4
invokevirtual java.security.cert.X509CertSelector.addPathToName:(I[B)V
6: goto 12
7: StackMap locals: java.security.cert.X509CertSelector byte[]
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
astore 5
start local 5 8: aload 5
ifnull 12
9: aload 3
iconst_4
10: aload 5
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.getEncoded:()[B
11: invokevirtual java.security.cert.X509CertSelector.addPathToName:(I[B)V
end local 5 12: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.provider.certpath.ReverseState.explicitPolicy:I
ifne 14
13: aload 3
aload 0
invokevirtual sun.security.provider.certpath.ReverseBuilder.getMatchingPolicies:()Ljava/util/Set;
invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
14: StackMap locals:
StackMap stack:
aload 3
iconst_0
invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
15: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 16: aload 0
aload 3
aload 2
aload 5
iconst_1
invokevirtual sun.security.provider.certpath.ReverseBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
pop
17: aload 5
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
18: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 22
19: 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
20: aload 5
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;
21: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
22: StackMap locals: java.util.ArrayList
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 23 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 23 1 currentState Lsun/security/provider/certpath/ReverseState;
0 23 2 certStores Ljava/util/List<Ljava/security/cert/CertStore;>;
1 23 3 sel Ljava/security/cert/X509CertSelector;
4 23 4 subject [B
8 12 5 cert Ljava/security/cert/X509Certificate;
16 23 5 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 34
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 34
12: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 13: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 16
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:
14: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 15: aload 5
iconst_0
aload 6
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
end local 6 16: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: iconst_0
istore 6
start local 6 18: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 33
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:
19: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 7
start local 7 20: aload 7
invokestatic sun.security.x509.X509CertImpl.toImpl:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
astore 9
start local 9 21: aload 9
invokevirtual sun.security.x509.X509CertImpl.getPolicyMappingsExtension:()Lsun/security/x509/PolicyMappingsExtension;
22: astore 10
start local 10 23: aload 10
ifnull 25
24: iconst_1
istore 6
25: 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 27
26: 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
27: StackMap locals:
StackMap stack:
aload 1
aload 7
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 33
28: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.policyMappingInhibited:()Z
ifne 30
29: iload 6
ifne 33
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.debug:Lsun/security/util/Debug;
ifnull 32
31: 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
32: 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 33: 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 19
end local 6 end local 5 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
StackMap stack:
aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetSubject:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
istore 5
start local 5 35: aload 1
invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
iconst_m1
if_icmpeq 36
iconst_1
goto 37
StackMap locals: int
StackMap stack:
36: iconst_0
StackMap locals:
StackMap stack: int
37: istore 6
start local 6 38: iload 5
ifne 48
39: iload 6
ifne 41
40: new java.security.cert.CertPathValidatorException
dup
ldc "cert is NOT a CA cert"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
41: 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
42: new java.security.cert.CertPathValidatorException
dup
43: ldc "pathLenConstraint violated, path too long"
aconst_null
44: aconst_null
iconst_m1
getstatic java.security.cert.PKIXReason.PATH_TOO_LONG:Ljava/security/cert/PKIXReason;
45: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)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:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.revocationEnabled:()Z
ifeq 52
aload 4
getfield sun.security.provider.certpath.ReverseState.revChecker:Lsun/security/provider/certpath/RevocationChecker;
ifnull 52
51: aload 4
getfield sun.security.provider.certpath.ReverseState.revChecker:Lsun/security/provider/certpath/RevocationChecker;
aload 1
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.RevocationChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
52: StackMap locals:
StackMap stack:
iload 5
ifne 53
aload 1
invokestatic sun.security.x509.X509CertImpl.isSelfIssued:(Ljava/security/cert/X509Certificate;)Z
ifne 61
53: StackMap locals:
StackMap stack:
aload 4
getfield sun.security.provider.certpath.ReverseState.nc:Lsun/security/x509/NameConstraintsExtension;
ifnull 61
54: 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 61
55: new java.security.cert.CertPathValidatorException
dup
56: ldc "name constraints check failed"
aconst_null
aconst_null
iconst_m1
57: getstatic java.security.cert.PKIXReason.INVALID_NAME:Ljava/security/cert/PKIXReason;
58: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
59: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 60: new java.security.cert.CertPathValidatorException
dup
aload 7
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 61: 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 62: aload 4
63: aload 4
getfield sun.security.provider.certpath.ReverseState.certIndex:I
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.initPolicies:Ljava/util/Set;
64: aload 4
getfield sun.security.provider.certpath.ReverseState.explicitPolicy:I
aload 4
getfield sun.security.provider.certpath.ReverseState.policyMapping:I
65: aload 4
getfield sun.security.provider.certpath.ReverseState.inhibitAnyPolicy:I
66: aload 0
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.policyQualifiersRejected:()Z
aload 4
getfield sun.security.provider.certpath.ReverseState.rootNode:Lsun/security/provider/certpath/PolicyNodeImpl;
67: aload 7
iload 5
68: 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;
69: aload 1
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 8
start local 8 70: aload 8
ifnonnull 72
71: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 8
72: 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
73: aload 4
getfield sun.security.provider.certpath.ReverseState.userCheckers:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 10
goto 76
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:
74: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 9
start local 9 75: aload 9
aload 1
aload 8
invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
end local 9 76: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 74
77: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifne 92
78: 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
79: 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
80: 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
81: 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
82: 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
83: 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
84: 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
85: 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
86: 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
87: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifne 92
88: new java.security.cert.CertPathValidatorException
dup
89: ldc "Unrecognized critical extension(s)"
aconst_null
aconst_null
iconst_m1
90: getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
91: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
92: 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:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
ifnull 95
93: aload 1
aload 4
getfield sun.security.provider.certpath.ReverseState.pubKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder.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
94: goto 96
95: 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
96: 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 97 0 this Lsun/security/provider/certpath/ReverseBuilder;
0 97 1 cert Ljava/security/cert/X509Certificate;
0 97 2 currState Lsun/security/provider/certpath/State;
0 97 3 certPathList Ljava/util/List<Ljava/security/cert/X509Certificate;>;
6 97 4 currentState Lsun/security/provider/certpath/ReverseState;
13 34 5 reverseCertList Ljava/util/List<Ljava/security/cert/X509Certificate;>;
15 16 6 c Ljava/security/cert/X509Certificate;
18 34 6 policyMappingFound Z
20 33 7 cpListCert Ljava/security/cert/X509Certificate;
21 33 9 cpListCertImpl Lsun/security/x509/X509CertImpl;
23 33 10 policyMappingsExt Lsun/security/x509/PolicyMappingsExtension;
35 97 5 finalCert Z
38 97 6 caCert Z
60 61 7 ioe Ljava/io/IOException;
62 97 7 certImpl Lsun/security/x509/X509CertImpl;
70 97 8 unresolvedCritExts Ljava/util/Set<Ljava/lang/String;>;
75 76 9 checker Ljava/security/cert/PKIXCertPathChecker;
Exception table:
from to target type
54 59 59 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.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetSubject:()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:
public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX
PKIXCertComparator = sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator of sun.security.provider.certpath.ReverseBuilder