final class sun.security.ssl.ClientHello$ClientHelloProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ClientHello$ClientHelloProducer
super_class: java.lang.Object
{
private static volatile int[] $SWITCH_TABLE$sun$security$ssl$SSLHandshake;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
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/ClientHello$ClientHelloProducer;
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=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.ClientHandshakeContext
astore 3
start local 3 1: aload 2
invokevirtual sun.security.ssl.SSLHandshake$HandshakeMessage.handshakeType:()Lsun/security/ssl/SSLHandshake;
astore 4
start local 4 2: aload 4
ifnonnull 4
3: new java.lang.UnsupportedOperationException
dup
ldc "Not supported yet."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLHandshake
StackMap stack:
invokestatic sun.security.ssl.ClientHello$ClientHelloProducer.$SWITCH_TABLE$sun$security$ssl$SSLHandshake:()[I
aload 4
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 5
2: 49
3: 49
4: 35
5: 12
default: 49
}
5: StackMap locals:
StackMap stack:
aload 3
invokevirtual sun.security.ssl.ClientHandshakeContext.kickstart:()V
6: goto 11
StackMap locals:
StackMap stack: java.io.IOException
7: astore 5
start local 5 8: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
9: getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
aload 5
10: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 5 11: StackMap locals:
StackMap stack:
aconst_null
areturn
12: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 16
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 16
13: ldc "Produced ClientHello(cookie) handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
14: aload 3
getfield sun.security.ssl.ClientHandshakeContext.initialClientHelloMsg:Lsun/security/ssl/ClientHello$ClientHelloMessage;
aastore
15: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.initialClientHelloMsg:Lsun/security/ssl/ClientHello$ClientHelloMessage;
aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.ClientHello$ClientHelloMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
17: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
18: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
19: getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
20: invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: getstatic sun.security.ssl.ProtocolVersion.NONE:Lsun/security/ssl/ProtocolVersion;
astore 5
start local 5 22: aload 3
getfield sun.security.ssl.ClientHandshakeContext.activeProtocols:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 27
StackMap locals: sun.security.ssl.ClientHello$ClientHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLHandshake sun.security.ssl.ProtocolVersion top java.util.Iterator
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.ProtocolVersion
astore 6
start local 6 24: aload 5
getstatic sun.security.ssl.ProtocolVersion.NONE:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 26
25: aload 6
aload 5
invokevirtual sun.security.ssl.ProtocolVersion.compare:(Lsun/security/ssl/ProtocolVersion;)I
ifge 27
26: StackMap locals: sun.security.ssl.ClientHello$ClientHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLHandshake sun.security.ssl.ProtocolVersion sun.security.ssl.ProtocolVersion java.util.Iterator
StackMap stack:
aload 6
astore 5
end local 6 27: StackMap locals: sun.security.ssl.ClientHello$ClientHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLHandshake sun.security.ssl.ProtocolVersion top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
28: aload 3
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 34
29: aload 5
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifne 34
30: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
31: getstatic sun.security.ssl.SSLHandshake.HELLO_VERIFY_REQUEST:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
32: getstatic sun.security.ssl.SSLHandshake.HELLO_VERIFY_REQUEST:Lsun/security/ssl/SSLHandshake;
33: invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
34: StackMap locals: sun.security.ssl.ClientHello$ClientHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLHandshake sun.security.ssl.ProtocolVersion
StackMap stack:
aconst_null
areturn
end local 5 35: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 39
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 39
36: ldc "Produced ClientHello(HRR) handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
37: aload 3
getfield sun.security.ssl.ClientHandshakeContext.initialClientHelloMsg:Lsun/security/ssl/ClientHello$ClientHelloMessage;
aastore
38: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.initialClientHelloMsg:Lsun/security/ssl/ClientHello$ClientHelloMessage;
aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.ClientHello$ClientHelloMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
40: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
41: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.consumers:Ljava/util/Map;
42: getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
43: getstatic sun.security.ssl.ChangeCipherSpec.t13Consumer:Lsun/security/ssl/SSLConsumer;
44: invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
45: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
46: getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
47: invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
48: aconst_null
areturn
49: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
50: ldc "Not supported yet."
51: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lsun/security/ssl/ClientHello$ClientHelloProducer;
0 52 1 context Lsun/security/ssl/ConnectionContext;
0 52 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 52 3 chc Lsun/security/ssl/ClientHandshakeContext;
2 52 4 ht Lsun/security/ssl/SSLHandshake;
8 11 5 ioe Ljava/io/IOException;
22 35 5 minimumVersion Lsun/security/ssl/ProtocolVersion;
24 27 6 pv Lsun/security/ssl/ProtocolVersion;
Exception table:
from to target type
5 6 7 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
static int[] $SWITCH_TABLE$sun$security$ssl$SSLHandshake();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.security.ssl.ClientHello$ClientHelloProducer.$SWITCH_TABLE$sun$security$ssl$SSLHandshake:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic sun.security.ssl.SSLHandshake.values:()[Lsun/security/ssl/SSLHandshake;
arraylength
newarray 10
astore 0
2: aload 0
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 9
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 11
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_STATUS:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 17
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_URL:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 16
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 13
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iconst_2
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic sun.security.ssl.SSLHandshake.CLIENT_KEY_EXCHANGE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 14
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 8
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic sun.security.ssl.SSLHandshake.END_OF_EARLY_DATA:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 7
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 15
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic sun.security.ssl.SSLHandshake.HELLO_REQUEST:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iconst_1
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic sun.security.ssl.SSLHandshake.HELLO_RETRY_REQUEST:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iconst_4
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic sun.security.ssl.SSLHandshake.HELLO_VERIFY_REQUEST:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iconst_5
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic sun.security.ssl.SSLHandshake.KEY_UPDATE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 19
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic sun.security.ssl.SSLHandshake.MESSAGE_HASH:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 20
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic sun.security.ssl.SSLHandshake.NEW_SESSION_TICKET:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 6
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
getstatic sun.security.ssl.SSLHandshake.NOT_APPLICABLE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 21
iastore
51: goto 53
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
52: pop
StackMap locals:
StackMap stack:
53: aload 0
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
iconst_3
iastore
54: goto 56
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
55: pop
StackMap locals:
StackMap stack:
56: aload 0
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO_DONE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 12
iastore
57: goto 59
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
58: pop
StackMap locals:
StackMap stack:
59: aload 0
getstatic sun.security.ssl.SSLHandshake.SERVER_KEY_EXCHANGE:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 10
iastore
60: goto 62
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
61: pop
StackMap locals:
StackMap stack:
62: aload 0
getstatic sun.security.ssl.SSLHandshake.SUPPLEMENTAL_DATA:Lsun/security/ssl/SSLHandshake;
invokevirtual sun.security.ssl.SSLHandshake.ordinal:()I
bipush 18
iastore
63: goto 65
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
64: pop
StackMap locals:
StackMap stack:
65: aload 0
dup
putstatic sun.security.ssl.ClientHello$ClientHelloProducer.$SWITCH_TABLE$sun$security$ssl$SSLHandshake:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
47 48 49 Class java.lang.NoSuchFieldError
50 51 52 Class java.lang.NoSuchFieldError
53 54 55 Class java.lang.NoSuchFieldError
56 57 58 Class java.lang.NoSuchFieldError
59 60 61 Class java.lang.NoSuchFieldError
62 63 64 Class java.lang.NoSuchFieldError
}
SourceFile: "ClientHello.java"
NestHost: sun.security.ssl.ClientHello
InnerClasses:
final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
private final ClientHelloProducer = sun.security.ssl.ClientHello$ClientHelloProducer of sun.security.ssl.ClientHello
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake