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 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=6, 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
aload 2
instanceof java.util.Set
ifeq 4
3: aload 2
checkcast java.util.Set
goto 5
4: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection
StackMap stack: sun.security.validator.PKIXValidator
new java.util.HashSet
dup
aload 2
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
5: StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection
StackMap stack: sun.security.validator.PKIXValidator java.util.Set
putfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
6: 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: 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;
13: goto 18
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.util.Collection java.util.Set
StackMap stack: java.security.InvalidAlgorithmParameterException
14: astore 4
start local 4 15: 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 16: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 17: 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 18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.validator.PKIXValidator.setDefaultParameters:(Ljava/lang/String;)V
19: aload 0
aload 1
ldc "plugin code signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putfield sun.security.validator.PKIXValidator.plugin:Z
20: aload 0
aload 0
invokevirtual sun.security.validator.PKIXValidator.setTrustedSubjects:()Ljava/util/Map;
putfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
21: return
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 variant Ljava/lang/String;
0 22 2 trustedCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 22 3 trustAnchors Ljava/util/Set<Ljava/security/cert/TrustAnchor;>;
9 10 4 cert Ljava/security/cert/X509Certificate;
15 16 4 e Ljava/security/InvalidAlgorithmParameterException;
17 18 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
11 13 14 Class java.security.InvalidAlgorithmParameterException
11 13 16 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=6, 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
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;
11: goto 14
StackMap locals: sun.security.validator.PKIXValidator java.lang.String java.security.cert.PKIXBuilderParameters
StackMap stack: java.security.cert.CertificateException
12: astore 3
start local 3 13: 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 14: 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
15: aload 0
aload 0
invokevirtual sun.security.validator.PKIXValidator.setTrustedSubjects:()Ljava/util/Map;
putfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/validator/PKIXValidator;
0 17 1 variant Ljava/lang/String;
0 17 2 params Ljava/security/cert/PKIXBuilderParameters;
5 8 3 anchor Ljava/security/cert/TrustAnchor;
6 8 5 cert Ljava/security/cert/X509Certificate;
13 14 3 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
10 11 12 Class java.security.cert.CertificateException
MethodParameters:
Name Flags
variant
params
private java.util.Map<javax.security.auth.x500.X500Principal, java.util.List<java.security.PublicKey>> setTrustedSubjects();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 0
getfield sun.security.validator.PKIXValidator.trustedCerts:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: sun.security.validator.PKIXValidator java.util.Map top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 2
start local 2 3: aload 2
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 4
start local 4 4: aload 1
aload 4
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 7
5: aload 1
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 6: goto 9
end local 5 7: StackMap locals: sun.security.validator.PKIXValidator java.util.Map 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 5
start local 5 8: aload 1
aload 4
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals: java.util.List
StackMap stack:
aload 5
aload 2
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 end local 2 10: StackMap locals: sun.security.validator.PKIXValidator java.util.Map top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
11: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/validator/PKIXValidator;
1 12 1 subjectMap Ljava/util/Map<Ljavax/security/auth/x500/X500Principal;Ljava/util/List<Ljava/security/PublicKey;>;>;
3 10 2 cert Ljava/security/cert/X509Certificate;
4 10 4 dn Ljavax/security/auth/x500/X500Principal;
6 7 5 keys Ljava/util/List<Ljava/security/PublicKey;>;
8 10 5 keys Ljava/util/List<Ljava/security/PublicKey;>;
Signature: ()Ljava/util/Map<Ljavax/security/auth/x500/X500Principal;Ljava/util/List<Ljava/security/PublicKey;>;>;
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 40
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
ifeq 27
aload 10
aload 7
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 27
26: 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
27: 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 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 33
28: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 38
29: 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
30: aload 9
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
31: invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
32: ifeq 38
33: StackMap locals:
StackMap stack:
iload 8
ifne 35
34: iconst_1
anewarray java.security.cert.X509Certificate
dup
iconst_0
aload 1
iconst_0
aaload
aastore
areturn
35: StackMap locals:
StackMap stack:
iload 8
anewarray java.security.cert.X509Certificate
astore 11
start local 11 36: aload 1
iconst_0
aload 11
iconst_0
iload 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: 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 38: 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 39: iinc 8 1
StackMap locals:
StackMap stack:
40: iload 8
aload 1
arraylength
if_icmplt 23
end local 8 41: aload 1
aload 1
arraylength
iconst_1
isub
aaload
astore 8
start local 8 42: aload 8
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 9
start local 9 43: aload 8
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
pop
44: aload 0
getfield sun.security.validator.PKIXValidator.trustedSubjects:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 47
45: 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 47
46: 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
47: 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 64
48: aload 1
arraylength
iconst_1
if_icmple 61
49: aload 1
arraylength
iconst_1
isub
anewarray java.security.cert.X509Certificate
50: astore 10
start local 10 51: aload 1
iconst_0
aload 10
iconst_0
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
52: aload 6
53: new java.security.cert.TrustAnchor
dup
54: aload 1
aload 1
arraylength
iconst_1
isub
aaload
aconst_null
55: invokespecial java.security.cert.TrustAnchor.<init>:(Ljava/security/cert/X509Certificate;[B)V
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
56: invokevirtual java.security.cert.PKIXBuilderParameters.setTrustAnchors:(Ljava/util/Set;)V
57: goto 60
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
58: astore 11
start local 11 59: new java.security.cert.CertificateException
dup
aload 11
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 11 60: 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 61: StackMap locals:
StackMap stack:
new sun.security.validator.ValidatorException
dup
62: getstatic sun.security.validator.ValidatorException.T_NO_TRUST_ANCHOR:Ljava/lang/Object;
63: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;)V
athrow
64: 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 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 65 0 this Lsun/security/validator/PKIXValidator;
0 65 1 chain [Ljava/security/cert/X509Certificate;
0 65 2 otherCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 65 3 responseList Ljava/util/List<[B>;
0 65 4 constraints Ljava/security/AlgorithmConstraints;
0 65 5 parameter Ljava/lang/Object;
5 65 6 pkixParameters Ljava/security/cert/PKIXBuilderParameters;
21 65 7 prevIssuer Ljavax/security/auth/x500/X500Principal;
22 41 8 i I
24 39 9 cert Ljava/security/cert/X509Certificate;
25 39 10 dn Ljavax/security/auth/x500/X500Principal;
36 38 11 newChain [Ljava/security/cert/X509Certificate;
42 65 8 last Ljava/security/cert/X509Certificate;
43 65 9 issuer Ljavax/security/auth/x500/X500Principal;
51 61 10 newChain [Ljava/security/cert/X509Certificate;
59 60 11 iape Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
5 12 13 Class java.security.InvalidAlgorithmParameterException
52 57 58 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 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
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"