public final class sun.security.validator.PKIXValidator extends sun.security.validator.Validator
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.validator.PKIXValidator
super_class: sun.security.validator.Validator
{
private static final boolean checkTLSRevocation;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean TRY_VALIDATOR;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final boolean ALLOW_NON_CA_ANCHOR;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Set<java.security.cert.X509Certificate> trustedCerts;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
private final java.security.cert.PKIXBuilderParameters parameterTemplate;
descriptor: Ljava/security/cert/PKIXBuilderParameters;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int certPathLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<javax.security.auth.x500.X500Principal, java.util.List<java.security.PublicKey>> trustedSubjects;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljavax/security/auth/x500/X500Principal;Ljava/util/List<Ljava/security/PublicKey;>;>;
private final java.security.cert.CertificateFactory factory;
descriptor: Ljava/security/cert/CertificateFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean plugin;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new sun.security.action.GetBooleanAction
dup
ldc "com.sun.net.ssl.checkRevocation"
invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
2: putstatic sun.security.validator.PKIXValidator.checkTLSRevocation:Z
3: invokestatic sun.security.validator.PKIXValidator.allowNonCaAnchor:()Z
putstatic sun.security.validator.PKIXValidator.ALLOW_NON_CA_ANCHOR:Z
return
LocalVariableTable:
Start End Slot Name Signature
private static boolean allowNonCaAnchor();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "jdk.security.allowNonCaAnchor"
invokestatic sun.security.util.SecurityProperties.privilegedGetOverridable:(Ljava/lang/String;)Ljava/lang/String;
1: astore 0
start local 0 2: aload 0
ifnull 4
aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifne 3
aload 0
ldc "true"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 4
StackMap locals: java.lang.String
StackMap stack:
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 5 0 prop Ljava/lang/String;
void <init>(java.lang.String, java.util.Collection<java.security.cert.X509Certificate>);
descriptor: (Ljava/lang/String;Ljava/util/Collection;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "PKIX"
aload 1
invokespecial sun.security.validator.Validator.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: aload 0
iconst_m1
putfield sun.security.validator.PKIXValidator.certPathLength:I
2: aload 2
instanceof java.util.Set
ifeq 5
3: aload 0
aload 2
checkcast java.util.Set
putfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
4: goto 6
5: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection
StackMap stack:
aload 0
new java.util.HashSet
dup
aload 2
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
6: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
start local 3 7: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set top java.util.Iterator
StackMap stack:
8: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 4
start local 4 9: aload 3
new java.security.cert.TrustAnchor
dup
aload 4
aconst_null
invokespecial java.security.cert.TrustAnchor.<init>:(Ljava/security/cert/X509Certificate;[B)V
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: aload 0
new java.security.cert.PKIXBuilderParameters
dup
aload 3
aconst_null
invokespecial java.security.cert.PKIXBuilderParameters.<init>:(Ljava/util/Set;Ljava/security/cert/CertSelector;)V
putfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
12: goto 15
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set
StackMap stack: java.security.InvalidAlgorithmParameterException
13: astore 4
start local 4 14: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.security.InvalidAlgorithmParameterException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 15: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.validator.PKIXValidator.setDefaultParameters:(Ljava/lang/String;)V
16: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
17: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 26
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set top java.util.Iterator
StackMap stack:
18: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 4
start local 4 19: aload 4
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 6
start local 6 20: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 23
21: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 7
start local 7 22: goto 25
end local 7 23: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set java.security.cert.X509Certificate java.util.Iterator javax.security.auth.x500.X500Principal
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 24: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 6
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: StackMap locals: java.util.List
StackMap stack:
aload 7
aload 4
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 6 end local 4 26: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
27: aload 0
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
putfield sun.security.validator.PKIXValidator.factory:Ljava/security/cert/CertificateFactory;
28: goto 31
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set
StackMap stack: java.security.cert.CertificateException
29: astore 4
start local 4 30: new java.lang.RuntimeException
dup
ldc "Internal error"
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 31: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "plugin code signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putfield sun.security.validator.PKIXValidator.plugin:Z
32: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/security/validator/PKIXValidator;
0 33 1 variant Ljava/lang/String;
0 33 2 trustedCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 33 3 trustAnchors Ljava/util/Set<Ljava/security/cert/TrustAnchor;>;
9 10 4 cert Ljava/security/cert/X509Certificate;
14 15 4 e Ljava/security/InvalidAlgorithmParameterException;
19 26 4 cert Ljava/security/cert/X509Certificate;
20 26 6 dn Ljavax/security/auth/x500/X500Principal;
22 23 7 keys Ljava/util/List<Ljava/security/PublicKey;>;
24 26 7 keys Ljava/util/List<Ljava/security/PublicKey;>;
30 31 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
11 12 13 Class java.security.InvalidAlgorithmParameterException
27 28 29 Class java.security.cert.CertificateException
Signature: (Ljava/lang/String;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
variant
trustedCerts
void <init>(java.lang.String, java.security.cert.PKIXBuilderParameters);
descriptor: (Ljava/lang/String;Ljava/security/cert/PKIXBuilderParameters;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "PKIX"
aload 1
invokespecial sun.security.validator.Validator.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: aload 0
iconst_m1
putfield sun.security.validator.PKIXValidator.certPathLength:I
2: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
3: aload 2
invokevirtual java.security.cert.PKIXBuilderParameters.getTrustAnchors:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.security.cert.PKIXBuilderParameters top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.TrustAnchor
astore 3
start local 3 5: aload 3
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 5
start local 5 6: aload 5
ifnull 8
7: aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: aload 0
aload 2
putfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
10: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
11: aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 20
StackMap locals:
StackMap stack:
12: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 13: aload 3
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 14: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 17
15: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 6
start local 6 16: goto 19
end local 6 17: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.security.cert.PKIXBuilderParameters java.security.cert.X509Certificate java.util.Iterator javax.security.auth.x500.X500Principal
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 18: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 5
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: StackMap locals: java.util.List
StackMap stack:
aload 6
aload 3
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 3 20: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.security.cert.PKIXBuilderParameters top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
21: aload 0
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
putfield sun.security.validator.PKIXValidator.factory:Ljava/security/cert/CertificateFactory;
22: goto 25
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.security.cert.PKIXBuilderParameters
StackMap stack: java.security.cert.CertificateException
23: astore 3
start local 3 24: new java.lang.RuntimeException
dup
ldc "Internal error"
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 25: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "plugin code signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putfield sun.security.validator.PKIXValidator.plugin:Z
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/validator/PKIXValidator;
0 27 1 variant Ljava/lang/String;
0 27 2 params Ljava/security/cert/PKIXBuilderParameters;
5 8 3 anchor Ljava/security/cert/TrustAnchor;
6 8 5 cert Ljava/security/cert/X509Certificate;
13 20 3 cert Ljava/security/cert/X509Certificate;
14 20 5 dn Ljavax/security/auth/x500/X500Principal;
16 17 6 keys Ljava/util/List<Ljava/security/PublicKey;>;
18 20 6 keys Ljava/util/List<Ljava/security/PublicKey;>;
24 25 3 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
21 22 23 Class java.security.cert.CertificateException
MethodParameters:
Name Flags
variant
params
public java.util.Collection<java.security.cert.X509Certificate> getTrustedCertificates();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/validator/PKIXValidator;
Signature: ()Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
public int getCertPathLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.validator.PKIXValidator.certPathLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/validator/PKIXValidator;
private void setDefaultParameters(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "tls server"
if_acmpeq 2
1: aload 1
ldc "tls client"
if_acmpne 4
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
getstatic sun.security.validator.PKIXValidator.checkTLSRevocation:Z
invokevirtual java.security.cert.PKIXBuilderParameters.setRevocationEnabled:(Z)V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
iconst_0
invokevirtual java.security.cert.PKIXBuilderParameters.setRevocationEnabled:(Z)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/validator/PKIXValidator;
0 6 1 variant Ljava/lang/String;
MethodParameters:
Name Flags
variant
public java.security.cert.PKIXBuilderParameters getParameters();
descriptor: ()Ljava/security/cert/PKIXBuilderParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/validator/PKIXValidator;
java.security.cert.X509Certificate[] engineValidate(java.security.cert.X509Certificate[], java.util.Collection<java.security.cert.X509Certificate>, java.util.List<byte[]>, java.security.AlgorithmConstraints, );
descriptor: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/util/List;Ljava/security/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
flags: (0x0000)
Code:
stack=6, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
ifnull 1
aload 1
arraylength
ifne 4
1: StackMap locals:
StackMap stack:
new java.security.cert.CertificateException
dup
2: ldc "null or zero-length certificate chain"
3: invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 5: new sun.security.provider.certpath.PKIXExtendedParameters
dup
6: aload 0
getfield sun.security.validator.PKIXValidator.parameterTemplate:Ljava/security/cert/PKIXBuilderParameters;
invokevirtual java.security.cert.PKIXBuilderParameters.clone:()Ljava/lang/Object;
checkcast java.security.cert.PKIXBuilderParameters
7: aload 5
instanceof java.security.Timestamp
ifeq 9
8: aload 5
checkcast java.security.Timestamp
goto 10
StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection java.util.List java.security.AlgorithmConstraints java.lang.Object java.security.cert.PKIXBuilderParameters
StackMap stack: new 5 new 5 java.security.cert.PKIXBuilderParameters
9: aconst_null
10: StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection java.util.List java.security.AlgorithmConstraints java.lang.Object java.security.cert.PKIXBuilderParameters
StackMap stack: new 5 new 5 java.security.cert.PKIXBuilderParameters java.security.Timestamp
aload 0
getfield sun.security.validator.PKIXValidator.variant:Ljava/lang/String;
11: invokespecial sun.security.provider.certpath.PKIXExtendedParameters.<init>:(Ljava/security/cert/PKIXBuilderParameters;Ljava/security/Timestamp;Ljava/lang/String;)V
astore 6
12: goto 14
StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
13: pop
14: StackMap locals:
StackMap stack:
aload 4
ifnull 18
15: aload 6
16: new sun.security.provider.certpath.AlgorithmChecker
dup
aload 4
aconst_null
aload 0
getfield sun.security.validator.PKIXValidator.variant:Ljava/lang/String;
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/AlgorithmConstraints;Ljava/security/Timestamp;Ljava/lang/String;)V
17: invokevirtual java.security.cert.PKIXBuilderParameters.addCertPathChecker:(Ljava/security/cert/PKIXCertPathChecker;)V
18: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 20
19: aload 6
aload 1
aload 3
invokestatic sun.security.validator.PKIXValidator.addResponses:(Ljava/security/cert/PKIXBuilderParameters;[Ljava/security/cert/X509Certificate;Ljava/util/List;)V
20: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 21: iconst_0
istore 8
start local 8 22: goto 41
23: StackMap locals: javax.security.auth.x500.X500Principal int
StackMap stack:
aload 1
iload 8
aaload
astore 9
start local 9 24: aload 9
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 10
start local 10 25: iload 8
ifne 28
26: aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 39
27: iconst_1
anewarray java.security.cert.X509Certificate
dup
iconst_0
aload 1
iconst_0
aaload
aastore
areturn
28: StackMap locals: java.security.cert.X509Certificate javax.security.auth.x500.X500Principal
StackMap stack:
aload 10
aload 7
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 30
29: aload 0
aload 1
aload 2
aload 6
invokevirtual sun.security.validator.PKIXValidator.doBuild:([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 36
31: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 39
32: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
33: aload 9
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
34: invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
35: ifeq 39
36: StackMap locals:
StackMap stack:
iload 8
anewarray java.security.cert.X509Certificate
astore 11
start local 11 37: aload 1
iconst_0
aload 11
iconst_0
iload 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: aload 0
aload 11
aload 6
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
end local 11 39: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 7
end local 10 end local 9 40: iinc 8 1
StackMap locals:
StackMap stack:
41: iload 8
aload 1
arraylength
if_icmplt 23
end local 8 42: aload 1
aload 1
arraylength
iconst_1
isub
aaload
astore 8
start local 8 43: aload 8
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 9
start local 9 44: aload 8
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
pop
45: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 48
46: aload 0
aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
aload 8
invokevirtual sun.security.validator.PKIXValidator.isSignatureValid:(Ljava/util/List;Ljava/security/cert/X509Certificate;)Z
ifeq 48
47: aload 0
aload 1
aload 6
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
48: StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection java.util.List java.security.AlgorithmConstraints java.lang.Object java.security.cert.PKIXBuilderParameters javax.security.auth.x500.X500Principal java.security.cert.X509Certificate javax.security.auth.x500.X500Principal
StackMap stack:
aload 0
getfield sun.security.validator.PKIXValidator.plugin:Z
ifeq 65
49: aload 1
arraylength
iconst_1
if_icmple 62
50: aload 1
arraylength
iconst_1
isub
anewarray java.security.cert.X509Certificate
51: astore 10
start local 10 52: aload 1
iconst_0
aload 10
iconst_0
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
53: aload 6
54: new java.security.cert.TrustAnchor
dup
55: aload 1
aload 1
arraylength
iconst_1
isub
aaload
aconst_null
56: invokespecial java.security.cert.TrustAnchor.<init>:(Ljava/security/cert/X509Certificate;[B)V
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
57: invokevirtual java.security.cert.PKIXBuilderParameters.setTrustAnchors:(Ljava/util/Set;)V
58: goto 61
StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection java.util.List java.security.AlgorithmConstraints java.lang.Object java.security.cert.PKIXBuilderParameters javax.security.auth.x500.X500Principal java.security.cert.X509Certificate javax.security.auth.x500.X500Principal java.security.cert.X509Certificate[]
StackMap stack: java.security.InvalidAlgorithmParameterException
59: astore 11
start local 11 60: new java.security.cert.CertificateException
dup
aload 11
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 11 61: StackMap locals:
StackMap stack:
aload 0
aload 10
aload 6
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
pop
end local 10 62: StackMap locals:
StackMap stack:
new sun.security.validator.ValidatorException
dup
63: getstatic sun.security.validator.ValidatorException.T_NO_TRUST_ANCHOR:Ljava/lang/Object;
64: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;)V
athrow
end local 9 end local 8 end local 7 65: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 6
invokevirtual sun.security.validator.PKIXValidator.doBuild:([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
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 66 0 this Lsun/security/validator/PKIXValidator;
0 66 1 chain [Ljava/security/cert/X509Certificate;
0 66 2 otherCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 66 3 responseList Ljava/util/List<[B>;
0 66 4 constraints Ljava/security/AlgorithmConstraints;
0 66 5 parameter Ljava/lang/Object;
5 66 6 pkixParameters Ljava/security/cert/PKIXBuilderParameters;
21 65 7 prevIssuer Ljavax/security/auth/x500/X500Principal;
22 42 8 i I
24 40 9 cert Ljava/security/cert/X509Certificate;
25 40 10 dn Ljavax/security/auth/x500/X500Principal;
37 39 11 newChain [Ljava/security/cert/X509Certificate;
43 65 8 last Ljava/security/cert/X509Certificate;
44 65 9 issuer Ljavax/security/auth/x500/X500Principal;
52 62 10 newChain [Ljava/security/cert/X509Certificate;
60 61 11 iape Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
5 12 13 Class java.security.InvalidAlgorithmParameterException
53 58 59 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.cert.CertificateException
Signature: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Ljava/util/List<[B>;Ljava/security/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
chain
otherCerts
responseList
constraints
parameter
private boolean isSignatureValid(java.util.List<java.security.PublicKey>, java.security.cert.X509Certificate);
descriptor: (Ljava/util/List;Ljava/security/cert/X509Certificate;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.validator.PKIXValidator.plugin:Z
ifeq 8
1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: sun.security.validator.PKIXValidator java.util.List java.security.cert.X509Certificate top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.PublicKey
astore 3
start local 3 3: aload 2
aload 3
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
4: iconst_1
ireturn
5: StackMap locals: sun.security.validator.PKIXValidator java.util.List java.security.cert.X509Certificate java.security.PublicKey java.util.Iterator
StackMap stack: java.lang.Exception
pop
end local 3 6: StackMap locals: sun.security.validator.PKIXValidator java.util.List java.security.cert.X509Certificate top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iconst_0
ireturn
8: StackMap locals: sun.security.validator.PKIXValidator java.util.List java.security.cert.X509Certificate
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/validator/PKIXValidator;
0 9 1 keys Ljava/util/List<Ljava/security/PublicKey;>;
0 9 2 sub Ljava/security/cert/X509Certificate;
3 6 3 key Ljava/security/PublicKey;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
Signature: (Ljava/util/List<Ljava/security/PublicKey;>;Ljava/security/cert/X509Certificate;)Z
MethodParameters:
Name Flags
keys
sub
private static java.security.cert.X509Certificate[] toArray(java.security.cert.CertPath, java.security.cert.TrustAnchor);
descriptor: (Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;)[Ljava/security/cert/X509Certificate;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 2
start local 2 1: aload 2
ifnonnull 5
2: new sun.security.validator.ValidatorException
dup
3: ldc "TrustAnchor must be specified as certificate"
4: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 2
invokestatic sun.security.validator.PKIXValidator.verifyTrustAnchor:(Ljava/security/cert/X509Certificate;)V
6: aload 0
invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
7: astore 3
start local 3 8: aload 3
invokeinterface java.util.List.size:()I
iconst_1
iadd
anewarray java.security.cert.X509Certificate
astore 4
start local 4 9: aload 3
aload 4
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
10: aload 4
aload 4
arraylength
iconst_1
isub
aload 2
aastore
11: 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 12 0 path Ljava/security/cert/CertPath;
0 12 1 anchor Ljava/security/cert/TrustAnchor;
1 12 2 trustedCert Ljava/security/cert/X509Certificate;
8 12 3 list Ljava/util/List<+Ljava/security/cert/Certificate;>;
9 12 4 chain [Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
path
anchor
private void setDate(java.security.cert.PKIXBuilderParameters);
descriptor: (Ljava/security/cert/PKIXBuilderParameters;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.validator.PKIXValidator.validationDate:Ljava/util/Date;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 1
aload 2
invokevirtual java.security.cert.PKIXBuilderParameters.setDate:(Ljava/util/Date;)V
3: StackMap locals: java.util.Date
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/validator/PKIXValidator;
0 4 1 params Ljava/security/cert/PKIXBuilderParameters;
1 4 2 date Ljava/util/Date;
MethodParameters:
Name Flags
params
private java.security.cert.X509Certificate[] doValidate(java.security.cert.X509Certificate[], java.security.cert.PKIXBuilderParameters);
descriptor: ([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual sun.security.validator.PKIXValidator.setDate:(Ljava/security/cert/PKIXBuilderParameters;)V
1: ldc "PKIX"
invokestatic java.security.cert.CertPathValidator.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
astore 3
start local 3 2: aload 0
getfield sun.security.validator.PKIXValidator.factory:Ljava/security/cert/CertificateFactory;
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
astore 4
start local 4 3: aload 0
aload 1
arraylength
putfield sun.security.validator.PKIXValidator.certPathLength:I
4: aload 3
aload 4
aload 2
invokevirtual java.security.cert.CertPathValidator.validate:(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
checkcast java.security.cert.PKIXCertPathValidatorResult
5: astore 5
start local 5 6: aload 4
aload 5
invokevirtual java.security.cert.PKIXCertPathValidatorResult.getTrustAnchor:()Ljava/security/cert/TrustAnchor;
invokestatic sun.security.validator.PKIXValidator.toArray:(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;)[Ljava/security/cert/X509Certificate;
7: areturn
end local 5 end local 4 end local 3 8: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 3
start local 3 9: new sun.security.validator.ValidatorException
dup
10: new java.lang.StringBuilder
dup
ldc "PKIX path validation failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.security.GeneralSecurityException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
11: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/validator/PKIXValidator;
0 12 1 chain [Ljava/security/cert/X509Certificate;
0 12 2 params Ljava/security/cert/PKIXBuilderParameters;
2 8 3 validator Ljava/security/cert/CertPathValidator;
3 8 4 path Ljava/security/cert/CertPath;
6 8 5 result Ljava/security/cert/PKIXCertPathValidatorResult;
9 12 3 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 7 8 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
chain
params
private static void verifyTrustAnchor(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic sun.security.validator.PKIXValidator.ALLOW_NON_CA_ANCHOR:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.cert.X509Certificate.getVersion:()I
iconst_3
if_icmpge 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
iconst_m1
if_icmpne 11
5: new sun.security.validator.ValidatorException
dup
6: new java.lang.StringBuilder
dup
ldc "TrustAnchor with subject \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: ldc "\" is not a CA certificate"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
astore 1
start local 1 12: aload 1
ifnull 19
aload 1
iconst_5
baload
ifne 19
13: new sun.security.validator.ValidatorException
dup
14: new java.lang.StringBuilder
dup
ldc "TrustAnchor with subject \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
16: ldc "\" does not have keyCertSign bit set in KeyUsage extension"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: boolean[]
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 trustedCert Ljava/security/cert/X509Certificate;
12 20 1 keyUsageBits [Z
Exceptions:
throws sun.security.validator.ValidatorException
MethodParameters:
Name Flags
trustedCert
private java.security.cert.X509Certificate[] doBuild(java.security.cert.X509Certificate[], java.util.Collection<java.security.cert.X509Certificate>, java.security.cert.PKIXBuilderParameters);
descriptor: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 3
invokevirtual sun.security.validator.PKIXValidator.setDate:(Ljava/security/cert/PKIXBuilderParameters;)V
1: new java.security.cert.X509CertSelector
dup
invokespecial java.security.cert.X509CertSelector.<init>:()V
astore 4
start local 4 2: aload 4
aload 1
iconst_0
aaload
invokevirtual java.security.cert.X509CertSelector.setCertificate:(Ljava/security/cert/X509Certificate;)V
3: aload 3
aload 4
invokevirtual java.security.cert.PKIXBuilderParameters.setTargetCertConstraints:(Ljava/security/cert/CertSelector;)V
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
5: astore 5
start local 5 6: aload 5
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
7: aload 2
ifnull 9
8: aload 5
aload 2
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
9: StackMap locals: java.security.cert.X509CertSelector java.util.Collection
StackMap stack:
ldc "Collection"
10: new java.security.cert.CollectionCertStoreParameters
dup
aload 5
invokespecial java.security.cert.CollectionCertStoreParameters.<init>:(Ljava/util/Collection;)V
11: invokestatic java.security.cert.CertStore.getInstance:(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore;
astore 6
start local 6 12: aload 3
aload 6
invokevirtual java.security.cert.PKIXBuilderParameters.addCertStore:(Ljava/security/cert/CertStore;)V
13: ldc "PKIX"
invokestatic java.security.cert.CertPathBuilder.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;
astore 7
start local 7 14: aload 7
aload 3
invokevirtual java.security.cert.CertPathBuilder.build:(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
checkcast java.security.cert.PKIXCertPathBuilderResult
15: astore 8
start local 8 16: aload 8
invokevirtual java.security.cert.PKIXCertPathBuilderResult.getCertPath:()Ljava/security/cert/CertPath;
aload 8
invokevirtual java.security.cert.PKIXCertPathBuilderResult.getTrustAnchor:()Ljava/security/cert/TrustAnchor;
invokestatic sun.security.validator.PKIXValidator.toArray:(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;)[Ljava/security/cert/X509Certificate;
17: areturn
end local 8 end local 7 end local 6 end local 5 end local 4 18: StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection java.security.cert.PKIXBuilderParameters
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 19: new sun.security.validator.ValidatorException
dup
20: new java.lang.StringBuilder
dup
ldc "PKIX path building failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.security.GeneralSecurityException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
21: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/security/validator/PKIXValidator;
0 22 1 chain [Ljava/security/cert/X509Certificate;
0 22 2 otherCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 22 3 params Ljava/security/cert/PKIXBuilderParameters;
2 18 4 selector Ljava/security/cert/X509CertSelector;
6 18 5 certs Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
12 18 6 store Ljava/security/cert/CertStore;
14 18 7 builder Ljava/security/cert/CertPathBuilder;
16 18 8 result Ljava/security/cert/PKIXCertPathBuilderResult;
19 22 4 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 17 18 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.cert.CertificateException
Signature: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
chain
otherCerts
params
private static void addResponses(java.security.cert.PKIXBuilderParameters, java.security.cert.X509Certificate[], java.util.List<byte[]>);
descriptor: (Ljava/security/cert/PKIXBuilderParameters;[Ljava/security/cert/X509Certificate;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.security.cert.PKIXBuilderParameters.isRevocationEnabled:()Z
ifeq 29
1: aconst_null
astore 3
start local 3 2: new java.util.ArrayList
dup
aload 0
invokevirtual java.security.cert.PKIXBuilderParameters.getCertPathCheckers:()Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
3: astore 4
start local 4 4: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: java.security.cert.PKIXBuilderParameters java.security.cert.X509Certificate[] java.util.List java.security.cert.PKIXRevocationChecker java.util.List top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.PKIXCertPathChecker
astore 5
start local 5 6: aload 5
instanceof java.security.cert.PKIXRevocationChecker
ifeq 9
7: aload 5
checkcast java.security.cert.PKIXRevocationChecker
astore 3
8: goto 10
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
10: StackMap locals: java.security.cert.PKIXBuilderParameters java.security.cert.X509Certificate[] java.util.List java.security.cert.PKIXRevocationChecker java.util.List
StackMap stack:
aload 3
ifnonnull 14
11: ldc "PKIX"
invokestatic java.security.cert.CertPathValidator.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
invokevirtual java.security.cert.CertPathValidator.getRevocationChecker:()Ljava/security/cert/CertPathChecker;
12: checkcast java.security.cert.PKIXRevocationChecker
astore 3
13: aload 4
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.security.cert.PKIXRevocationChecker.getOcspResponses:()Ljava/util/Map;
15: astore 5
start local 5 16: aload 1
arraylength
aload 2
invokeinterface java.util.List.size:()I
invokestatic java.lang.Integer.min:(II)I
istore 6
start local 6 17: iconst_0
istore 7
start local 7 18: goto 24
19: StackMap locals: java.util.Map int int
StackMap stack:
aload 2
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast byte[]
astore 8
start local 8 20: aload 8
ifnull 23
aload 8
arraylength
ifle 23
21: aload 5
aload 1
iload 7
aaload
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 23
22: aload 5
aload 1
iload 7
aaload
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 23: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
24: iload 7
iload 6
if_icmplt 19
end local 7 25: aload 3
aload 5
invokevirtual java.security.cert.PKIXRevocationChecker.setOcspResponses:(Ljava/util/Map;)V
26: aload 0
aload 4
invokevirtual java.security.cert.PKIXBuilderParameters.setCertPathCheckers:(Ljava/util/List;)V
end local 6 end local 5 end local 4 end local 3 27: goto 29
StackMap locals: java.security.cert.PKIXBuilderParameters java.security.cert.X509Certificate[] java.util.List
StackMap stack: java.security.NoSuchAlgorithmException
28: pop
29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 pkixParams Ljava/security/cert/PKIXBuilderParameters;
0 30 1 chain [Ljava/security/cert/X509Certificate;
0 30 2 responseList Ljava/util/List<[B>;
2 27 3 revChecker Ljava/security/cert/PKIXRevocationChecker;
4 27 4 checkerList Ljava/util/List<Ljava/security/cert/PKIXCertPathChecker;>;
6 9 5 checker Ljava/security/cert/PKIXCertPathChecker;
16 27 5 responseMap Ljava/util/Map<Ljava/security/cert/X509Certificate;[B>;
17 27 6 limit I
18 25 7 idx I
20 23 8 respBytes [B
Exception table:
from to target type
1 27 28 Class java.security.NoSuchAlgorithmException
Signature: (Ljava/security/cert/PKIXBuilderParameters;[Ljava/security/cert/X509Certificate;Ljava/util/List<[B>;)V
MethodParameters:
Name Flags
pkixParams
chain
responseList
}
SourceFile: "PKIXValidator.java"