public abstract class sun.security.provider.certpath.Builder
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.provider.certpath.Builder
super_class: java.lang.Object
{
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.Set<java.lang.String> matchingPolicies;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Ljava/lang/String;>;
final sun.security.provider.certpath.PKIX$BuilderParams buildParams;
descriptor: Lsun/security/provider/certpath/PKIX$BuilderParams;
flags: (0x0010) ACC_FINAL
final java.security.cert.X509CertSelector targetCertConstraints;
descriptor: Ljava/security/cert/X509CertSelector;
flags: (0x0010) ACC_FINAL
static final boolean USE_AIA;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, 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.Builder.debug:Lsun/security/util/Debug;
1: new sun.security.action.GetBooleanAction
dup
ldc "com.sun.security.enableAIAcaIssuers"
invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putstatic sun.security.provider.certpath.Builder.USE_AIA:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.provider.certpath.PKIX$BuilderParams);
descriptor: (Lsun/security/provider/certpath/PKIX$BuilderParams;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.provider.certpath.Builder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
2: aload 0
3: aload 1
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetCertConstraints:()Ljava/security/cert/CertSelector;
checkcast java.security.cert.X509CertSelector
4: putfield sun.security.provider.certpath.Builder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/provider/certpath/Builder;
0 6 1 buildParams Lsun/security/provider/certpath/PKIX$BuilderParams;
MethodParameters:
Name Flags
buildParams
abstract 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: (0x0400) ACC_ABSTRACT
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
abstract 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: (0x0400) ACC_ABSTRACT
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
abstract boolean isPathCompleted(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Z
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
cert
abstract void addCertToPath(java.security.cert.X509Certificate, java.util.LinkedList<java.security.cert.X509Certificate>);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
flags: (0x0400) ACC_ABSTRACT
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
cert
certPathList
abstract void removeFinalCertFromPath(java.util.LinkedList<java.security.cert.X509Certificate>);
descriptor: (Ljava/util/LinkedList;)V
flags: (0x0400) ACC_ABSTRACT
Signature: (Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
certPathList
static int distance(sun.security.x509.GeneralNameInterface, sun.security.x509.GeneralNameInterface, int);
descriptor: (Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface sun.security.x509.GeneralNameInterface.constrains:(Lsun/security/x509/GeneralNameInterface;)I
tableswitch { // -1 - 3
-1: 1
0: 7
1: 9
2: 8
3: 4
default: 10
}
1: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 3
2: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ldc "Builder.distance(): Names are different types"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
iload 2
ireturn
4: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 6
5: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ldc "Builder.distance(): Names are same type but in different subtrees"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
iload 2
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
8: StackMap locals:
StackMap stack:
goto 11
9: StackMap locals:
StackMap stack:
goto 11
10: StackMap locals:
StackMap stack:
iload 2
ireturn
11: StackMap locals:
StackMap stack:
aload 1
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
aload 0
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
isub
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 base Lsun/security/x509/GeneralNameInterface;
0 12 1 test Lsun/security/x509/GeneralNameInterface;
0 12 2 incomparable I
MethodParameters:
Name Flags
base
test
incomparable
static int hops(sun.security.x509.GeneralNameInterface, sun.security.x509.GeneralNameInterface, int);
descriptor: (Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface sun.security.x509.GeneralNameInterface.constrains:(Lsun/security/x509/GeneralNameInterface;)I
istore 3
start local 3 1: iload 3
tableswitch { // -1 - 3
-1: 2
0: 6
1: 8
2: 7
3: 5
default: 9
}
2: StackMap locals: int
StackMap stack:
getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 4
3: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ldc "Builder.hops(): Names are different types"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
iload 2
ireturn
5: StackMap locals:
StackMap stack:
goto 10
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 1
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
aload 0
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
isub
ireturn
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
aload 0
invokeinterface sun.security.x509.GeneralNameInterface.subtreeDepth:()I
isub
ireturn
9: StackMap locals:
StackMap stack:
iload 2
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokeinterface sun.security.x509.GeneralNameInterface.getType:()I
iconst_4
if_icmpeq 14
11: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 13
12: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ldc "Builder.hops(): hopDistance not implemented for this name type"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
iload 2
ireturn
14: StackMap locals:
StackMap stack:
aload 0
checkcast sun.security.x509.X500Name
astore 4
start local 4 15: aload 1
checkcast sun.security.x509.X500Name
astore 5
start local 5 16: aload 4
aload 5
invokevirtual sun.security.x509.X500Name.commonAncestor:(Lsun/security/x509/X500Name;)Lsun/security/x509/X500Name;
astore 6
start local 6 17: aload 6
ifnonnull 21
18: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 20
19: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ldc "Builder.hops(): Names are in different namespaces"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
20: StackMap locals: sun.security.x509.X500Name sun.security.x509.X500Name sun.security.x509.X500Name
StackMap stack:
iload 2
ireturn
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.security.x509.X500Name.subtreeDepth:()I
istore 7
start local 7 22: aload 4
invokevirtual sun.security.x509.X500Name.subtreeDepth:()I
istore 8
start local 8 23: aload 5
invokevirtual sun.security.x509.X500Name.subtreeDepth:()I
istore 9
start local 9 24: iload 8
iload 9
iadd
iconst_2
iload 7
imul
isub
ireturn
end local 9 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 25 0 base Lsun/security/x509/GeneralNameInterface;
0 25 1 test Lsun/security/x509/GeneralNameInterface;
0 25 2 incomparable I
1 25 3 baseRtest I
15 25 4 baseName Lsun/security/x509/X500Name;
16 25 5 testName Lsun/security/x509/X500Name;
17 25 6 commonName Lsun/security/x509/X500Name;
22 25 7 commonDistance I
23 25 8 baseDistance I
24 25 9 testDistance I
MethodParameters:
Name Flags
base
test
incomparable
static int targetDistance(sun.security.x509.NameConstraintsExtension, java.security.cert.X509Certificate, sun.security.x509.GeneralNameInterface);
descriptor: (Lsun/security/x509/NameConstraintsExtension;Ljava/security/cert/X509Certificate;Lsun/security/x509/GeneralNameInterface;)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 2
aload 0
aload 1
invokevirtual sun.security.x509.NameConstraintsExtension.verify:(Ljava/security/cert/X509Certificate;)Z
ifne 2
1: new java.io.IOException
dup
ldc "certificate does not satisfy existing name constraints"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.x509.X509CertImpl.toImpl:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
astore 3
start local 3 3: goto 6
end local 3 StackMap locals:
StackMap stack: java.security.cert.CertificateException
4: astore 4
start local 4 5: new java.io.IOException
dup
ldc "Invalid certificate"
aload 4
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 6: StackMap locals: sun.security.x509.X509CertImpl
StackMap stack:
aload 3
invokevirtual sun.security.x509.X509CertImpl.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
astore 4
start local 4 7: aload 4
aload 2
invokevirtual sun.security.x509.X500Name.equals:(Ljava/lang/Object;)Z
ifeq 9
8: iconst_0
ireturn
9: StackMap locals: sun.security.x509.X500Name
StackMap stack:
aload 3
invokevirtual sun.security.x509.X509CertImpl.getSubjectAlternativeNameExtension:()Lsun/security/x509/SubjectAlternativeNameExtension;
10: astore 5
start local 5 11: aload 5
ifnull 24
12: aload 5
13: ldc "subject_name"
14: invokevirtual sun.security.x509.SubjectAlternativeNameExtension.get:(Ljava/lang/String;)Lsun/security/x509/GeneralNames;
astore 6
start local 6 15: aload 6
ifnull 24
16: iconst_0
istore 7
start local 7 17: aload 6
invokevirtual sun.security.x509.GeneralNames.size:()I
istore 8
start local 8 18: goto 23
19: StackMap locals: sun.security.x509.NameConstraintsExtension java.security.cert.X509Certificate sun.security.x509.GeneralNameInterface sun.security.x509.X509CertImpl sun.security.x509.X500Name sun.security.x509.SubjectAlternativeNameExtension sun.security.x509.GeneralNames int int
StackMap stack:
aload 6
iload 7
invokevirtual sun.security.x509.GeneralNames.get:(I)Lsun/security/x509/GeneralName;
invokevirtual sun.security.x509.GeneralName.getName:()Lsun/security/x509/GeneralNameInterface;
astore 9
start local 9 20: aload 9
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 22
21: iconst_0
ireturn
end local 9 22: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
iload 8
if_icmplt 19
end local 8 end local 7 end local 6 24: StackMap locals:
StackMap stack:
aload 3
invokevirtual sun.security.x509.X509CertImpl.getNameConstraintsExtension:()Lsun/security/x509/NameConstraintsExtension;
astore 6
start local 6 25: aload 6
ifnonnull 27
26: iconst_m1
ireturn
27: StackMap locals: sun.security.x509.NameConstraintsExtension
StackMap stack:
aload 0
ifnull 30
28: aload 0
aload 6
invokevirtual sun.security.x509.NameConstraintsExtension.merge:(Lsun/security/x509/NameConstraintsExtension;)V
29: goto 31
30: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.security.x509.NameConstraintsExtension.clone:()Ljava/lang/Object;
checkcast sun.security.x509.NameConstraintsExtension
astore 0
31: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 35
32: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Builder.targetDistance() merged constraints: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
33: aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
35: StackMap locals:
StackMap stack:
aload 0
ldc "permitted_subtrees"
invokevirtual sun.security.x509.NameConstraintsExtension.get:(Ljava/lang/String;)Lsun/security/x509/GeneralSubtrees;
36: astore 7
start local 7 37: aload 0
ldc "excluded_subtrees"
invokevirtual sun.security.x509.NameConstraintsExtension.get:(Ljava/lang/String;)Lsun/security/x509/GeneralSubtrees;
38: astore 8
start local 8 39: aload 7
ifnull 41
40: aload 7
aload 8
invokevirtual sun.security.x509.GeneralSubtrees.reduce:(Lsun/security/x509/GeneralSubtrees;)V
41: StackMap locals: sun.security.x509.GeneralSubtrees sun.security.x509.GeneralSubtrees
StackMap stack:
getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 45
42: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Builder.targetDistance() reduced constraints: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
43: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.x509.NameConstraintsExtension.verify:(Lsun/security/x509/GeneralNameInterface;)Z
ifne 47
46: new java.io.IOException
dup
ldc "New certificate not allowed to sign certificate for target"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals:
StackMap stack:
aload 7
ifnonnull 49
48: iconst_m1
ireturn
49: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 50: aload 7
invokevirtual sun.security.x509.GeneralSubtrees.size:()I
istore 10
start local 10 51: goto 57
52: StackMap locals: int int
StackMap stack:
aload 7
iload 9
invokevirtual sun.security.x509.GeneralSubtrees.get:(I)Lsun/security/x509/GeneralSubtree;
invokevirtual sun.security.x509.GeneralSubtree.getName:()Lsun/security/x509/GeneralName;
invokevirtual sun.security.x509.GeneralName.getName:()Lsun/security/x509/GeneralNameInterface;
astore 11
start local 11 53: aload 11
aload 2
iconst_m1
invokestatic sun.security.provider.certpath.Builder.distance:(Lsun/security/x509/GeneralNameInterface;Lsun/security/x509/GeneralNameInterface;I)I
istore 12
start local 12 54: iload 12
iflt 56
55: iload 12
iconst_1
iadd
ireturn
end local 12 end local 11 56: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
57: iload 9
iload 10
if_icmplt 52
end local 10 end local 9 58: iconst_m1
ireturn
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 59 0 constraints Lsun/security/x509/NameConstraintsExtension;
0 59 1 cert Ljava/security/cert/X509Certificate;
0 59 2 target Lsun/security/x509/GeneralNameInterface;
3 4 3 certImpl Lsun/security/x509/X509CertImpl;
6 59 3 certImpl Lsun/security/x509/X509CertImpl;
5 6 4 e Ljava/security/cert/CertificateException;
7 59 4 subject Lsun/security/x509/X500Name;
11 59 5 altNameExt Lsun/security/x509/SubjectAlternativeNameExtension;
15 24 6 altNames Lsun/security/x509/GeneralNames;
17 24 7 j I
18 24 8 n I
20 22 9 altName Lsun/security/x509/GeneralNameInterface;
25 59 6 ncExt Lsun/security/x509/NameConstraintsExtension;
37 59 7 permitted Lsun/security/x509/GeneralSubtrees;
39 59 8 excluded Lsun/security/x509/GeneralSubtrees;
50 58 9 i I
51 58 10 n I
53 56 11 perName Lsun/security/x509/GeneralNameInterface;
54 56 12 distance I
Exception table:
from to target type
2 3 4 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
constraints
cert
target
java.util.Set<java.lang.String> getMatchingPolicies();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.certpath.Builder.matchingPolicies:Ljava/util/Set;
ifnull 9
1: aload 0
getfield sun.security.provider.certpath.Builder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.initialPolicies:()Ljava/util/Set;
astore 1
start local 1 2: aload 1
invokeinterface java.util.Set.isEmpty:()Z
ifne 8
3: aload 1
ldc "2.5.29.32.0"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 8
4: aload 0
getfield sun.security.provider.certpath.Builder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.policyMappingInhibited:()Z
ifeq 8
5: aload 0
new java.util.HashSet
dup
aload 1
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield sun.security.provider.certpath.Builder.matchingPolicies:Ljava/util/Set;
6: aload 0
getfield sun.security.provider.certpath.Builder.matchingPolicies:Ljava/util/Set;
ldc "2.5.29.32.0"
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 9
8: StackMap locals: java.util.Set
StackMap stack:
aload 0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putfield sun.security.provider.certpath.Builder.matchingPolicies:Ljava/util/Set;
end local 1 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.Builder.matchingPolicies:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/provider/certpath/Builder;
2 9 1 initialPolicies Ljava/util/Set<Ljava/lang/String;>;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
boolean addMatchingCerts(java.security.cert.X509CertSelector, java.util.Collection<java.security.cert.CertStore>, java.util.Collection<java.security.cert.X509Certificate>, );
descriptor: (Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
flags: (0x0000)
Code:
stack=4, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.security.cert.X509CertSelector.getCertificate:()Ljava/security/cert/X509Certificate;
astore 5
start local 5 1: aload 5
ifnull 15
2: aload 1
aload 5
invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
ifeq 14
3: aload 5
aload 0
getfield sun.security.provider.certpath.Builder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
4: invokestatic sun.security.x509.X509CertImpl.isSelfSigned:(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
5: ifne 14
6: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 13
7: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Builder.addMatchingCerts: adding target cert\n SN: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 5
invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
9: invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc "\n Subject: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
11: ldc "\n Issuer: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
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;
12: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
13: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 3
aload 5
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
ireturn
14: StackMap locals:
StackMap stack:
iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 16: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 36
StackMap locals: sun.security.provider.certpath.Builder java.security.cert.X509CertSelector java.util.Collection java.util.Collection int java.security.cert.X509Certificate int top java.util.Iterator
StackMap stack:
17: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.CertStore
astore 7
start local 7 18: aload 7
aload 1
invokevirtual java.security.cert.CertStore.getCertificates:(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
19: astore 9
start local 9 20: aload 9
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 11
goto 27
StackMap locals: sun.security.provider.certpath.Builder java.security.cert.X509CertSelector java.util.Collection java.util.Collection int java.security.cert.X509Certificate int java.security.cert.CertStore java.util.Iterator java.util.Collection top java.util.Iterator
StackMap stack:
21: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
astore 10
start local 10 22: aload 10
checkcast java.security.cert.X509Certificate
aload 0
getfield sun.security.provider.certpath.Builder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
23: invokestatic sun.security.x509.X509CertImpl.isSelfSigned:(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
24: ifne 27
25: aload 3
aload 10
checkcast java.security.cert.X509Certificate
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
ifeq 27
26: iconst_1
istore 6
end local 10 27: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
28: iload 4
ifne 36
iload 6
ifeq 36
29: iconst_1
ireturn
end local 9 30: StackMap locals: sun.security.provider.certpath.Builder java.security.cert.X509CertSelector java.util.Collection java.util.Collection int java.security.cert.X509Certificate int java.security.cert.CertStore java.util.Iterator
StackMap stack: java.security.cert.CertStoreException
astore 9
start local 9 31: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
ifnull 36
32: getstatic sun.security.provider.certpath.Builder.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Builder.addMatchingCerts, non-fatal exception retrieving certs: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
33: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
35: aload 9
invokevirtual java.security.cert.CertStoreException.printStackTrace:()V
end local 9 end local 7 36: StackMap locals: sun.security.provider.certpath.Builder java.security.cert.X509CertSelector java.util.Collection java.util.Collection int java.security.cert.X509Certificate int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
37: iload 6
ireturn
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 38 0 this Lsun/security/provider/certpath/Builder;
0 38 1 selector Ljava/security/cert/X509CertSelector;
0 38 2 certStores Ljava/util/Collection<Ljava/security/cert/CertStore;>;
0 38 3 resultCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 38 4 checkAll Z
1 38 5 targetCert Ljava/security/cert/X509Certificate;
16 38 6 add Z
18 36 7 store Ljava/security/cert/CertStore;
20 30 9 certs Ljava/util/Collection<+Ljava/security/cert/Certificate;>;
22 27 10 cert Ljava/security/cert/Certificate;
31 36 9 cse Ljava/security/cert/CertStoreException;
Exception table:
from to target type
18 29 30 Class java.security.cert.CertStoreException
Signature: (Ljava/security/cert/X509CertSelector;Ljava/util/Collection<Ljava/security/cert/CertStore;>;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Z)Z
MethodParameters:
Name Flags
selector
certStores
resultCerts
checkAll
}
SourceFile: "Builder.java"
InnerClasses:
BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX