final class sun.security.ssl.KeyShareExtension$SHKeyShareProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.KeyShareExtension$SHKeyShareProducer
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareProducer;
public byte[] produce(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=15, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
astore 3
start local 3 1: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeExtensions:Ljava/util/Map;
2: getstatic sun.security.ssl.SSLExtension.CH_KEY_SHARE:Lsun/security/ssl/SSLExtension;
3: invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.ssl.KeyShareExtension$CHKeyShareSpec
4: astore 4
start local 4 5: aload 4
ifnonnull 10
6: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 9
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 9
7: ldc "Ignore, no client key_share extension"
iconst_0
anewarray java.lang.Object
8: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
9: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec
StackMap stack:
aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getstatic sun.security.ssl.SSLExtension.SH_KEY_SHARE:Lsun/security/ssl/SSLExtension;
invokevirtual sun.security.ssl.SSLConfiguration.isAvailable:(Lsun/security/ssl/SSLExtension;)Z
ifne 15
11: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 14
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 14
12: ldc "Ignore, no available server key_share extension"
iconst_0
anewarray java.lang.Object
13: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aconst_null
areturn
15: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeCredentials:Ljava/util/List;
ifnull 17
16: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 21
17: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 20
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 20
18: ldc "No available client key share entries"
iconst_0
anewarray java.lang.Object
19: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aconst_null
areturn
21: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 22: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 59
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry top java.util.Iterator
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLCredentials
astore 6
start local 6 24: aconst_null
astore 8
start local 8 25: aload 6
instanceof sun.security.ssl.ECDHKeyExchange$ECDHECredentials
ifeq 28
26: aload 6
checkcast sun.security.ssl.ECDHKeyExchange$ECDHECredentials
getfield sun.security.ssl.ECDHKeyExchange$ECDHECredentials.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
astore 8
27: goto 30
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup
StackMap stack:
28: aload 6
instanceof sun.security.ssl.DHKeyExchange$DHECredentials
ifeq 30
29: aload 6
checkcast sun.security.ssl.DHKeyExchange$DHECredentials
getfield sun.security.ssl.DHKeyExchange$DHECredentials.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
astore 8
30: StackMap locals:
StackMap stack:
aload 8
ifnonnull 32
31: goto 59
32: StackMap locals:
StackMap stack:
aload 8
invokestatic sun.security.ssl.SSLKeyExchange.valueOf:(Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Lsun/security/ssl/SSLKeyExchange;
astore 9
start local 9 33: aload 9
ifnonnull 38
34: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 59
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 59
35: new java.lang.StringBuilder
dup
ldc "No key exchange for named group "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
36: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
37: goto 59
38: StackMap locals: sun.security.ssl.SSLKeyExchange
StackMap stack:
aload 9
aload 3
invokevirtual sun.security.ssl.SSLKeyExchange.createPossessions:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLPossession;
astore 10
start local 10 39: aload 10
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 49
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] top int int sun.security.ssl.SSLPossession[]
StackMap stack:
40: aload 14
iload 12
aaload
astore 11
start local 11 41: aload 11
instanceof sun.security.ssl.ECDHKeyExchange$ECDHEPossession
ifne 44
42: aload 11
instanceof sun.security.ssl.DHKeyExchange$DHEPossession
ifne 44
43: goto 48
44: StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] sun.security.ssl.SSLPossession int int sun.security.ssl.SSLPossession[]
StackMap stack:
aload 3
aload 9
putfield sun.security.ssl.ServerHandshakeContext.handshakeKeyExchange:Lsun/security/ssl/SSLKeyExchange;
45: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
46: new sun.security.ssl.KeyShareExtension$KeyShareEntry
dup
aload 8
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
aload 11
invokeinterface sun.security.ssl.SSLPossession.encode:()[B
invokespecial sun.security.ssl.KeyShareExtension$KeyShareEntry.<init>:(I[B)V
astore 5
47: goto 50
end local 11 48: StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] top int int sun.security.ssl.SSLPossession[]
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
49: iload 12
iload 13
if_icmplt 40
50: StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[]
StackMap stack:
aload 5
ifnull 59
51: aload 9
aload 3
invokevirtual sun.security.ssl.SSLKeyExchange.getHandshakeProducers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 57
StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry sun.security.ssl.SSLCredentials java.util.Iterator sun.security.ssl.SupportedGroupsExtension$NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] top int int java.util.Map$Entry[]
StackMap stack:
52: aload 14
iload 12
aaload
astore 11
start local 11 53: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
54: aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Byte
aload 11
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeProducer
55: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 56: iinc 12 1
StackMap locals:
StackMap stack:
57: iload 12
iload 13
if_icmplt 52
58: goto 60
end local 10 end local 9 end local 8 end local 6 59: StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
60: StackMap locals: sun.security.ssl.KeyShareExtension$SHKeyShareProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.KeyShareExtension$CHKeyShareSpec sun.security.ssl.KeyShareExtension$KeyShareEntry
StackMap stack:
aload 5
ifnonnull 65
61: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 64
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 64
62: ldc "No available server key_share extension"
iconst_0
anewarray java.lang.Object
63: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
64: StackMap locals:
StackMap stack:
aconst_null
areturn
65: StackMap locals:
StackMap stack:
aload 5
invokevirtual sun.security.ssl.KeyShareExtension$KeyShareEntry.getEncoded:()[B
astore 6
start local 6 66: new sun.security.ssl.KeyShareExtension$SHKeyShareSpec
dup
aload 5
invokespecial sun.security.ssl.KeyShareExtension$SHKeyShareSpec.<init>:(Lsun/security/ssl/KeyShareExtension$KeyShareEntry;)V
astore 7
start local 7 67: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeExtensions:Ljava/util/Map;
getstatic sun.security.ssl.SSLExtension.SH_KEY_SHARE:Lsun/security/ssl/SSLExtension;
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
68: aload 6
areturn
end local 7 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 69 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareProducer;
0 69 1 context Lsun/security/ssl/ConnectionContext;
0 69 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 69 3 shc Lsun/security/ssl/ServerHandshakeContext;
5 69 4 kss Lsun/security/ssl/KeyShareExtension$CHKeyShareSpec;
22 69 5 keyShare Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
24 59 6 cd Lsun/security/ssl/SSLCredentials;
25 59 8 ng Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
33 59 9 ke Lsun/security/ssl/SSLKeyExchange;
39 59 10 poses [Lsun/security/ssl/SSLPossession;
41 48 11 pos Lsun/security/ssl/SSLPossession;
53 56 11 me Ljava/util/Map$Entry<Ljava/lang/Byte;Lsun/security/ssl/HandshakeProducer;>;
66 69 6 extData [B
67 69 7 spec Lsun/security/ssl/KeyShareExtension$SHKeyShareSpec;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "KeyShareExtension.java"
NestHost: sun.security.ssl.KeyShareExtension
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
final DHECredentials = sun.security.ssl.DHKeyExchange$DHECredentials of sun.security.ssl.DHKeyExchange
final DHEPossession = sun.security.ssl.DHKeyExchange$DHEPossession of sun.security.ssl.DHKeyExchange
final ECDHECredentials = sun.security.ssl.ECDHKeyExchange$ECDHECredentials of sun.security.ssl.ECDHKeyExchange
final ECDHEPossession = sun.security.ssl.ECDHKeyExchange$ECDHEPossession of sun.security.ssl.ECDHKeyExchange
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
private final SHKeyShareProducer = sun.security.ssl.KeyShareExtension$SHKeyShareProducer of sun.security.ssl.KeyShareExtension
final SHKeyShareSpec = sun.security.ssl.KeyShareExtension$SHKeyShareSpec of sun.security.ssl.KeyShareExtension
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension