final class sun.security.ssl.HandshakeStateManager
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.HandshakeStateManager
super_class: java.lang.Object
{
private java.util.LinkedList<sun.security.ssl.HandshakeStateManager$HandshakeState> upcomingStates;
descriptor: Ljava/util/LinkedList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedList<Lsun/security/ssl/HandshakeStateManager$HandshakeState;>;
private java.util.LinkedList<sun.security.ssl.HandshakeStateManager$HandshakeState> alternatives;
descriptor: Ljava/util/LinkedList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedList<Lsun/security/ssl/HandshakeStateManager$HandshakeState;>;
private static final boolean debugIsOn;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.HashMap<java.lang.Byte, java.lang.String> handshakeTypes;
descriptor: Ljava/util/HashMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/Byte;Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic sun.security.ssl.Handshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
1: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
ldc "verbose"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
3: StackMap locals:
StackMap stack: int
putstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
4: new java.util.HashMap
dup
bipush 8
invokespecial java.util.HashMap.<init>:(I)V
putstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
5: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
iconst_0
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "hello_request"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
iconst_1
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "client_hello"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
iconst_2
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "server_hello"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 11
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "certificate"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 12
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "server_key_exchange"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 14
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "server_hello_done"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 15
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "certificate_verify"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 16
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "client_key_exchange"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
bipush 20
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
ldc "finished"
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
2: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/HandshakeStateManager;
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/HandshakeStateManager;
java.util.List<java.lang.Byte> check(byte);
descriptor: (B)Ljava/util/List;
flags: (0x0000)
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 2
start local 2 1: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: astore 3
start local 3 3: getstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
ifeq 7
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
5: new java.lang.StringBuilder
dup
ldc "check handshake state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokestatic sun.security.ssl.HandshakeStateManager.toString:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: StackMap locals: java.util.List java.lang.String
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 14
8: iload 1
ifeq 13
9: iload 1
iconst_1
if_icmpeq 13
10: new javax.net.ssl.SSLProtocolException
dup
11: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
14: StackMap locals:
StackMap stack:
iload 1
ifne 16
15: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 5
goto 32
StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String top java.util.Iterator
StackMap stack:
17: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 4
start local 4 18: aload 4
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.handshakeType:B
iload 1
if_icmpne 20
19: aload 2
areturn
20: StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState java.util.Iterator
StackMap stack:
aload 4
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.isOptional:Z
ifeq 23
21: aload 2
aload 4
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.handshakeType:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: goto 32
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 7
goto 30
StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState java.util.Iterator top java.util.Iterator
StackMap stack:
24: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 25: aload 6
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.handshakeType:B
iload 1
if_icmpne 27
26: aload 2
areturn
27: StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState java.util.Iterator sun.security.ssl.HandshakeStateManager$HandshakeState java.util.Iterator
StackMap stack:
aload 6
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.isOptional:Z
ifeq 29
28: goto 30
29: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
aload 3
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 6 30: StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState java.util.Iterator top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
31: new javax.net.ssl.SSLProtocolException
dup
aload 3
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 4 32: StackMap locals: sun.security.ssl.HandshakeStateManager int java.util.List java.lang.String top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
33: new javax.net.ssl.SSLProtocolException
dup
34: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/security/ssl/HandshakeStateManager;
0 36 1 handshakeType B
1 36 2 ignoredOptional Ljava/util/List<Ljava/lang/Byte;>;
3 36 3 exceptionMsg Ljava/lang/String;
18 32 4 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
25 30 6 alternative Lsun/security/ssl/HandshakeStateManager$HandshakeState;
Exceptions:
throws javax.net.ssl.SSLProtocolException
Signature: (B)Ljava/util/List<Ljava/lang/Byte;>;
MethodParameters:
Name Flags
handshakeType
void update(sun.security.ssl.HandshakeMessage, boolean);
descriptor: (Lsun/security/ssl/HandshakeMessage;Z)V
flags: (0x0000)
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual sun.security.ssl.HandshakeMessage.messageType:()I
i2b
istore 3
start local 3 1: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: astore 4
start local 4 3: getstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
ifeq 7
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
5: new java.lang.StringBuilder
dup
ldc "update handshake state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokestatic sun.security.ssl.HandshakeStateManager.toString:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: StackMap locals: int java.lang.String
StackMap stack:
iconst_0
istore 5
start local 5 8: iload 3
lookupswitch { // 4
0: 9
1: 12
2: 19
11: 60
default: 82
}
9: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 92
10: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_HELLO:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
11: goto 92
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 16
13: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 14: aload 6
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_HELLO:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 16
15: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 6 16: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.ssl.HandshakeMessage$ClientHello
pop
17: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_HELLO:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
18: goto 92
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 27
20: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 21: aconst_null
astore 7
start local 7 22: aload 0
getfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 24
23: aload 0
getfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 7
24: StackMap locals: sun.security.ssl.HandshakeStateManager$HandshakeState sun.security.ssl.HandshakeStateManager$HandshakeState
StackMap stack:
aload 6
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_HELLO:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 28
25: aload 7
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_HELLO:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 28
26: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 27: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.ssl.HandshakeMessage$ServerHello
astore 6
start local 6 29: aload 6
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
pop
30: iload 2
ifeq 36
31: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
32: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_FINISHED:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
33: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
34: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_FINISHED:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
35: goto 92
36: StackMap locals: sun.security.ssl.HandshakeMessage$ServerHello
StackMap stack:
aload 6
getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
astore 7
start local 7 37: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 42
38: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 42
39: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 42
40: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 42
41: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
42: StackMap locals: sun.security.ssl.CipherSuite$KeyExchange
StackMap stack:
aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
43: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
44: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
45: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
46: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
47: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 49
48: aload 7
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 50
49: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_KEY_EXCHANGE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
50: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CERTIFICATE_REQUEST:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
51: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_HELLO_DONE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
52: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
53: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_KEY_EXCHANGE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
54: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CERTIFICATE_VERIFY:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
55: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
56: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_FINISHED:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
57: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
58: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_FINISHED:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
end local 7 59: goto 92
end local 6 60: StackMap locals:
StackMap stack:
goto 79
61: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 7
start local 7 62: aload 7
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.handshakeType:B
iload 3
if_icmpne 77
63: iconst_1
istore 5
64: aload 7
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 67
65: aload 7
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 67
66: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
67: StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int top sun.security.ssl.HandshakeStateManager$HandshakeState
StackMap stack:
iconst_0
istore 8
start local 8 68: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 72
69: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 9
start local 9 70: aload 9
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_KEY_EXCHANGE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpne 72
71: iconst_1
istore 8
end local 9 72: StackMap locals: int
StackMap stack:
iload 8
ifeq 75
73: aload 7
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 80
74: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
75: StackMap locals:
StackMap stack:
aload 7
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CERTIFICATE:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
if_acmpeq 80
76: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 8 77: StackMap locals:
StackMap stack:
aload 7
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.isOptional:Z
ifne 79
78: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 79: StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 61
80: StackMap locals:
StackMap stack:
iload 5
ifne 92
81: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
82: StackMap locals:
StackMap stack:
goto 89
83: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 7
start local 7 84: aload 7
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.handshakeType:B
iload 3
if_icmpne 87
85: iconst_1
istore 5
86: goto 90
87: StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int top sun.security.ssl.HandshakeStateManager$HandshakeState
StackMap stack:
aload 7
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.isOptional:Z
ifne 89
88: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 89: StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 83
90: StackMap locals:
StackMap stack:
iload 5
ifne 92
91: new javax.net.ssl.SSLProtocolException
dup
aload 4
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
92: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
ifeq 105
93: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 7
goto 98
StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int top java.util.Iterator
StackMap stack:
94: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 95: getstatic java.lang.System.out:Ljava/io/PrintStream;
96: new java.lang.StringBuilder
dup
ldc "upcoming handshake states: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
97: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 98: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 94
99: aload 0
getfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 7
goto 104
StackMap locals:
StackMap stack:
100: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 101: getstatic java.lang.System.out:Ljava/io/PrintStream;
102: new java.lang.StringBuilder
dup
ldc "upcoming handshake alternative state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
103: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 104: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 100
105: StackMap locals: sun.security.ssl.HandshakeStateManager sun.security.ssl.HandshakeMessage int int java.lang.String int
StackMap stack:
return
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 106 0 this Lsun/security/ssl/HandshakeStateManager;
0 106 1 handshakeMessage Lsun/security/ssl/HandshakeMessage;
0 106 2 isAbbreviated Z
1 106 3 handshakeType B
3 106 4 exceptionMsg Ljava/lang/String;
8 106 5 hasPresentState Z
14 16 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
21 27 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
22 27 7 alternative Lsun/security/ssl/HandshakeStateManager$HandshakeState;
29 60 6 serverHello Lsun/security/ssl/HandshakeMessage$ServerHello;
37 59 7 keyExchange Lsun/security/ssl/CipherSuite$KeyExchange;
62 79 7 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
68 77 8 isClientMessage Z
70 72 9 nextState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
84 89 7 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
95 98 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
101 104 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
Exceptions:
throws javax.net.ssl.SSLProtocolException
MethodParameters:
Name Flags
handshakeMessage
isAbbreviated
void changeCipherSpec(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
ifeq 4
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
2: ldc "update handshake state: change_cipher_spec"
3: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
ldc "ChangeCipherSpec message sequence violation"
astore 3
start local 3 5: iload 2
ifeq 6
iload 1
ifne 7
StackMap locals: java.lang.String
StackMap stack:
6: iload 2
ifne 9
iload 1
ifne 9
7: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_SERVER_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
astore 4
start local 4 8: goto 10
end local 4 9: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.HandshakeStateManager$HandshakeState.HS_CLIENT_CHANGE_CIPHER_SPEC:Lsun/security/ssl/HandshakeStateManager$HandshakeState;
astore 4
start local 4 10: StackMap locals: sun.security.ssl.HandshakeStateManager$HandshakeState
StackMap stack:
iconst_0
istore 5
start local 5 11: goto 18
12: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.pop:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 13: aload 6
aload 4
if_acmpne 16
14: iconst_1
istore 5
15: goto 19
16: StackMap locals: sun.security.ssl.HandshakeStateManager$HandshakeState
StackMap stack:
aload 6
getfield sun.security.ssl.HandshakeStateManager$HandshakeState.isOptional:Z
ifne 18
17: new javax.net.ssl.SSLProtocolException
dup
aload 3
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 6 18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 12
19: StackMap locals:
StackMap stack:
iload 5
ifne 21
20: new javax.net.ssl.SSLProtocolException
dup
aload 3
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.HandshakeStateManager.debugIsOn:Z
ifeq 34
22: aload 0
getfield sun.security.ssl.HandshakeStateManager.upcomingStates:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 7
goto 27
StackMap locals: sun.security.ssl.HandshakeStateManager int int java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState int top java.util.Iterator
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 24: getstatic java.lang.System.out:Ljava/io/PrintStream;
25: new java.lang.StringBuilder
dup
ldc "upcoming handshake states: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 27: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
28: aload 0
getfield sun.security.ssl.HandshakeStateManager.alternatives:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 7
goto 33
StackMap locals:
StackMap stack:
29: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeStateManager$HandshakeState
astore 6
start local 6 30: getstatic java.lang.System.out:Ljava/io/PrintStream;
31: new java.lang.StringBuilder
dup
ldc "upcoming handshake alternative state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 33: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
34: StackMap locals: sun.security.ssl.HandshakeStateManager int int java.lang.String sun.security.ssl.HandshakeStateManager$HandshakeState int
StackMap stack:
return
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 35 0 this Lsun/security/ssl/HandshakeStateManager;
0 35 1 isInput Z
0 35 2 isClient Z
5 35 3 exceptionMsg Ljava/lang/String;
8 9 4 expectedState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
10 35 4 expectedState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
11 35 5 hasPresentState Z
13 18 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
24 27 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
30 33 6 handshakeState Lsun/security/ssl/HandshakeStateManager$HandshakeState;
Exceptions:
throws javax.net.ssl.SSLProtocolException
MethodParameters:
Name Flags
isInput
isClient
private static java.lang.String toString(byte);
descriptor: (B)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic sun.security.ssl.HandshakeStateManager.handshakeTypes:Ljava/util/HashMap;
iload 0
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 1: aload 1
ifnonnull 3
2: ldc "unknown"
astore 1
3: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 handshakeType B
1 4 1 s Ljava/lang/String;
MethodParameters:
Name Flags
handshakeType
}
SourceFile: "HandshakeStateManager.java"
NestMembers:
sun.security.ssl.HandshakeStateManager$HandshakeState
InnerClasses:
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
final ClientHello = sun.security.ssl.HandshakeMessage$ClientHello of sun.security.ssl.HandshakeMessage
final ServerHello = sun.security.ssl.HandshakeMessage$ServerHello of sun.security.ssl.HandshakeMessage
final HandshakeState = sun.security.ssl.HandshakeStateManager$HandshakeState of sun.security.ssl.HandshakeStateManager