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
2: getstatic sun.security.util.KnownOIDs.anyExtendedKeyUsage:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
3: getstatic sun.security.util.KnownOIDs.clientAuth:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
4: invokestatic java.util.List.of:(Ljava/lang/Object;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;
5: new sun.security.ssl.X509KeyManagerImpl$CheckType
dup
ldc "SERVER"
iconst_2
new java.util.HashSet
dup
6: getstatic sun.security.util.KnownOIDs.anyExtendedKeyUsage:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
7: getstatic sun.security.util.KnownOIDs.serverAuth:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
8: getstatic sun.security.util.KnownOIDs.NETSCAPE_ExportApproved:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
9: getstatic sun.security.util.KnownOIDs.MICROSOFT_ExportApproved:Lsun/security/util/KnownOIDs;
invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
10: invokestatic java.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;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;
11: 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=3, 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 39
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 { // 5
2180: 12
2206: 13
67986: 14
81440: 15
1775481508: 16
default: 36
}
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 27
goto 39
StackMap locals:
StackMap stack:
13: aload 9
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 39
StackMap locals:
StackMap stack:
14: aload 9
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
goto 39
StackMap locals:
StackMap stack:
15: aload 9
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 39
StackMap locals:
StackMap stack:
16: aload 9
ldc "RSASSA-PSS"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 39
17: StackMap locals:
StackMap stack:
iload 8
ifne 39
18: aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.CLIENT:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpeq 19
aload 6
iconst_2
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 39
19: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
20: areturn
21: StackMap locals:
StackMap stack:
iload 8
ifne 39
aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 39
22: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
23: areturn
24: StackMap locals:
StackMap stack:
iload 8
ifne 39
25: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
26: areturn
27: StackMap locals:
StackMap stack:
aload 6
iconst_4
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 39
28: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
29: areturn
30: StackMap locals:
StackMap stack:
iload 8
ifne 33
31: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
32: areturn
33: StackMap locals:
StackMap stack:
aload 0
getstatic sun.security.ssl.X509KeyManagerImpl$CheckType.SERVER:Lsun/security/ssl/X509KeyManagerImpl$CheckType;
if_acmpne 39
aload 6
iconst_4
invokestatic sun.security.ssl.X509KeyManagerImpl$CheckType.getBit:([ZI)Z
ifne 39
34: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
35: areturn
end local 8 end local 7 end local 6 end local 5 36: StackMap locals: sun.security.ssl.X509KeyManagerImpl$CheckType java.security.cert.X509Certificate java.util.Date java.util.List java.lang.String
StackMap stack:
goto 39
StackMap locals:
StackMap stack: java.security.cert.CertificateException
37: pop
38: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXTENSION_MISMATCH:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
39: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
40: goto 43
StackMap locals:
StackMap stack: java.security.cert.CertificateException
41: pop
42: getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.EXPIRED:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
43: StackMap locals:
StackMap stack:
aload 3
ifnull 72
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 72
44: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 71
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:
45: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIServerName
astore 5
start local 5 46: aload 5
invokevirtual javax.net.ssl.SNIServerName.getType:()I
ifne 71
47: aload 5
instanceof javax.net.ssl.SNIHostName
ifne 57
48: new javax.net.ssl.SNIHostName
dup
aload 5
invokevirtual javax.net.ssl.SNIServerName.getEncoded:()[B
invokespecial javax.net.ssl.SNIHostName.<init>:([B)V
49: astore 5
50: goto 57
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
51: pop
52: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 56
53: ldc "keymanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 56
54: 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;
iconst_0
anewarray java.lang.Object
55: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
56: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.INSENSITIVE:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
57: StackMap locals:
StackMap stack:
aload 5
checkcast javax.net.ssl.SNIHostName
invokevirtual javax.net.ssl.SNIHostName.getAsciiName:()Ljava/lang/String;
58: astore 7
start local 7 59: aload 7
60: aload 1
aload 4
61: invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
62: goto 72
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
63: pop
64: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 70
65: ldc "keymanager"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 70
66: new java.lang.StringBuilder
dup
ldc "Certificate identity does not match Server Name Inidication (SNI): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
67: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
68: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
69: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
70: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.X509KeyManagerImpl$CheckResult.INSENSITIVE:Lsun/security/ssl/X509KeyManagerImpl$CheckResult;
areturn
end local 7 end local 5 71: 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 45
72: 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 73 0 this Lsun/security/ssl/X509KeyManagerImpl$CheckType;
0 73 1 cert Ljava/security/cert/X509Certificate;
0 73 2 date Ljava/util/Date;
0 73 3 serverNames Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
0 73 4 idAlgorithm Ljava/lang/String;
3 36 5 certEku Ljava/util/List<Ljava/lang/String;>;
8 36 6 ku [Z
10 36 7 algorithm Ljava/lang/String;
11 36 8 supportsDigitalSignature Z
46 71 5 serverName Ljavax/net/ssl/SNIServerName;
59 71 7 hostname Ljava/lang/String;
Exception table:
from to target type
2 6 37 Class java.security.cert.CertificateException
7 20 37 Class java.security.cert.CertificateException
21 23 37 Class java.security.cert.CertificateException
24 26 37 Class java.security.cert.CertificateException
27 29 37 Class java.security.cert.CertificateException
30 32 37 Class java.security.cert.CertificateException
33 35 37 Class java.security.cert.CertificateException
39 40 41 Class java.security.cert.CertificateException
48 50 51 Class java.lang.IllegalArgumentException
59 62 63 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