final class sun.security.ssl.KeyShareExtension$SHKeyShareSpec 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$SHKeyShareSpec
super_class: java.lang.Object
{
final sun.security.ssl.KeyShareExtension$KeyShareEntry serverShare;
descriptor: Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
flags: (0x0010) ACC_FINAL
void <init>(sun.security.ssl.KeyShareExtension$KeyShareEntry);
descriptor: (Lsun/security/ssl/KeyShareExtension$KeyShareEntry;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
start local 1 // sun.security.ssl.KeyShareExtension$KeyShareEntry serverShare
0: .line 419
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 420
aload 0 /* this */
aload 1 /* serverShare */
putfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
2: .line 421
return
end local 1 // sun.security.ssl.KeyShareExtension$KeyShareEntry serverShare
end local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareSpec;
0 3 1 serverShare Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
MethodParameters:
Name Flags
serverShare
private void <init>(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
start local 1 // java.nio.ByteBuffer buffer
0: .line 423
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 427
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_5
if_icmpge 7
2: .line 428
new javax.net.ssl.SSLProtocolException
dup
3: .line 429
new java.lang.StringBuilder
dup
ldc "Invalid key_share extension: insufficient data (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: .line 430
aload 1 /* buffer */
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: .line 429
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: .line 428
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
7: .line 433
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareSpec java.nio.ByteBuffer
StackMap stack:
aload 1 /* buffer */
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 2 /* namedGroupId */
start local 2 // int namedGroupId
8: .line 434
aload 1 /* buffer */
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
astore 3 /* keyExchange */
start local 3 // byte[] keyExchange
9: .line 436
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 13
10: .line 437
new javax.net.ssl.SSLProtocolException
dup
11: .line 438
ldc "Invalid key_share extension: unknown extra data"
12: .line 437
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
13: .line 441
StackMap locals: int byte[]
StackMap stack:
aload 0 /* this */
new sun.security.ssl.KeyShareExtension$KeyShareEntry
dup
iload 2 /* namedGroupId */
aload 3 /* keyExchange */
invokespecial sun.security.ssl.KeyShareExtension$KeyShareEntry.<init>:(I[B)V
putfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
14: .line 442
return
end local 3 // byte[] keyExchange
end local 2 // int namedGroupId
end local 1 // java.nio.ByteBuffer buffer
end local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareSpec;
0 15 1 buffer Ljava/nio/ByteBuffer;
8 15 2 namedGroupId I
9 15 3 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=5, locals=4, args_size=1
start local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
0: .line 446
new java.text.MessageFormat
dup
1: .line 447
ldc "\"server_share\": '{'\n \"named group\": {0}\n \"key_exchange\": '{'\n{1}\n '}'\n'}',"
2: .line 452
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
3: .line 446
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1 /* messageFormat */
start local 1 // java.text.MessageFormat messageFormat
4: .line 454
new sun.misc.HexDumpEncoder
dup
invokespecial sun.misc.HexDumpEncoder.<init>:()V
astore 2 /* hexEncoder */
start local 2 // sun.misc.HexDumpEncoder hexEncoder
5: .line 455
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: .line 456
aload 0 /* this */
getfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
getfield sun.security.ssl.KeyShareExtension$KeyShareEntry.namedGroupId:I
invokestatic sun.security.ssl.SupportedGroupsExtension$NamedGroup.nameOf:(I)Ljava/lang/String;
aastore
dup
iconst_1
7: .line 458
aload 2 /* hexEncoder */
aload 0 /* this */
getfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
getfield sun.security.ssl.KeyShareExtension$KeyShareEntry.keyExchange:[B
invokevirtual sun.misc.HexDumpEncoder.encode:([B)Ljava/lang/String;
ldc " "
8: .line 457
invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
9: .line 455
astore 3 /* messageFields */
start local 3 // java.lang.Object[] messageFields
10: .line 461
aload 1 /* messageFormat */
aload 3 /* messageFields */
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 3 // java.lang.Object[] messageFields
end local 2 // sun.misc.HexDumpEncoder hexEncoder
end local 1 // java.text.MessageFormat messageFormat
end local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareSpec;
4 11 1 messageFormat Ljava/text/MessageFormat;
5 11 2 hexEncoder Lsun/misc/HexDumpEncoder;
10 11 3 messageFields [Ljava/lang/Object;
}
SourceFile: "KeyShareExtension.java"
NestHost: sun.security.ssl.KeyShareExtension
InnerClasses:
private final KeyShareEntry = sun.security.ssl.KeyShareExtension$KeyShareEntry of sun.security.ssl.KeyShareExtension
final SHKeyShareSpec = sun.security.ssl.KeyShareExtension$SHKeyShareSpec of sun.security.ssl.KeyShareExtension
abstract SSLExtensionSpec = sun.security.ssl.SSLExtension$SSLExtensionSpec of sun.security.ssl.SSLExtension
final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension