final class sun.security.ssl.KeyShareExtension$CHKeyShareSpec implements sun.security.ssl.SSLExtension$SSLExtensionSpec
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.KeyShareExtension$CHKeyShareSpec
super_class: java.lang.Object
{
final java.util.List<sun.security.ssl.KeyShareExtension$KeyShareEntry> clientShares;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Lsun/security/ssl/KeyShareExtension$KeyShareEntry;>;
private void <init>(java.util.List<sun.security.ssl.KeyShareExtension$KeyShareEntry>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.ssl.KeyShareExtension$CHKeyShareSpec.clientShares:Ljava/util/List;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/KeyShareExtension$CHKeyShareSpec;
0 3 1 clientShares Ljava/util/List<Lsun/security/ssl/KeyShareExtension$KeyShareEntry;>;
Signature: (Ljava/util/List<Lsun/security/ssl/KeyShareExtension$KeyShareEntry;>;)V
MethodParameters:
Name Flags
clientShares
private void <init>(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 7
2: new javax.net.ssl.SSLProtocolException
dup
3: new java.lang.StringBuilder
dup
ldc "Invalid key_share extension: insufficient data (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 1
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: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: sun.security.ssl.KeyShareExtension$CHKeyShareSpec java.nio.ByteBuffer
StackMap stack:
aload 1
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 8: iload 2
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmpeq 14
9: new javax.net.ssl.SSLProtocolException
dup
10: new java.lang.StringBuilder
dup
ldc "Invalid key_share extension: incorrect list length (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: iload 2
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: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: int
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
start local 3 15: goto 23
16: StackMap locals: java.util.List
StackMap stack:
aload 1
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 4
start local 4 17: aload 1
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
astore 5
start local 5 18: aload 5
arraylength
ifne 22
19: new javax.net.ssl.SSLProtocolException
dup
20: ldc "Invalid key_share extension: empty key_exchange"
21: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: int byte[]
StackMap stack:
aload 3
new sun.security.ssl.KeyShareExtension$KeyShareEntry
dup
iload 4
aload 5
invokespecial sun.security.ssl.KeyShareExtension$KeyShareEntry.<init>:(I[B)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 23: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 16
24: aload 0
aload 3
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield sun.security.ssl.KeyShareExtension$CHKeyShareSpec.clientShares:Ljava/util/List;
25: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/security/ssl/KeyShareExtension$CHKeyShareSpec;
0 26 1 buffer Ljava/nio/ByteBuffer;
8 26 2 listLen I
15 26 3 keyShares Ljava/util/List<Lsun/security/ssl/KeyShareExtension$KeyShareEntry;>;
17 23 4 namedGroupId I
18 23 5 keyExchange [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.text.MessageFormat
dup
1: ldc "\"client_shares\": '['{0}\n']'"
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
2: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 3: new java.lang.StringBuilder
dup
sipush 512
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 4: aload 0
getfield sun.security.ssl.KeyShareExtension$CHKeyShareSpec.clientShares:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: sun.security.ssl.KeyShareExtension$CHKeyShareSpec java.text.MessageFormat java.lang.StringBuilder top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.KeyShareExtension$KeyShareEntry
astore 3
start local 3 6: aload 2
aload 3
invokevirtual sun.security.ssl.KeyShareExtension$KeyShareEntry.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: iconst_1
anewarray java.lang.Object
dup
iconst_0
9: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;)Ljava/lang/String;
aastore
10: astore 3
start local 3 11: aload 1
aload 3
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/KeyShareExtension$CHKeyShareSpec;
3 12 1 messageFormat Ljava/text/MessageFormat;
4 12 2 builder Ljava/lang/StringBuilder;
6 7 3 entry Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
11 12 3 messageFields [Ljava/lang/Object;
}
SourceFile: "KeyShareExtension.java"
NestHost: sun.security.ssl.KeyShareExtension
InnerClasses:
final CHKeyShareSpec = sun.security.ssl.KeyShareExtension$CHKeyShareSpec of sun.security.ssl.KeyShareExtension
private final KeyShareEntry = sun.security.ssl.KeyShareExtension$KeyShareEntry of sun.security.ssl.KeyShareExtension
abstract SSLExtensionSpec = sun.security.ssl.SSLExtension$SSLExtensionSpec of sun.security.ssl.SSLExtension