final class sun.security.ssl.X509KeyManagerImpl$CheckType extends java.lang.Enum<sun.security.ssl.X509KeyManagerImpl$CheckType>
minor version: 0
major version: 59
flags: flags: (0x4030) ACC_FINAL, ACC_SUPER, ACC_ANNOTATION
this_class: sun.security.ssl.X509KeyManagerImpl$CheckType
super_class: java.lang.Enum
{
public static final sun.security.ssl.X509KeyManagerImpl$CheckType NONE;
descriptor: Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.X509KeyManagerImpl$CheckType CLIENT;
descriptor: Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.X509KeyManagerImpl$CheckType SERVER;
descriptor: Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
final java.util.Set<java.lang.String> validEku;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final sun.security.ssl.X509KeyManagerImpl$CheckType[] ENUM$VALUES;
descriptor: [Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=0, args_size=0
0: new sun.security.ssl.X509KeyManagerImpl$CheckType
dup
ldc "NONE"
iconst_0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokespecial sun.security.ssl.X509KeyManagerImpl$CheckType.<init>:(Ljava/lang/String;ILjava/util/Set;)V
putstatic sun.security.ssl.X509KeyManagerImpl$CheckType.NONE:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
1: new sun.security.ssl.X509KeyManagerImpl$CheckType
dup
ldc "CLIENT"
iconst_1
new java.util.HashSet
dup
iconst_2
anewarray java.lang.String
dup
iconst_0
2: ldc "2.5.29.37.0"
aastore
dup
iconst_1
ldc "1.3.6.1.5.5.7.3.2"
aastore
3: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokespecial sun.security.ssl.X509KeyManagerImpl$CheckType.<init>:(Ljava/lang/String;ILjava/util/Set;)V
putstatic sun.security.ssl.X509KeyManagerImpl$CheckType.CLIENT:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
4: new sun.security.ssl.X509KeyManagerImpl$CheckType
dup
ldc "SERVER"
iconst_2
new java.util.HashSet
dup
iconst_4
anewarray java.lang.String
dup
iconst_0
5: ldc "2.5.29.37.0"
aastore
dup
iconst_1
ldc "1.3.6.1.5.5.7.3.1"
aastore
dup
iconst_2
ldc "2.16.840.1.113730.4.1"
aastore
dup
iconst_3
6: ldc "1.3.6.1.4.1.311.10.3.3"
aastore
7: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokespecial sun.security.ssl.X509KeyManagerImpl$CheckType.<init>:(Ljava/lang/String;ILjava/util/Set;)V
putstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
8: iconst_3
anewarray sun.security.ssl.X509KeyManagerImpl$CheckType
dup
iconst_0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.NONE:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
aastore
dup
iconst_1
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.CLIENT:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
aastore
dup
iconst_2
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
aastore
putstatic sun.security.ssl.X509KeyManagerImpl$CheckType.ENUM$VALUES:[Lsun/security/ssl/X509KeyManagerImpl$CheckType;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.util.Set<java.lang.String>);
descriptor: (Ljava/lang/String;ILjava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 1
iload 2
invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
1: aload 0
aload 3
putfield sun.security.ssl.X509KeyManagerImpl$CheckType.validEku:Ljava/util/Set;
2: return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/X509KeyManagerImpl$CheckType;
0 3 3 validEku Ljava/util/Set<Ljava/lang/String;>;
Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
$enum$name
$enum$ordinal
validEku
private static boolean getBit(boolean[], int);
descriptor: ([ZI)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
arraylength
if_icmpge 1
aload 0
iload 1
baload
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 keyUsage [Z
0 2 1 bit I
MethodParameters:
Name Flags
keyUsage
bit
sun.security.ssl.X509KeyManagerImpl$CheckResult check(java.security.cert.X509Certificate, java.util.Date, java.util.List<javax.net.ssl.SNIServerName>, java.lang.String);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/Date;Ljava/util/List;Ljava/lang/String;)Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
flags: (0x0000)
Code:
stack=4, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.NONE:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 2
1: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.OK:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.security.cert.X509Certificate.getExtendedKeyUsage:()Ljava/util/List;
astore 5
start local 5 3: aload 5
ifnull 7
4: aload 0
getfield sun.security.ssl.X509KeyManagerImpl$CheckType.validEku:Ljava/util/Set;
aload 5
invokestatic java.util.Collections.disjoint:(Ljava/util/Collection;Ljava/util/Collection;)Z
ifeq 7
5: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
6: areturn
7: StackMap locals: java.util.List
StackMap stack:
aload 1
invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
astore 6
start local 6 8: aload 6
ifnull 35
9: aload 1
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
astore 7
start local 7 10: aload 6
iconst_0
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
istore 8
start local 8 11: aload 7
dup
astore 9
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
2180: 12
2206: 13
67986: 14
81440: 15
default: 32
}
StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String java.util.List boolean[] java.lang.String int java.lang.String
StackMap stack:
12: aload 9
ldc "DH"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
goto 35
StackMap locals:
StackMap stack:
13: aload 9
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
goto 35
StackMap locals:
StackMap stack:
14: aload 9
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
goto 35
StackMap locals:
StackMap stack:
15: aload 9
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 35
16: StackMap locals:
StackMap stack:
iload 8
ifne 35
17: aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.CLIENT:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpeq 18
aload 6
iconst_2
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 35
18: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
19: areturn
20: StackMap locals:
StackMap stack:
iload 8
ifne 35
21: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
22: areturn
23: StackMap locals:
StackMap stack:
aload 6
iconst_4
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 35
24: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
25: areturn
26: StackMap locals:
StackMap stack:
iload 8
ifne 29
27: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
28: areturn
29: StackMap locals:
StackMap stack:
aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 35
aload 6
iconst_4
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 35
30: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
31: areturn
end local 8 end local 7 end local 6 end local 5 32: StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String
StackMap stack:
goto 35
StackMap locals:
StackMap stack: java.security.cert.CertificateException
33: pop
34: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
35: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
36: goto 39
StackMap locals:
StackMap stack: java.security.cert.CertificateException
37: pop
38: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXPIRED:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
39: StackMap locals:
StackMap stack:
aload 3
ifnull 68
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 68
40: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 67
StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String top java.util.Iterator
StackMap stack:
41: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIServerName
astore 5
start local 5 42: aload 5
invokevirtual javax.net.ssl.SNIServerName.getType:()I
ifne 67
43: aload 5
instanceof javax.net.ssl.SNIHostName
ifne 53
44: new javax.net.ssl.SNIHostName
dup
aload 5
invokevirtual javax.net.ssl.SNIServerName.getEncoded:()[B
invokespecial javax.net.ssl.SNIHostName.<init>:([B)V
45: astore 5
46: goto 53
StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String javax.net.ssl.SNIServerName java.util.Iterator
StackMap stack: java.lang.IllegalArgumentException
47: pop
48: getstatic sun.security.ssl.X509KeyManagerImpl.useDebug:Z
ifeq 52
49: getstatic sun.security.ssl.X509KeyManagerImpl.debug:Lsun/security/ssl/Debug;
50: new java.lang.StringBuilder
dup
ldc "Illegal server name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokevirtual sun.security.ssl.Debug.println:(Ljava/lang/String;)V
52: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.INSENSITIVE:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
53: StackMap locals:
StackMap stack:
aload 5
checkcast javax.net.ssl.SNIHostName
invokevirtual javax.net.ssl.SNIHostName.getAsciiName:()Ljava/lang/String;
54: astore 7
start local 7 55: aload 7
56: aload 1
aload 4
57: invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
58: goto 68
StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String javax.net.ssl.SNIServerName java.util.Iterator java.lang.String
StackMap stack: java.security.cert.CertificateException
59: pop
60: getstatic sun.security.ssl.X509KeyManagerImpl.useDebug:Z
ifeq 66
61: getstatic sun.security.ssl.X509KeyManagerImpl.debug:Lsun/security/ssl/Debug;
62: new java.lang.StringBuilder
dup
ldc "Certificate identity does not match Server Name Inidication (SNI): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
63: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokevirtual sun.security.ssl.Debug.println:(Ljava/lang/String;)V
66: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.INSENSITIVE:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
end local 7 end local 5 67: StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
68: StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.OK:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lsun/security/ssl/X509KeyManagerImpl$CheckType;
0 69 1 cert Ljava/security/cert/X509Certificate;
0 69 2 date Ljava/util/Date;
0 69 3 serverNames Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
0 69 4 idAlgorithm Ljava/lang/String;
3 32 5 certEku Ljava/util/List<Ljava/lang/String;>;
8 32 6 ku [Z
10 32 7 algorithm Ljava/lang/String;
11 32 8 kuSignature Z
42 67 5 serverName Ljavax/net/ssl/SNIServerName;
55 67 7 hostname Ljava/lang/String;
Exception table:
from to target type
2 6 33 Class java.security.cert.CertificateException
7 19 33 Class java.security.cert.CertificateException
20 22 33 Class java.security.cert.CertificateException
23 25 33 Class java.security.cert.CertificateException
26 28 33 Class java.security.cert.CertificateException
29 31 33 Class java.security.cert.CertificateException
35 36 37 Class java.security.cert.CertificateException
44 46 47 Class java.lang.IllegalArgumentException
55 58 59 Class java.security.cert.CertificateException
Signature: (Ljava/security/cert/X509Certificate;Ljava/util/Date;Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;Ljava/lang/String;)Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
MethodParameters:
Name Flags
cert
date
serverNames
idAlgorithm
public java.lang.String getValidator();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.CLIENT:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 2
1: ldc "tls client"
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 4
3: ldc "tls server"
areturn
4: StackMap locals:
StackMap stack:
ldc "generic"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/X509KeyManagerImpl$CheckType;
public static sun.security.ssl.X509KeyManagerImpl$CheckType[] values();
descriptor: ()[Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.ENUM$VALUES:[Lsun/security/ssl/X509KeyManagerImpl$CheckType;
dup
astore 0
iconst_0
aload 0
arraylength
dup
istore 1
anewarray sun.security.ssl.X509KeyManagerImpl$CheckType
dup
astore 2
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
aload 2
areturn
LocalVariableTable:
Start End Slot Name Signature
public static sun.security.ssl.X509KeyManagerImpl$CheckType valueOf(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/security/ssl/X509KeyManagerImpl$CheckType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: ldc Lsun/security/ssl/X509KeyManagerImpl$CheckType;
aload 0
invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
checkcast sun.security.ssl.X509KeyManagerImpl$CheckType
areturn
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
name
}
Signature: Ljava/lang/Enum<Lsun/security/ssl/X509KeyManagerImpl$CheckType;>;
SourceFile: "X509KeyManagerImpl.java"
NestHost: sun.security.ssl.X509KeyManagerImpl
InnerClasses:
private final CheckResult = sun.security.ssl.X509KeyManagerImpl$CheckResult of sun.security.ssl.X509KeyManagerImpl
private final CheckType = sun.security.ssl.X509KeyManagerImpl$CheckType of sun.security.ssl.X509KeyManagerImpl