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 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: return
LocalVariableTable:
Start End Slot Name Signature
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>, sun.security.util.AlgorithmConstraints, );
descriptor: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Lsun/security/util/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
flags: (0x0000)
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 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 5
start local 5 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 4
instanceof java.security.Timestamp
ifeq 9
8: aload 4
checkcast java.security.Timestamp
goto 10
StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection sun.security.util.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 sun.security.util.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 5
12: goto 14
StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
13: pop
14: StackMap locals:
StackMap stack:
aload 3
ifnull 18
15: aload 5
16: new sun.security.provider.certpath.AlgorithmChecker
dup
aload 3
aconst_null
aload 0
getfield sun.security.validator.PKIXValidator.variant:Ljava/lang/String;
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Lsun/security/util/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:
aconst_null
astore 6
start local 6 19: iconst_0
istore 7
start local 7 20: goto 38
21: StackMap locals: javax.security.auth.x500.X500Principal int
StackMap stack:
aload 1
iload 7
aaload
astore 8
start local 8 22: aload 8
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 9
start local 9 23: iload 7
ifeq 25
aload 9
aload 6
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 25
24: aload 0
aload 1
aload 2
aload 5
invokevirtual sun.security.validator.PKIXValidator.doBuild:([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
25: StackMap locals: java.security.cert.X509Certificate javax.security.auth.x500.X500Principal
StackMap stack:
aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
aload 8
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 31
26: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 36
27: 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
28: aload 1
iload 7
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
29: invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
30: ifeq 36
31: StackMap locals:
StackMap stack:
iload 7
ifne 33
32: iconst_1
anewarray java.security.cert.X509Certificate
dup
iconst_0
aload 1
iconst_0
aaload
aastore
areturn
33: StackMap locals:
StackMap stack:
iload 7
anewarray java.security.cert.X509Certificate
astore 10
start local 10 34: aload 1
iconst_0
aload 10
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: aload 0
aload 10
aload 5
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
end local 10 36: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 6
end local 9 end local 8 37: iinc 7 1
StackMap locals:
StackMap stack:
38: iload 7
aload 1
arraylength
if_icmplt 21
end local 7 39: aload 1
aload 1
arraylength
iconst_1
isub
aaload
astore 7
start local 7 40: aload 7
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 8
start local 8 41: aload 7
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
pop
42: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 45
43: aload 0
aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
aload 7
invokevirtual sun.security.validator.PKIXValidator.isSignatureValid:(Ljava/util/List;Ljava/security/cert/X509Certificate;)Z
ifeq 45
44: aload 0
aload 1
aload 5
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
areturn
45: StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection sun.security.util.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 62
46: aload 1
arraylength
iconst_1
if_icmple 59
47: aload 1
arraylength
iconst_1
isub
anewarray java.security.cert.X509Certificate
48: astore 9
start local 9 49: aload 1
iconst_0
aload 9
iconst_0
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
50: aload 5
51: new java.security.cert.TrustAnchor
dup
52: aload 1
aload 1
arraylength
iconst_1
isub
aaload
aconst_null
53: invokespecial java.security.cert.TrustAnchor.<init>:(Ljava/security/cert/X509Certificate;[B)V
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
54: invokevirtual java.security.cert.PKIXBuilderParameters.setTrustAnchors:(Ljava/util/Set;)V
55: goto 58
StackMap locals: sun.security.validator.PKIXValidator java.security.cert.X509Certificate[] java.util.Collection sun.security.util.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
56: astore 10
start local 10 57: new java.security.cert.CertificateException
dup
aload 10
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 10 58: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 5
invokevirtual sun.security.validator.PKIXValidator.doValidate:([Ljava/security/cert/X509Certificate;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
pop
end local 9 59: StackMap locals:
StackMap stack:
new sun.security.validator.ValidatorException
dup
60: getstatic sun.security.validator.ValidatorException.T_NO_TRUST_ANCHOR:Ljava/lang/Object;
61: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;)V
athrow
end local 8 end local 7 end local 6 62: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 5
invokevirtual sun.security.validator.PKIXValidator.doBuild:([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/cert/PKIXBuilderParameters;)[Ljava/security/cert/X509Certificate;
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 63 0 this Lsun/security/validator/PKIXValidator;
0 63 1 chain [Ljava/security/cert/X509Certificate;
0 63 2 otherCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 63 3 constraints Lsun/security/util/AlgorithmConstraints;
0 63 4 parameter Ljava/lang/Object;
5 63 5 pkixParameters Ljava/security/cert/PKIXBuilderParameters;
19 62 6 prevIssuer Ljavax/security/auth/x500/X500Principal;
20 39 7 i I
22 37 8 cert Ljava/security/cert/X509Certificate;
23 37 9 dn Ljavax/security/auth/x500/X500Principal;
34 36 10 newChain [Ljava/security/cert/X509Certificate;
40 62 7 last Ljava/security/cert/X509Certificate;
41 62 8 issuer Ljavax/security/auth/x500/X500Principal;
49 59 9 newChain [Ljava/security/cert/X509Certificate;
57 58 10 iape Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
5 12 13 Class java.security.InvalidAlgorithmParameterException
50 55 56 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.cert.CertificateException
Signature: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Lsun/security/util/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
chain
otherCerts
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 0
invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
1: astore 2
start local 2 2: aload 2
invokeinterface java.util.List.size:()I
iconst_1
iadd
anewarray java.security.cert.X509Certificate
astore 3
start local 3 3: aload 2
aload 3
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
4: aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
astore 4
start local 4 5: aload 4
ifnonnull 9
6: new sun.security.validator.ValidatorException
dup
7: ldc "TrustAnchor must be specified as certificate"
8: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.util.List java.security.cert.X509Certificate[] java.security.cert.X509Certificate
StackMap stack:
aload 3
aload 3
arraylength
iconst_1
isub
aload 4
aastore
10: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 path Ljava/security/cert/CertPath;
0 11 1 anchor Ljava/security/cert/TrustAnchor;
2 11 2 list Ljava/util/List<+Ljava/security/cert/Certificate;>;
3 11 3 chain [Ljava/security/cert/X509Certificate;
5 11 4 trustedCert 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 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
}
SourceFile: "PKIXValidator.java"