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 56
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.NamedGroupCredentials
ifeq 28
26: aload 6
checkcast sun.security.ssl.NamedGroupCredentials
astore 9
start local 9 27: aload 9
invokeinterface sun.security.ssl.NamedGroupCredentials.getNamedGroup:()Lsun/security/ssl/NamedGroup;
astore 8
end local 9 28: 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.NamedGroup
StackMap stack:
aload 8
ifnonnull 30
29: goto 56
30: StackMap locals:
StackMap stack:
aload 8
invokestatic sun.security.ssl.SSLKeyExchange.valueOf:(Lsun/security/ssl/NamedGroup;)Lsun/security/ssl/SSLKeyExchange;
astore 9
start local 9 31: aload 9
ifnonnull 36
32: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 56
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 56
33: 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.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
34: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
35: goto 56
36: 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 37: aload 10
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 46
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.NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] top int int sun.security.ssl.SSLPossession[]
StackMap stack:
38: aload 14
iload 12
aaload
astore 11
start local 11 39: aload 11
instanceof sun.security.ssl.NamedGroupPossession
ifne 41
40: goto 45
41: 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.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;
42: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: new sun.security.ssl.KeyShareExtension$KeyShareEntry
dup
aload 8
getfield sun.security.ssl.NamedGroup.id:I
aload 11
invokeinterface sun.security.ssl.SSLPossession.encode:()[B
invokespecial sun.security.ssl.KeyShareExtension$KeyShareEntry.<init>:(I[B)V
astore 5
44: goto 47
end local 11 45: 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.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:
46: iload 12
iload 13
if_icmplt 38
47: 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.NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[]
StackMap stack:
aload 5
ifnull 56
48: 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 54
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.NamedGroup sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[] top int int java.util.Map$Entry[]
StackMap stack:
49: aload 14
iload 12
aaload
astore 11
start local 11 50: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
51: 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
52: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 53: iinc 12 1
StackMap locals:
StackMap stack:
54: iload 12
iload 13
if_icmplt 49
55: goto 57
end local 10 end local 9 end local 8 end local 6 56: 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
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
StackMap stack:
aload 5
ifnonnull 62
58: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 61
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 61
59: ldc "No available server key_share extension"
iconst_0
anewarray java.lang.Object
60: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
61: StackMap locals:
StackMap stack:
aconst_null
areturn
62: StackMap locals:
StackMap stack:
aload 5
invokevirtual sun.security.ssl.KeyShareExtension$KeyShareEntry.getEncoded:()[B
astore 6
start local 6 63: 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 64: 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
65: 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 66 0 this Lsun/security/ssl/KeyShareExtension$SHKeyShareProducer;
0 66 1 context Lsun/security/ssl/ConnectionContext;
0 66 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 66 3 shc Lsun/security/ssl/ServerHandshakeContext;
5 66 4 kss Lsun/security/ssl/KeyShareExtension$CHKeyShareSpec;
22 66 5 keyShare Lsun/security/ssl/KeyShareExtension$KeyShareEntry;
24 56 6 cd Lsun/security/ssl/SSLCredentials;
25 56 8 ng Lsun/security/ssl/NamedGroup;
27 28 9 creds Lsun/security/ssl/NamedGroupCredentials;
31 56 9 ke Lsun/security/ssl/SSLKeyExchange;
37 56 10 poses [Lsun/security/ssl/SSLPossession;
39 45 11 pos Lsun/security/ssl/SSLPossession;
50 53 11 me Ljava/util/Map$Entry<Ljava/lang/Byte;Lsun/security/ssl/HandshakeProducer;>;
63 66 6 extData [B
64 66 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 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