final class sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec implements sun.security.ssl.SSLExtension$SSLExtensionSpec
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec
super_class: java.lang.Object
{
final java.util.List<sun.security.ssl.PreSharedKeyExtension$PskIdentity> identities;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;
final java.util.List<byte[]> binders;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<[B>;
void <init>(java.util.List<sun.security.ssl.PreSharedKeyExtension$PskIdentity>, java.util.List<byte[]>);
descriptor: (Ljava/util/List;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
2: aload 0
aload 2
putfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
0 4 1 identities Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;
0 4 2 binders Ljava/util/List<[B>;
Signature: (Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;Ljava/util/List<[B>;)V
MethodParameters:
Name Flags
identities
binders
void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
bipush 44
if_icmpge 7
2: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
3: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient data (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
7: StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec sun.security.ssl.HandshakeContext java.nio.ByteBuffer
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 8: iload 3
bipush 7
if_icmpge 14
9: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
10: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient identities (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
14: StackMap locals: int
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
15: iconst_0
istore 4
start local 4 16: goto 28
17: StackMap locals: int
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
astore 5
start local 5 18: aload 5
arraylength
iconst_1
if_icmpge 24
19: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
20: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient identity (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
21: aload 5
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
24: StackMap locals: byte[]
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getInt32:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 25: new sun.security.ssl.PreSharedKeyExtension$PskIdentity
dup
aload 5
iload 6
invokespecial sun.security.ssl.PreSharedKeyExtension$PskIdentity.<init>:([BI)V
astore 7
start local 7 26: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: iload 4
aload 7
invokevirtual sun.security.ssl.PreSharedKeyExtension$PskIdentity.getEncodedLength:()I
iadd
istore 4
end local 7 end local 6 end local 5 28: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmplt 17
29: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
bipush 35
if_icmpge 35
30: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
31: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient binders data (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
35: StackMap locals:
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 5
start local 5 36: iload 5
bipush 33
if_icmpge 42
37: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
38: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient binders (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
39: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
41: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
42: StackMap locals: int
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
43: iconst_0
istore 6
start local 6 44: goto 54
45: StackMap locals: int
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getBytes8:(Ljava/nio/ByteBuffer;)[B
astore 7
start local 7 46: aload 7
arraylength
bipush 32
if_icmpge 52
47: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
48: new java.lang.StringBuilder
dup
ldc "Invalid pre_shared_key extension: insufficient binder entry (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
49: aload 7
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
52: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
53: iload 6
iconst_1
aload 7
arraylength
iadd
iadd
istore 6
end local 7 54: StackMap locals:
StackMap stack:
iload 6
iload 5
if_icmplt 45
55: return
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 56 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
0 56 1 context Lsun/security/ssl/HandshakeContext;
0 56 2 m Ljava/nio/ByteBuffer;
8 56 3 idEncodedLength I
16 56 4 idReadLength I
18 28 5 id [B
25 28 6 obfuscatedTicketAge I
26 28 7 pskId Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;
36 56 5 bindersEncodedLen I
44 56 6 bindersReadLength I
46 54 7 binder [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
m
int getIdsEncodedLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.PreSharedKeyExtension$PskIdentity
astore 2
start local 2 3: iload 1
aload 2
invokevirtual sun.security.ssl.PreSharedKeyExtension$PskIdentity.getEncodedLength:()I
iadd
istore 1
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
1 6 1 idEncodedLength I
3 4 2 curId Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;
int getBindersEncodedLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast byte[]
astore 2
start local 2 3: iload 1
iconst_1
aload 2
arraylength
iadd
iadd
istore 1
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
1 6 1 binderEncodedLength I
3 4 2 curBinder [B
byte[] getEncoded();
descriptor: ()[B
flags: (0x0000)
Code:
stack=2, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.getIdsEncodedLength:()I
istore 1
start local 1 1: aload 0
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.getBindersEncodedLength:()I
istore 2
start local 2 2: iconst_4
iload 1
iadd
iload 2
iadd
istore 3
start local 3 3: iload 3
newarray 8
astore 4
start local 4 4: aload 4
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 5
start local 5 5: aload 5
iload 1
invokestatic sun.security.ssl.Record.putInt16:(Ljava/nio/ByteBuffer;I)V
6: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 9
StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec int int int byte[] java.nio.ByteBuffer top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.PreSharedKeyExtension$PskIdentity
astore 6
start local 6 8: aload 6
aload 5
invokevirtual sun.security.ssl.PreSharedKeyExtension$PskIdentity.writeEncoded:(Ljava/nio/ByteBuffer;)V
end local 6 9: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 5
iload 2
invokestatic sun.security.ssl.Record.putInt16:(Ljava/nio/ByteBuffer;I)V
11: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 14
StackMap locals:
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast byte[]
astore 6
start local 6 13: aload 5
aload 6
invokestatic sun.security.ssl.Record.putBytes8:(Ljava/nio/ByteBuffer;[B)V
end local 6 14: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
15: aload 4
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 16 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
1 16 1 idsEncodedLength I
2 16 2 bindersEncodedLength I
3 16 3 encodedLength I
4 16 4 buffer [B
5 16 5 m Ljava/nio/ByteBuffer;
8 9 6 curId Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;
13 14 6 curBinder [B
Exceptions:
throws java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new java.text.MessageFormat
dup
1: ldc "\"PreSharedKey\": '{'\n \"identities\" : \"{0}\",\n \"binders\" : \"{1}\",\n'}'"
2: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
3: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 4: iconst_2
anewarray java.lang.Object
dup
iconst_0
5: aload 0
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identitiesString:()Ljava/lang/String;
invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
6: aload 0
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.bindersString:()Ljava/lang/String;
invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;)Ljava/lang/String;
aastore
7: astore 2
start local 2 8: aload 1
aload 2
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
4 9 1 messageFormat Ljava/text/MessageFormat;
8 9 2 messageFields [Ljava/lang/Object;
java.lang.String identitiesString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.identities:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.PreSharedKeyExtension$PskIdentity
astore 2
start local 2 3: aload 1
new java.lang.StringBuilder
dup
aload 2
invokevirtual sun.security.ssl.PreSharedKeyExtension$PskIdentity.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
1 6 1 result Ljava/lang/StringBuilder;
3 4 2 curId Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;
java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
getfield sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.binders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast byte[]
astore 2
start local 2 3: aload 1
new java.lang.StringBuilder
dup
ldc "{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokestatic sun.security.ssl.Utilities.toHexString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
1 6 1 result Ljava/lang/StringBuilder;
3 4 2 curBinder [B
}
SourceFile: "PreSharedKeyExtension.java"
NestHost: sun.security.ssl.PreSharedKeyExtension
InnerClasses:
private final CHPreSharedKeySpec = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec of sun.security.ssl.PreSharedKeyExtension
private final PskIdentity = sun.security.ssl.PreSharedKeyExtension$PskIdentity of sun.security.ssl.PreSharedKeyExtension
abstract SSLExtensionSpec = sun.security.ssl.SSLExtension$SSLExtensionSpec of sun.security.ssl.SSLExtension