public final class sun.security.validator.SimpleValidator 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.SimpleValidator
super_class: sun.security.validator.Validator
{
static final java.lang.String OID_BASIC_CONSTRAINTS;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "2.5.29.19"
static final java.lang.String OID_NETSCAPE_CERT_TYPE;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "2.16.840.1.113730.1.1"
static final java.lang.String OID_KEY_USAGE;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "2.5.29.15"
static final java.lang.String OID_EXTENDED_KEY_USAGE;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "2.5.29.37"
static final java.lang.String OID_EKU_ANY_USAGE;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "2.5.29.37.0"
static final sun.security.util.ObjectIdentifier OBJID_NETSCAPE_CERT_TYPE;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.lang.String NSCT_SSL_CA;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ssl_ca"
private static final java.lang.String NSCT_CODE_SIGNING_CA;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "object_signing_ca"
private final java.util.Map<javax.security.auth.x500.X500Principal, java.util.List<java.security.cert.X509Certificate>> trustedX500Principals;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljavax/security/auth/x500/X500Principal;Ljava/util/List<Ljava/security/cert/X509Certificate;>;>;
private final java.util.Collection<java.security.cert.X509Certificate> trustedCerts;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.x509.NetscapeCertTypeExtension.NetscapeCertType_Id:Lsun/security/util/ObjectIdentifier;
1: putstatic sun.security.validator.SimpleValidator.OBJID_NETSCAPE_CERT_TYPE:Lsun/security/util/ObjectIdentifier;
2: 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=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "Simple"
aload 1
invokespecial sun.security.validator.Validator.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: aload 0
aload 2
putfield sun.security.validator.SimpleValidator.trustedCerts:Ljava/util/Collection;
2: aload 0
3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
4: putfield sun.security.validator.SimpleValidator.trustedX500Principals:Ljava/util/Map;
5: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: sun.security.validator.SimpleValidator java.lang.String java.util.Collection top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 7: aload 3
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 8: aload 0
getfield sun.security.validator.SimpleValidator.trustedX500Principals: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 9: aload 6
ifnonnull 12
10: new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 6
11: aload 0
getfield sun.security.validator.SimpleValidator.trustedX500Principals:Ljava/util/Map;
aload 5
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals: sun.security.validator.SimpleValidator java.lang.String java.util.Collection java.security.cert.X509Certificate java.util.Iterator javax.security.auth.x500.X500Principal java.util.List
StackMap stack:
aload 6
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 3 13: StackMap locals: sun.security.validator.SimpleValidator java.lang.String java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/validator/SimpleValidator;
0 15 1 variant Ljava/lang/String;
0 15 2 trustedCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
7 13 3 cert Ljava/security/cert/X509Certificate;
8 13 5 principal Ljavax/security/auth/x500/X500Principal;
9 13 6 list Ljava/util/List<Ljava/security/cert/X509Certificate;>;
Signature: (Ljava/lang/String;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
MethodParameters:
Name Flags
variant
trustedCerts
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.SimpleValidator.trustedCerts:Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/validator/SimpleValidator;
Signature: ()Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
java.security.cert.X509Certificate[] engineValidate(java.security.cert.X509Certificate[], java.util.Collection<java.security.cert.X509Certificate>, java.security.AlgorithmConstraints, );
descriptor: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
flags: (0x0000)
Code:
stack=7, locals=16, 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:
aload 0
aload 1
invokevirtual sun.security.validator.SimpleValidator.buildTrustedChain:([Ljava/security/cert/X509Certificate;)[Ljava/security/cert/X509Certificate;
astore 1
5: aload 0
getfield sun.security.validator.SimpleValidator.validationDate:Ljava/util/Date;
astore 5
start local 5 6: aload 5
ifnonnull 8
7: new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
astore 5
8: StackMap locals: java.util.Date
StackMap stack:
new sun.security.provider.certpath.UntrustedChecker
dup
invokespecial sun.security.provider.certpath.UntrustedChecker.<init>:()V
astore 6
start local 6 9: aload 1
aload 1
arraylength
iconst_1
isub
aaload
astore 7
start local 7 10: aload 6
aload 7
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.UntrustedChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
11: goto 17
StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate[] java.util.Collection java.security.AlgorithmConstraints java.lang.Object java.util.Date sun.security.provider.certpath.UntrustedChecker java.security.cert.X509Certificate
StackMap stack: java.security.cert.CertPathValidatorException
12: astore 8
start local 8 13: new sun.security.validator.ValidatorException
dup
14: new java.lang.StringBuilder
dup
ldc "Untrusted certificate: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: getstatic sun.security.validator.ValidatorException.T_UNTRUSTED_CERT:Ljava/lang/Object;
aload 7
aload 8
16: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;Ljava/lang/Throwable;)V
athrow
end local 8 17: StackMap locals:
StackMap stack:
new java.security.cert.TrustAnchor
dup
aload 7
aconst_null
invokespecial java.security.cert.TrustAnchor.<init>:(Ljava/security/cert/X509Certificate;[B)V
astore 8
start local 8 18: new sun.security.provider.certpath.AlgorithmChecker
dup
aload 8
aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/lang/String;)V
19: astore 9
start local 9 20: aconst_null
astore 10
start local 10 21: aload 3
ifnull 25
22: new sun.security.provider.certpath.AlgorithmChecker
dup
aload 8
aload 3
aconst_null
23: aconst_null
aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
24: invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;Ljava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
astore 10
25: StackMap locals: java.security.cert.TrustAnchor sun.security.provider.certpath.AlgorithmChecker sun.security.provider.certpath.AlgorithmChecker
StackMap stack:
aload 1
arraylength
iconst_1
isub
istore 11
start local 11 26: aload 1
arraylength
iconst_2
isub
istore 12
start local 12 27: goto 64
28: StackMap locals: int int
StackMap stack:
aload 1
iload 12
iconst_1
iadd
aaload
astore 13
start local 13 29: aload 1
iload 12
aaload
astore 14
start local 14 30: aload 6
aload 14
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.UntrustedChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
31: goto 37
StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate[] java.util.Collection java.security.AlgorithmConstraints java.lang.Object java.util.Date sun.security.provider.certpath.UntrustedChecker java.security.cert.X509Certificate java.security.cert.TrustAnchor sun.security.provider.certpath.AlgorithmChecker sun.security.provider.certpath.AlgorithmChecker int int java.security.cert.X509Certificate java.security.cert.X509Certificate
StackMap stack: java.security.cert.CertPathValidatorException
32: astore 15
start local 15 33: new sun.security.validator.ValidatorException
dup
34: new java.lang.StringBuilder
dup
ldc "Untrusted certificate: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: getstatic sun.security.validator.ValidatorException.T_UNTRUSTED_CERT:Ljava/lang/Object;
aload 14
aload 15
36: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;Ljava/lang/Throwable;)V
athrow
end local 15 37: StackMap locals:
StackMap stack:
aload 9
aload 14
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.AlgorithmChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
38: aload 10
ifnull 45
39: aload 10
aload 14
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual sun.security.provider.certpath.AlgorithmChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
40: goto 45
StackMap locals:
StackMap stack: java.security.cert.CertPathValidatorException
41: astore 15
start local 15 42: new sun.security.validator.ValidatorException
dup
43: getstatic sun.security.validator.ValidatorException.T_ALGORITHM_DISABLED:Ljava/lang/Object;
aload 14
aload 15
44: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;Ljava/security/cert/X509Certificate;Ljava/lang/Throwable;)V
athrow
end local 15 45: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "code signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 48
46: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "jce signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 48
47: aload 14
aload 5
invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
48: StackMap locals:
StackMap stack:
aload 14
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
49: aload 13
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
50: invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
51: ifne 55
52: new sun.security.validator.ValidatorException
dup
53: getstatic sun.security.validator.ValidatorException.T_NAME_CHAINING:Ljava/lang/Object;
aload 14
54: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
55: StackMap locals:
StackMap stack:
aload 14
aload 13
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
56: goto 61
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
57: astore 15
start local 15 58: new sun.security.validator.ValidatorException
dup
59: getstatic sun.security.validator.ValidatorException.T_SIGNATURE_ERROR:Ljava/lang/Object;
aload 14
aload 15
60: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;Ljava/security/cert/X509Certificate;Ljava/lang/Throwable;)V
athrow
end local 15 61: StackMap locals:
StackMap stack:
iload 12
ifeq 63
62: aload 0
aload 14
iload 11
invokevirtual sun.security.validator.SimpleValidator.checkExtensions:(Ljava/security/cert/X509Certificate;I)I
istore 11
end local 14 end local 13 63: StackMap locals:
StackMap stack:
iinc 12 -1
StackMap locals:
StackMap stack:
64: iload 12
ifge 28
end local 12 65: aload 1
areturn
end local 11 end local 10 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 66 0 this Lsun/security/validator/SimpleValidator;
0 66 1 chain [Ljava/security/cert/X509Certificate;
0 66 2 otherCerts Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
0 66 3 constraints Ljava/security/AlgorithmConstraints;
0 66 4 parameter Ljava/lang/Object;
6 66 5 date Ljava/util/Date;
9 66 6 untrustedChecker Lsun/security/provider/certpath/UntrustedChecker;
10 66 7 anchorCert Ljava/security/cert/X509Certificate;
13 17 8 cpve Ljava/security/cert/CertPathValidatorException;
18 66 8 anchor Ljava/security/cert/TrustAnchor;
20 66 9 defaultAlgChecker Lsun/security/provider/certpath/AlgorithmChecker;
21 66 10 appAlgChecker Lsun/security/provider/certpath/AlgorithmChecker;
26 66 11 maxPathLength I
27 65 12 i I
29 63 13 issuerCert Ljava/security/cert/X509Certificate;
30 63 14 cert Ljava/security/cert/X509Certificate;
33 37 15 cpve Ljava/security/cert/CertPathValidatorException;
42 45 15 cpve Ljava/security/cert/CertPathValidatorException;
58 61 15 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
10 11 12 Class java.security.cert.CertPathValidatorException
30 31 32 Class java.security.cert.CertPathValidatorException
37 40 41 Class java.security.cert.CertPathValidatorException
55 56 57 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.cert.CertificateException
Signature: ([Ljava/security/cert/X509Certificate;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;Ljava/security/AlgorithmConstraints;Ljava/lang/Object;)[Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
chain
otherCerts
constraints
parameter
private int checkExtensions(java.security.cert.X509Certificate, int);
descriptor: (Ljava/security/cert/X509Certificate;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
astore 3
3: StackMap locals: java.util.Set
StackMap stack:
aload 0
aload 1
aload 3
iload 2
invokevirtual sun.security.validator.SimpleValidator.checkBasicConstraints:(Ljava/security/cert/X509Certificate;Ljava/util/Set;I)I
4: istore 4
start local 4 5: aload 0
aload 1
aload 3
invokevirtual sun.security.validator.SimpleValidator.checkKeyUsage:(Ljava/security/cert/X509Certificate;Ljava/util/Set;)V
6: aload 0
aload 1
aload 3
invokevirtual sun.security.validator.SimpleValidator.checkNetscapeCertType:(Ljava/security/cert/X509Certificate;Ljava/util/Set;)V
7: aload 3
invokeinterface java.util.Set.isEmpty:()Z
ifne 12
8: new sun.security.validator.ValidatorException
dup
9: new java.lang.StringBuilder
dup
ldc "Certificate contains unknown critical extensions: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
11: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
12: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/validator/SimpleValidator;
0 13 1 cert Ljava/security/cert/X509Certificate;
0 13 2 maxPathLen I
1 13 3 critSet Ljava/util/Set<Ljava/lang/String;>;
5 13 4 pathLenConstraint I
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
cert
maxPathLen
private void checkNetscapeCertType(java.security.cert.X509Certificate, java.util.Set<java.lang.String>);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "generic"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
1: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "tls client"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
2: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "tls server"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
3: StackMap locals:
StackMap stack:
aload 1
ldc "ssl_ca"
invokestatic sun.security.validator.SimpleValidator.getNetscapeCertTypeBit:(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
ifne 8
4: new sun.security.validator.ValidatorException
dup
5: ldc "Invalid Netscape CertType extension for SSL CA certificate"
6: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
7: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
ldc "2.16.840.1.113730.1.1"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
9: goto 20
StackMap locals:
StackMap stack:
10: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "code signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
11: aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
ldc "jce signing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
12: StackMap locals:
StackMap stack:
aload 1
ldc "object_signing_ca"
invokestatic sun.security.validator.SimpleValidator.getNetscapeCertTypeBit:(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
ifne 17
13: new sun.security.validator.ValidatorException
dup
14: ldc "Invalid Netscape CertType extension for code signing CA certificate"
15: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
16: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
17: StackMap locals:
StackMap stack:
aload 2
ldc "2.16.840.1.113730.1.1"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
18: goto 20
19: StackMap locals:
StackMap stack:
new java.security.cert.CertificateException
dup
new java.lang.StringBuilder
dup
ldc "Unknown variant "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.validator.SimpleValidator.variant:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/validator/SimpleValidator;
0 21 1 cert Ljava/security/cert/X509Certificate;
0 21 2 critSet Ljava/util/Set<Ljava/lang/String;>;
Exceptions:
throws java.security.cert.CertificateException
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
cert
critSet
static boolean getNetscapeCertTypeBit(java.security.cert.X509Certificate, java.lang.String);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
instanceof sun.security.x509.X509CertImpl
ifeq 6
1: aload 0
checkcast sun.security.x509.X509CertImpl
astore 3
start local 3 2: getstatic sun.security.validator.SimpleValidator.OBJID_NETSCAPE_CERT_TYPE:Lsun/security/util/ObjectIdentifier;
astore 4
start local 4 3: aload 3
aload 4
invokevirtual sun.security.x509.X509CertImpl.getExtension:(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension;
checkcast sun.security.x509.NetscapeCertTypeExtension
astore 2
start local 2 4: aload 2
ifnonnull 15
5: iconst_1
ireturn
end local 4 end local 3 end local 2 6: StackMap locals:
StackMap stack:
aload 0
ldc "2.16.840.1.113730.1.1"
invokevirtual java.security.cert.X509Certificate.getExtensionValue:(Ljava/lang/String;)[B
astore 3
start local 3 7: aload 3
ifnonnull 9
8: iconst_1
ireturn
9: StackMap locals: java.security.cert.X509Certificate java.lang.String top byte[]
StackMap stack:
new sun.security.util.DerInputStream
dup
aload 3
invokespecial sun.security.util.DerInputStream.<init>:([B)V
astore 4
start local 4 10: aload 4
invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
astore 5
start local 5 11: new sun.security.util.DerValue
dup
aload 5
invokespecial sun.security.util.DerValue.<init>:([B)V
invokevirtual sun.security.util.DerValue.getUnalignedBitString:()Lsun/security/util/BitArray;
12: invokevirtual sun.security.util.BitArray.toByteArray:()[B
13: astore 5
14: new sun.security.x509.NetscapeCertTypeExtension
dup
aload 5
invokespecial sun.security.x509.NetscapeCertTypeExtension.<init>:([B)V
astore 2
end local 5 end local 4 end local 3 start local 2 15: StackMap locals: java.security.cert.X509Certificate java.lang.String sun.security.x509.NetscapeCertTypeExtension
StackMap stack:
aload 2
aload 1
invokevirtual sun.security.x509.NetscapeCertTypeExtension.get:(Ljava/lang/String;)Ljava/lang/Boolean;
astore 3
start local 3 16: aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
17: ireturn
end local 3 end local 2 18: StackMap locals: java.security.cert.X509Certificate java.lang.String
StackMap stack: java.io.IOException
pop
19: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 cert Ljava/security/cert/X509Certificate;
0 20 1 type Ljava/lang/String;
4 6 2 ext Lsun/security/x509/NetscapeCertTypeExtension;
15 18 2 ext Lsun/security/x509/NetscapeCertTypeExtension;
2 6 3 certImpl Lsun/security/x509/X509CertImpl;
3 6 4 oid Lsun/security/util/ObjectIdentifier;
7 15 3 extVal [B
10 15 4 in Lsun/security/util/DerInputStream;
11 15 5 encoded [B
16 18 3 val Ljava/lang/Boolean;
Exception table:
from to target type
0 5 18 Class java.io.IOException
6 8 18 Class java.io.IOException
9 17 18 Class java.io.IOException
MethodParameters:
Name Flags
cert
type
private int checkBasicConstraints(java.security.cert.X509Certificate, java.util.Set<java.lang.String>, );
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/Set;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ldc "2.5.29.19"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
1: aload 1
invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
istore 4
start local 4 2: iload 4
ifge 6
3: new sun.security.validator.ValidatorException
dup
ldc "End user tried to act as a CA"
4: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
5: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
6: StackMap locals: int
StackMap stack:
aload 1
invokestatic sun.security.x509.X509CertImpl.isSelfIssued:(Ljava/security/cert/X509Certificate;)Z
ifne 12
7: iload 3
ifgt 11
8: new sun.security.validator.ValidatorException
dup
ldc "Violated path length constraints"
9: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
10: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
11: StackMap locals:
StackMap stack:
iinc 3 -1
12: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmple 14
13: iload 4
istore 3
14: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/validator/SimpleValidator;
0 15 1 cert Ljava/security/cert/X509Certificate;
0 15 2 critSet Ljava/util/Set<Ljava/lang/String;>;
0 15 3 maxPathLen I
2 15 4 constraints I
Exceptions:
throws java.security.cert.CertificateException
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/Set<Ljava/lang/String;>;I)I
MethodParameters:
Name Flags
cert
critSet
maxPathLen
private void checkKeyUsage(java.security.cert.X509Certificate, java.util.Set<java.lang.String>);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "2.5.29.15"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
1: aload 2
ldc "2.5.29.37"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
2: aload 1
invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
astore 3
start local 3 3: aload 3
ifnull 9
4: aload 3
arraylength
bipush 6
if_icmplt 5
aload 3
iconst_5
baload
ifne 9
5: StackMap locals: boolean[]
StackMap stack:
new sun.security.validator.ValidatorException
dup
6: ldc "Wrong key usage: expected keyCertSign"
7: getstatic sun.security.validator.ValidatorException.T_CA_EXTENSIONS:Ljava/lang/Object;
aload 1
8: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/validator/SimpleValidator;
0 10 1 cert Ljava/security/cert/X509Certificate;
0 10 2 critSet Ljava/util/Set<Ljava/lang/String;>;
3 10 3 keyUsageInfo [Z
Exceptions:
throws java.security.cert.CertificateException
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
cert
critSet
private java.security.cert.X509Certificate[] buildTrustedChain(java.security.cert.X509Certificate[]);
descriptor: ([Ljava/security/cert/X509Certificate;)[Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 10
3: StackMap locals: java.util.List int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 4: aload 0
aload 4
invokevirtual sun.security.validator.SimpleValidator.getTrustedCertificate:(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
astore 5
start local 5 5: aload 5
ifnull 8
6: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 2
getstatic sun.security.validator.SimpleValidator.CHAIN0:[Ljava/security/cert/X509Certificate;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
areturn
8: StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate
StackMap stack:
aload 2
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 11: aload 1
aload 1
arraylength
iconst_1
isub
aaload
astore 3
start local 3 12: aload 3
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
pop
13: aload 3
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 4
start local 4 14: aload 0
getfield sun.security.validator.SimpleValidator.trustedX500Principals:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 15: aload 5
ifnull 19
16: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 17: aload 2
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: aload 2
getstatic sun.security.validator.SimpleValidator.CHAIN0:[Ljava/security/cert/X509Certificate;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
areturn
end local 6 19: StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate[] java.util.List java.security.cert.X509Certificate javax.security.auth.x500.X500Principal java.util.List
StackMap stack:
new sun.security.validator.ValidatorException
dup
getstatic sun.security.validator.ValidatorException.T_NO_TRUST_ANCHOR:Ljava/lang/Object;
invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/Object;)V
athrow
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 20 0 this Lsun/security/validator/SimpleValidator;
0 20 1 chain [Ljava/security/cert/X509Certificate;
1 20 2 c Ljava/util/List<Ljava/security/cert/X509Certificate;>;
2 11 3 i I
4 9 4 cert Ljava/security/cert/X509Certificate;
5 9 5 trustedCert Ljava/security/cert/X509Certificate;
12 20 3 cert Ljava/security/cert/X509Certificate;
14 20 4 issuer Ljavax/security/auth/x500/X500Principal;
15 20 5 list Ljava/util/List<Ljava/security/cert/X509Certificate;>;
17 19 6 trustedCert Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
chain
private java.security.cert.X509Certificate getTrustedCertificate(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 2
start local 2 1: aload 0
getfield sun.security.validator.SimpleValidator.trustedX500Principals:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.security.Principal java.util.List
StackMap stack:
aload 1
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 4
start local 4 5: aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 5
start local 5 6: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 15
StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate java.security.Principal java.util.List java.security.Principal java.security.PublicKey top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 6
start local 6 8: aload 6
aload 1
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 10
9: aload 1
areturn
10: StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate java.security.Principal java.util.List java.security.Principal java.security.PublicKey java.security.cert.X509Certificate java.util.Iterator
StackMap stack:
aload 6
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 4
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 12
11: goto 15
12: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
aload 5
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 14
13: goto 15
14: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 15: StackMap locals: sun.security.validator.SimpleValidator java.security.cert.X509Certificate java.security.Principal java.util.List java.security.Principal java.security.PublicKey top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
16: aconst_null
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 17 0 this Lsun/security/validator/SimpleValidator;
0 17 1 cert Ljava/security/cert/X509Certificate;
1 17 2 certSubjectName Ljava/security/Principal;
2 17 3 list Ljava/util/List<Ljava/security/cert/X509Certificate;>;
5 17 4 certIssuerName Ljava/security/Principal;
6 17 5 certPublicKey Ljava/security/PublicKey;
8 15 6 mycert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
cert
}
SourceFile: "SimpleValidator.java"