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 413
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 414
aload 0 /* this */
aload 1 /* serverShare */
putfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
2: .line 415
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>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
start local 1 // sun.security.ssl.HandshakeContext handshakeContext
start local 2 // java.nio.ByteBuffer buffer
0: .line 417
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 422
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_5
if_icmpge 9
2: .line 423
aload 1 /* handshakeContext */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.DECODE_ERROR:Lsun/security/ssl/Alert;
3: .line 424
new javax.net.ssl.SSLProtocolException
dup
4: .line 425
new java.lang.StringBuilder
dup
ldc "Invalid key_share extension: insufficient data (length="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: .line 426
aload 2 /* 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;
6: .line 425
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: .line 424
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
8: .line 423
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
9: .line 429
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareSpec sun.security.ssl.HandshakeContext java.nio.ByteBuffer
StackMap stack:
aload 2 /* buffer */
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 3 /* namedGroupId */
start local 3 // int namedGroupId
10: .line 430
aload 2 /* buffer */
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
astore 4 /* keyExchange */
start local 4 // byte[] keyExchange
11: .line 432
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 17
12: .line 433
aload 1 /* handshakeContext */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.DECODE_ERROR:Lsun/security/ssl/Alert;
13: .line 434
new javax.net.ssl.SSLProtocolException
dup
14: .line 435
ldc "Invalid key_share extension: unknown extra data"
15: .line 434
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
16: .line 433
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
17: .line 438
StackMap locals: int byte[]
StackMap stack:
aload 0 /* this */
new sun.security.ssl.KeyShareExtension$KeyShareEntry
dup
iload 3 /* namedGroupId */
aload 4 /* keyExchange */
invokespecial sun.security.ssl.KeyShareExtension$KeyShareEntry.<init>:(I[B)V
putfield sun.security.ssl.KeyShareExtension$SHKeyShareSpec.serverShare:Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
18: .line 439
return
end local 4 // byte[] keyExchange
end local 3 // int namedGroupId
end local 2 // java.nio.ByteBuffer buffer
end local 1 // sun.security.ssl.HandshakeContext handshakeContext
end local 0 // sun.security.ssl.KeyShareExtension$SHKeyShareSpec this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareSpec;
0 19 1 handshakeContext Lsun/security/ssl/HandshakeContext;
0 19 2 buffer Ljava/nio/ByteBuffer;
10 19 3 namedGroupId I
11 19 4 keyExchange [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handshakeContext
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 443
new java.text.MessageFormat
dup
1: .line 444
ldc "\"server_share\": '{'\n \"named group\": {0}\n \"key_exchange\": '{'\n{1}\n '}'\n'}',"
2: .line 449
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
3: .line 443
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1 /* messageFormat */
start local 1 // java.text.MessageFormat messageFormat
4: .line 451
new sun.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.HexDumpEncoder.<init>:()V
astore 2 /* hexEncoder */
start local 2 // sun.security.util.HexDumpEncoder hexEncoder
5: .line 452
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: .line 453
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.NamedGroup.nameOf:(I)Ljava/lang/String;
aastore
dup
iconst_1
7: .line 455
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.security.util.HexDumpEncoder.encode:([B)Ljava/lang/String;
ldc " "
8: .line 454
invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
9: .line 452
astore 3 /* messageFields */
start local 3 // java.lang.Object[] messageFields
10: .line 458
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.security.util.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/security/util/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