final class sun.security.ssl.ClientHandshaker extends sun.security.ssl.Handshaker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ClientHandshaker
super_class: sun.security.ssl.Handshaker
{
private java.security.PublicKey serverKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
private java.security.PublicKey ephemeralServerKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger serverDH;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.DHCrypt dh;
descriptor: Lsun/security/ssl/DHCrypt;
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.ECDHCrypt ecdh;
descriptor: Lsun/security/ssl/ECDHCrypt;
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.HandshakeMessage$CertificateRequest certRequest;
descriptor: Lsun/security/ssl/HandshakeMessage$CertificateRequest;
flags: (0x0002) ACC_PRIVATE
private boolean serverKeyExchangeReceived;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.ProtocolVersion maxProtocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0002) ACC_PRIVATE
private static final boolean enableSNIExtension;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean allowUnsafeServerCertChange;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.security.cert.X509Certificate[] reservedServerCerts;
descriptor: [Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "jsse.enableSNIExtension"
iconst_1
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
1: putstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
2: ldc "jdk.tls.allowUnsafeServerCertChange"
iconst_0
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
3: putstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.ssl.SSLSocketImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
descriptor: (Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
flags: (0x0000)
Code:
stack=11, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
aload 1
aload 2
aload 3
iconst_1
iconst_1
1: aload 4
iload 5
iload 6
2: aload 7
aload 8
invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
3: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
4: return
end local 8 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 5 0 this Lsun/security/ssl/ClientHandshaker;
0 5 1 socket Lsun/security/ssl/SSLSocketImpl;
0 5 2 context Lsun/security/ssl/SSLContextImpl;
0 5 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 5 4 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 5 5 isInitialHandshake Z
0 5 6 secureRenegotiation Z
0 5 7 clientVerifyData [B
0 5 8 serverVerifyData [B
MethodParameters:
Name Flags
socket
context
enabledProtocols
activeProtocolVersion
isInitialHandshake
secureRenegotiation
clientVerifyData
serverVerifyData
void <init>(sun.security.ssl.SSLEngineImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[B)V
flags: (0x0000)
Code:
stack=11, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
aload 1
aload 2
aload 3
iconst_1
iconst_1
1: aload 4
iload 5
iload 6
2: aload 7
aload 8
invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
3: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
4: return
end local 8 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 5 0 this Lsun/security/ssl/ClientHandshaker;
0 5 1 engine Lsun/security/ssl/SSLEngineImpl;
0 5 2 context Lsun/security/ssl/SSLContextImpl;
0 5 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 5 4 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 5 5 isInitialHandshake Z
0 5 6 secureRenegotiation Z
0 5 7 clientVerifyData [B
0 5 8 serverVerifyData [B
MethodParameters:
Name Flags
engine
context
enabledProtocols
activeProtocolVersion
isInitialHandshake
secureRenegotiation
clientVerifyData
serverVerifyData
void processMessage(byte, int);
descriptor: (BI)V
flags: (0x0000)
Code:
stack=9, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
iload 1
invokevirtual sun.security.ssl.HandshakeStateManager.check:(B)Ljava/util/List;
pop
1: iload 1
lookupswitch { // 7
0: 2
2: 6
11: 10
12: 22
13: 90
14: 121
20: 125
default: 130
}
2: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$HelloRequest
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$HelloRequest.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 3
start local 3 3: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 3
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
4: aload 0
aload 3
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloRequest:(Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
5: goto 133
end local 3 6: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHello
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
iload 2
invokespecial sun.security.ssl.HandshakeMessage$ServerHello.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
astore 4
start local 4 7: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.serverHello:(Lsun/security/ssl/HandshakeMessage$ServerHello;)V
8: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
9: goto 133
end local 4 10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 12
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 12
11: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 12
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 15
12: StackMap locals:
StackMap stack:
aload 0
bipush 10
13: ldc "unexpected server cert chain"
14: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
15: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 5
start local 5 16: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
17: aload 0
aload 5
invokevirtual sun.security.ssl.ClientHandshaker.serverCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
18: aload 0
19: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerCertificates:()[Ljava/security/cert/Certificate;
iconst_0
aaload
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
20: putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
21: goto 133
end local 5 22: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
23: invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 77
3: 24
4: 77
5: 77
6: 52
7: 52
8: 44
9: 77
10: 77
11: 65
12: 65
13: 65
14: 82
15: 82
default: 85
}
24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 28
25: new javax.net.ssl.SSLProtocolException
dup
26: ldc "Server did not send certificate message"
27: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 30
29: new javax.net.ssl.SSLProtocolException
dup
ldc "Protocol violation: the certificate type must be appropriate for the selected cipher suite's key exchange algorithm"
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
sipush 512
if_icmpgt 36
31: new javax.net.ssl.SSLProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Protocol violation: server sent a server key exchange message for key exchange "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
33: ldc " when the public key in the server certificate"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: ldc " is less than or equal to 512 bits in length"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
37: astore 6
start local 6 38: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
39: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
end local 6 40: goto 133
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
41: astore 6
start local 6 42: ldc "Server key"
aload 6
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 43: goto 133
44: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
45: astore 6
start local 6 46: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
47: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
end local 6 48: goto 133
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
49: astore 6
start local 6 50: ldc "Server key"
aload 6
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 51: goto 133
52: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
53: aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
54: aload 0
getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
55: iload 2
56: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
57: invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BILjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
58: astore 6
start local 6 59: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
60: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
end local 6 61: goto 133
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
62: astore 6
start local 6 63: ldc "Server key"
aload 6
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 64: goto 133
65: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
dup
66: aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
67: aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
68: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
69: invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BLjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
70: astore 6
start local 6 71: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
72: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
end local 6 73: goto 133
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
74: astore 6
start local 6 75: ldc "Server key"
aload 6
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 76: goto 133
77: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
78: new java.lang.StringBuilder
dup
ldc "Protocol violation: server sent a server key exchangemessage for key exchange "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
79: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
80: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
81: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
82: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
83: ldc "unexpected receipt of server key exchange algorithm"
84: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
85: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
86: new java.lang.StringBuilder
dup
ldc "unsupported key exchange algorithm = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
87: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
88: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
89: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
90: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 91
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 94
91: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
92: ldc "Client authentication requested for anonymous cipher suite."
93: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
94: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 95
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 98
95: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
96: ldc "Client certificate requested for kerberos cipher suite."
97: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
98: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$CertificateRequest
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
putfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
99: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 101
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 101
100: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
101: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
102: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 133
103: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getSignAlgorithms:()Ljava/util/Collection;
104: astore 6
start local 6 105: aload 6
ifnull 106
aload 6
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 109
106: StackMap locals: sun.security.ssl.ClientHandshaker int int top top top java.util.Collection
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
107: ldc "No peer supported signature algorithms"
108: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
109: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 6
110: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
111: astore 7
start local 7 112: aload 7
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 116
113: new javax.net.ssl.SSLHandshakeException
dup
114: ldc "No supported signature and hash algorithm in common"
115: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
116: StackMap locals: java.util.Collection
StackMap stack:
aload 0
aload 7
invokevirtual sun.security.ssl.ClientHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
117: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
118: aload 7
119: invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
end local 7 end local 6 120: goto 133
121: StackMap locals: sun.security.ssl.ClientHandshaker int int
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHelloDone
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 6
start local 6 122: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
123: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloDone:(Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
124: goto 133
end local 6 125: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$Finished
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/CipherSuite;)V
126: astore 7
start local 7 127: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
128: aload 0
aload 7
invokevirtual sun.security.ssl.ClientHandshaker.serverFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
129: goto 133
end local 7 130: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
131: new java.lang.StringBuilder
dup
ldc "Illegal client handshake msg, "
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;
132: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
133: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 134 0 this Lsun/security/ssl/ClientHandshaker;
0 134 1 type B
0 134 2 messageLen I
3 6 3 helloRequest Lsun/security/ssl/HandshakeMessage$HelloRequest;
7 10 4 serverHello Lsun/security/ssl/HandshakeMessage$ServerHello;
16 22 5 certificateMsg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
38 40 6 rsaSrvKeyExchange Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
42 43 6 e Ljava/security/GeneralSecurityException;
46 48 6 dhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
50 51 6 e Ljava/security/GeneralSecurityException;
59 61 6 dhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
63 64 6 e Ljava/security/GeneralSecurityException;
71 73 6 ecdhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
75 76 6 e Ljava/security/GeneralSecurityException;
105 120 6 peerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
112 120 7 supportedPeerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
122 125 6 serverHelloDone Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
127 130 7 serverFinished Lsun/security/ssl/HandshakeMessage$Finished;
Exception table:
from to target type
36 40 41 Class java.security.GeneralSecurityException
44 48 49 Class java.security.GeneralSecurityException
52 61 62 Class java.security.GeneralSecurityException
65 73 74 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
type
messageLen
private void serverHelloRequest(sun.security.ssl.HandshakeMessage$HelloRequest);
descriptor: (Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$HelloRequest.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.clientHelloDelivered:Z
ifne 18
3: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 12
getstatic sun.security.ssl.ClientHandshaker.allowUnsafeRenegotiation:Z
ifne 12
4: aload 0
getfield sun.security.ssl.ClientHandshaker.activeProtocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 8
5: aload 0
bipush 100
invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
6: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.invalidated:Z
7: goto 18
8: StackMap locals:
StackMap stack:
aload 0
bipush 40
9: ldc "Renegotiation is not allowed"
10: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
11: goto 18
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 17
13: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 17
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 17
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
15: ldc "Warning: continue with insecure renegotiation"
16: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.kickstart:()V
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/ssl/ClientHandshaker;
0 19 1 mesg Lsun/security/ssl/HandshakeMessage$HelloRequest;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverHello(sun.security.ssl.HandshakeMessage$ServerHello);
descriptor: (Lsun/security/ssl/HandshakeMessage$ServerHello;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=9, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
1: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 3
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 3
2: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
3: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
astore 2
start local 2 4: aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
ifne 11
5: new javax.net.ssl.SSLHandshakeException
dup
6: new java.lang.StringBuilder
dup
ldc "Server chose "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc ", but that protocol version is not enabled or not supported "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc "by the client."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 2
invokevirtual sun.security.ssl.HandshakeHash.protocolDetermined:(Lsun/security/ssl/ProtocolVersion;)V
12: aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
13: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
14: checkcast sun.security.ssl.RenegotiationInfoExtension
astore 3
start local 3 15: aload 3
ifnull 43
16: aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 23
17: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
ifne 21
18: aload 0
bipush 40
19: ldc "The renegotiation_info field is not empty"
20: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
21: StackMap locals: sun.security.ssl.RenegotiationInfoExtension
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
22: goto 56
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 27
24: aload 0
bipush 40
25: ldc "Unexpected renegotiation indication extension"
26: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
arraylength
iadd
newarray 8
28: astore 4
start local 4 29: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
iconst_0
aload 4
30: iconst_0
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
31: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
iconst_0
aload 4
33: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
arraylength
34: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: aload 4
36: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
37: invokestatic java.security.MessageDigest.isEqual:([B[B)Z
38: ifne 56
39: aload 0
bipush 40
40: ldc "Incorrect verify data in ServerHello renegotiation_info message"
41: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 4 42: goto 56
43: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 52
44: getstatic sun.security.ssl.ClientHandshaker.allowLegacyHelloMessages:Z
ifne 48
45: aload 0
bipush 40
46: ldc "Failed to negotiate the use of secure renegotiation"
47: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
48: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
49: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 56
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 56
50: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Warning: No renegotiation indication extension in ServerHello"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: goto 56
52: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 56
53: aload 0
bipush 40
54: ldc "No renegotiation indication extension"
55: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
56: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.svr_random:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
57: aload 0
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifne 61
58: aload 0
bipush 47
59: new java.lang.StringBuilder
dup
ldc "Server selected improper ciphersuite "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
61: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.ClientHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
62: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 64
63: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.prfAlg:Lsun/security/ssl/CipherSuite$PRF;
invokevirtual sun.security.ssl.CipherSuite$PRF.getPRFHashAlg:()Ljava/lang/String;
invokevirtual sun.security.ssl.HandshakeHash.setFinishedAlg:(Ljava/lang/String;)V
64: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
ifeq 70
65: aload 0
bipush 47
66: new java.lang.StringBuilder
dup
ldc "compression type not supported, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
67: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
68: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
69: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
70: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 116
71: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.equals:(Ljava/lang/Object;)Z
ifeq 111
72: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 4
start local 4 73: aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
aload 4
if_acmpeq 77
74: new javax.net.ssl.SSLProtocolException
dup
75: ldc "Server returned wrong cipher suite for session"
76: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
77: StackMap locals: sun.security.ssl.CipherSuite
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
astore 5
start local 5 78: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 5
if_acmpeq 82
79: new javax.net.ssl.SSLProtocolException
dup
80: ldc "Server resumed session with wrong protocol version"
81: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
82: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
aload 4
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 84
83: aload 4
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 106
84: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
astore 6
start local 6 85: aconst_null
astore 7
start local 7 86: new sun.security.ssl.ClientHandshaker$1
dup
aload 0
invokespecial sun.security.ssl.ClientHandshaker$1.<init>:(Lsun/security/ssl/ClientHandshaker;)V
87: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.Subject
astore 7
88: goto 93
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion java.security.Principal javax.security.auth.Subject
StackMap stack: java.security.PrivilegedActionException
89: pop
90: aconst_null
astore 7
91: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 93
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 93
92: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Attempt to obtain subject failed!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
93: StackMap locals:
StackMap stack:
aload 7
ifnull 101
94: aload 7
ldc Ljava/security/Principal;
invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
95: astore 8
start local 8 96: aload 8
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 98
97: new javax.net.ssl.SSLProtocolException
dup
ldc "Server resumed session with wrong subject identity"
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
98: StackMap locals: java.util.Set
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 106
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 106
99: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Subject identity is same"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 8 100: goto 106
101: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 103
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 103
102: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Kerberos credentials are not present in the current Subject; check if javax.security.auth.useSubjectAsCreds system property has been set to false"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
103: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
104: ldc "Server resumed session with no subject"
105: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 106: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.resumingSession:Z
107: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
invokevirtual sun.security.ssl.ClientHandshaker.calculateConnectionKeys:(Ljavax/crypto/SecretKey;)V
108: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 116
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 116
109: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Server resumed "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 5 end local 4 110: goto 116
111: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 113
112: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
113: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
114: aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 116
115: new javax.net.ssl.SSLException
dup
ldc "New session creation is disabled"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
116: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
117: getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
118: invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.ExtendedMasterSecretExtension
119: astore 4
start local 4 120: aload 4
ifnull 132
121: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 123
122: aload 2
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 123
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
ifne 126
123: StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack:
aload 0
bipush 110
124: ldc "Server sent the extended_master_secret extension improperly"
125: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
126: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 146
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 146
127: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 146
128: aload 0
bipush 110
129: ldc "Server sent an unexpected extended_master_secret extension on session resumption"
130: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
131: goto 146
132: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 136
getstatic sun.security.ssl.ClientHandshaker.allowLegacyMasterSecret:Z
ifne 136
133: aload 0
bipush 40
134: ldc "Extended Master Secret extension is required"
135: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
136: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 146
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 146
137: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 142
138: aload 0
bipush 40
139: ldc "Missing Extended Master Secret extension on session resumption"
140: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
141: goto 146
StackMap locals:
StackMap stack:
142: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 146
getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
ifne 146
143: aload 0
bipush 40
144: ldc "Extended Master Secret extension is required"
145: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
146: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 153
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 153
147: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 149
148: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aconst_null
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
149: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
150: aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 152
151: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
iconst_1
invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
152: StackMap locals:
StackMap stack:
return
153: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
invokevirtual sun.security.ssl.HelloExtensions.list:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 164
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension top java.util.Iterator
StackMap stack:
154: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HelloExtension
astore 5
start local 5 155: aload 5
getfield sun.security.ssl.HelloExtension.type:Lsun/security/ssl/ExtensionType;
astore 7
start local 7 156: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
if_acmpeq 164
157: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_EC_POINT_FORMATS:Lsun/security/ssl/ExtensionType;
if_acmpeq 164
158: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_SERVER_NAME:Lsun/security/ssl/ExtensionType;
if_acmpeq 164
159: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
if_acmpeq 164
160: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
if_acmpeq 164
161: aload 0
bipush 110
162: new java.lang.StringBuilder
dup
ldc "Server sent an unsupported extension: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
163: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 7 end local 5 164: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 154
165: aload 0
166: new sun.security.ssl.SSLSessionImpl
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
167: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
168: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getPortSE:()I
169: aload 4
ifnull 170
iconst_1
goto 171
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack: sun.security.ssl.ClientHandshaker new 166 new 166 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int
170: iconst_0
171: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack: sun.security.ssl.ClientHandshaker new 166 new 166 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int int
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;IZLjava/lang/String;)V
172: putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
173: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
174: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 176
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 176
175: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "** "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
176: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 177 0 this Lsun/security/ssl/ClientHandshaker;
0 177 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHello;
4 177 2 mesgVersion Lsun/security/ssl/ProtocolVersion;
15 177 3 serverHelloRI Lsun/security/ssl/RenegotiationInfoExtension;
29 42 4 verifyData [B
73 110 4 sessionSuite Lsun/security/ssl/CipherSuite;
78 110 5 sessionVersion Lsun/security/ssl/ProtocolVersion;
85 106 6 localPrincipal Ljava/security/Principal;
86 106 7 subject Ljavax/security/auth/Subject;
96 100 8 principals Ljava/util/Set<Ljava/security/Principal;>;
120 177 4 extendedMasterSecretExt Lsun/security/ssl/ExtendedMasterSecretExtension;
155 164 5 ext Lsun/security/ssl/HelloExtension;
156 164 7 type Lsun/security/ssl/ExtensionType;
Exception table:
from to target type
86 88 89 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.verify:(Ljava/security/PublicKey;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/RandomCookie;)Z
ifne 6
3: aload 0
bipush 40
4: ldc "server key exchange invalid"
5: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
7: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
8: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
9: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
10: ifne 12
11: new javax.net.ssl.SSLHandshakeException
dup
ldc "RSA ServerKeyExchange does not comply to algorithm constraints"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/ClientHandshaker;
0 13 1 mesg Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.DHCrypt
dup
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getModulus:()Ljava/math/BigInteger;
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getBase:()Ljava/math/BigInteger;
3: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.DHCrypt.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/SecureRandom;)V
4: putfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
5: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getServerPublicKey:()Ljava/math/BigInteger;
putfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
6: aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Ljava/security/AlgorithmConstraints;Ljava/math/BigInteger;)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ClientHandshaker;
0 8 1 mesg Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.getPublicKey:()Ljava/security/interfaces/ECPublicKey;
astore 2
start local 2 3: aload 0
new sun.security.ssl.ECDHCrypt
dup
aload 2
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/spec/ECParameterSpec;Ljava/security/SecureRandom;)V
putfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
4: aload 0
aload 2
putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
5: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
6: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
7: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
8: ifne 10
9: new javax.net.ssl.SSLHandshakeException
dup
ldc "ECDH ServerKeyExchange does not comply to algorithm constraints"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.security.interfaces.ECPublicKey
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/ClientHandshaker;
0 11 1 mesg Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
3 11 2 key Ljava/security/interfaces/ECPublicKey;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverHelloDone(sun.security.ssl.HandshakeMessage$ServerHelloDone);
descriptor: (Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=10, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
3: aconst_null
astore 2
start local 2 4: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
ifnull 56
5: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
astore 3
start local 3 6: new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 22
9: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey javax.net.ssl.X509ExtendedKeyManager java.util.ArrayList int
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
iload 5
baload
lookupswitch { // 3
1: 10
2: 12
64: 14
default: 18
}
10: StackMap locals:
StackMap stack:
ldc "RSA"
astore 6
start local 6 11: goto 19
end local 6 12: StackMap locals:
StackMap stack:
ldc "DSA"
astore 6
start local 6 13: goto 19
end local 6 14: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
ifeq 15
ldc "EC"
goto 16
StackMap locals:
StackMap stack:
15: aconst_null
StackMap locals:
StackMap stack: java.lang.String
16: astore 6
start local 6 17: goto 19
end local 6 18: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 19: StackMap locals: java.lang.String
StackMap stack:
aload 6
ifnull 21
aload 4
aload 6
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ifne 21
20: aload 4
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 21: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
22: iload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
arraylength
if_icmplt 9
end local 5 23: aconst_null
astore 5
start local 5 24: aload 4
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 25: iload 6
ifeq 36
26: aload 4
iload 6
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
27: astore 7
start local 7 28: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 33
29: aload 3
aload 7
30: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
31: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 5
32: goto 36
33: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey javax.net.ssl.X509ExtendedKeyManager java.util.ArrayList java.lang.String int java.lang.String[]
StackMap stack:
aload 3
aload 7
34: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.ssl.ClientHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
35: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
astore 5
end local 7 36: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 37: aload 5
ifnull 46
38: aload 3
aload 5
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
astore 8
start local 8 39: aload 8
ifnull 46
aload 8
arraylength
ifeq 46
40: aload 8
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 9
start local 9 41: aload 9
ifnull 46
42: new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 8
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
astore 7
43: aload 3
aload 5
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
astore 2
44: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
45: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 8
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
end local 9 end local 8 46: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg
StackMap stack:
aload 7
ifnonnull 51
47: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 50
48: new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
iconst_0
anewarray java.security.cert.X509Certificate
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
astore 7
49: goto 51
50: StackMap locals:
StackMap stack:
aload 0
bipush 41
invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
51: StackMap locals:
StackMap stack:
aload 7
ifnull 56
52: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 54
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 54
53: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
54: StackMap locals:
StackMap stack:
aload 7
aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.write:(Lsun/security/ssl/HandshakeOutStream;)V
55: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
end local 7 end local 6 end local 5 end local 4 end local 3 56: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
StackMap stack:
invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 57
3: 57
4: 78
5: 78
6: 80
7: 80
8: 80
9: 92
10: 92
11: 86
12: 86
13: 86
14: 104
15: 104
default: 116
}
57: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 61
58: new javax.net.ssl.SSLProtocolException
dup
59: ldc "Server did not send certificate message"
60: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 65
62: new javax.net.ssl.SSLProtocolException
dup
63: ldc "Server certificate does not include an RSA key"
64: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
65: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 68
66: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 67: goto 74
end local 4 68: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
sipush 512
if_icmpgt 71
69: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 70: goto 74
end local 4 71: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
ifnonnull 73
72: new javax.net.ssl.SSLProtocolException
dup
ldc "Server did not send a RSA_EXPORT Server Key Exchange message"
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
73: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
astore 4
start local 4 74: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top java.security.PublicKey
StackMap stack:
new sun.security.ssl.RSAClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
75: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 4
76: invokespecial sun.security.ssl.RSAClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Ljava/security/PublicKey;)V
astore 3
start local 3 77: goto 119
end local 4 end local 3 78: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
StackMap stack:
new sun.security.ssl.DHClientKeyExchange
dup
invokespecial sun.security.ssl.DHClientKeyExchange.<init>:()V
astore 3
start local 3 79: goto 119
end local 3 80: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
ifnonnull 84
81: new javax.net.ssl.SSLProtocolException
dup
82: ldc "Server did not send a DH Server Key Exchange message"
83: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
84: StackMap locals:
StackMap stack:
new sun.security.ssl.DHClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
invokevirtual sun.security.ssl.DHCrypt.getPublicKey:()Ljava/math/BigInteger;
invokespecial sun.security.ssl.DHClientKeyExchange.<init>:(Ljava/math/BigInteger;)V
astore 3
start local 3 85: goto 119
end local 3 86: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
ifnonnull 90
87: new javax.net.ssl.SSLProtocolException
dup
88: ldc "Server did not send a ECDH Server Key Exchange message"
89: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
90: StackMap locals:
StackMap stack:
new sun.security.ssl.ECDHClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
invokevirtual sun.security.ssl.ECDHCrypt.getPublicKey:()Ljava/security/PublicKey;
invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Ljava/security/PublicKey;)V
astore 3
start local 3 91: goto 119
end local 3 92: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 96
93: new javax.net.ssl.SSLProtocolException
dup
94: ldc "Server did not send certificate message"
95: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
96: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.ECPublicKey
ifne 100
97: new javax.net.ssl.SSLProtocolException
dup
98: ldc "Server certificate does not include an EC key"
99: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
100: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
checkcast java.security.interfaces.ECPublicKey
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 5
start local 5 101: aload 0
new sun.security.ssl.ECDHCrypt
dup
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/spec/ECParameterSpec;Ljava/security/SecureRandom;)V
putfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
102: new sun.security.ssl.ECDHClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
invokevirtual sun.security.ssl.ECDHCrypt.getPublicKey:()Ljava/security/PublicKey;
invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Ljava/security/PublicKey;)V
astore 3
start local 3 103: goto 119
end local 5 end local 3 104: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
astore 6
start local 6 105: aload 6
ifnonnull 107
106: new java.io.IOException
dup
ldc "Hostname is required to use Kerberos cipher suites"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
107: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top java.lang.String
StackMap stack:
new sun.security.ssl.KerberosClientKeyExchange
dup
108: aload 6
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.isLoopbackSE:()Z
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
109: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
110: invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Ljava/lang/String;ZLjava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
111: astore 7
start local 7 112: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 7
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPeerPrincipal:()Ljava/security/Principal;
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
113: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 7
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljava/security/Principal;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
114: aload 7
astore 3
start local 3 115: goto 119
end local 7 end local 6 end local 3 116: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
StackMap stack:
new java.lang.RuntimeException
dup
117: new java.lang.StringBuilder
dup
ldc "Unsupported key exchange: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
118: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 3 119: StackMap locals: sun.security.ssl.HandshakeMessage
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 121
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 121
120: aload 3
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage.print:(Ljava/io/PrintStream;)V
121: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
122: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 3
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
123: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
124: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
125: invokestatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 126
3: 126
4: 140
5: 140
6: 134
7: 134
8: 134
9: 138
10: 138
11: 136
12: 136
13: 136
14: 128
15: 128
default: 140
}
126: StackMap locals:
StackMap stack:
aload 3
checkcast sun.security.ssl.RSAClientKeyExchange
getfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
astore 4
start local 4 127: goto 143
end local 4 128: StackMap locals:
StackMap stack:
aload 3
checkcast sun.security.ssl.KerberosClientKeyExchange
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getUnencryptedPreMasterSecret:()[B
129: astore 5
start local 5 130: new javax.crypto.spec.SecretKeySpec
dup
aload 5
131: ldc "TlsPremasterSecret"
132: invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
start local 4 133: goto 143
end local 5 end local 4 134: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
iconst_1
invokevirtual sun.security.ssl.DHCrypt.getAgreedSecret:(Ljava/math/BigInteger;Z)Ljavax/crypto/SecretKey;
astore 4
start local 4 135: goto 143
end local 4 136: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:(Ljava/security/PublicKey;)Ljavax/crypto/SecretKey;
astore 4
start local 4 137: goto 143
end local 4 138: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:(Ljava/security/PublicKey;)Ljavax/crypto/SecretKey;
astore 4
start local 4 139: goto 143
end local 4 140: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Internal error: unknown key exchange "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
141: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
142: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 4 143: StackMap locals: javax.crypto.SecretKey
StackMap stack:
aload 0
aload 4
aconst_null
invokevirtual sun.security.ssl.ClientHandshaker.calculateKeys:(Ljavax/crypto/SecretKey;Lsun/security/ssl/ProtocolVersion;)V
144: aload 2
ifnull 180
145: aconst_null
astore 6
start local 6 146: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 163
147: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getPeerSupportedSignAlgs:()Ljava/util/Collection;
148: aload 2
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
aload 2
149: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
150: astore 6
151: aload 6
ifnonnull 155
152: new javax.net.ssl.SSLHandshakeException
dup
153: ldc "No supported signature algorithm"
154: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
155: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey top sun.security.ssl.SignatureAndHashAlgorithm
StackMap stack:
aload 6
156: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmName:(Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
157: astore 7
start local 7 158: aload 7
ifnull 159
aload 7
invokevirtual java.lang.String.length:()I
ifne 162
159: StackMap locals: java.lang.String
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
160: ldc "No supported hash algorithm"
161: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
162: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 7
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
end local 7 163: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateVerify
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
164: aload 2
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
165: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
166: aload 6
167: invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PrivateKey;Ljavax/crypto/SecretKey;Ljava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;)V
astore 5
end local 6 start local 5 168: goto 174
end local 5 StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey
StackMap stack: java.security.GeneralSecurityException
169: astore 6
start local 6 170: aload 0
bipush 40
171: ldc "Error signing certificate verify"
aload 6
172: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
173: aconst_null
astore 5
end local 6 start local 5 174: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateVerify
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 176
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 176
175: aload 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
176: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.write:(Lsun/security/ssl/HandshakeOutStream;)V
177: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
178: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
end local 5 179: goto 182
180: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 182
181: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aconst_null
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
182: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
183: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 184 0 this Lsun/security/ssl/ClientHandshaker;
0 184 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
4 184 2 signingKey Ljava/security/PrivateKey;
6 56 3 km Ljavax/net/ssl/X509ExtendedKeyManager;
7 56 4 keytypesTmp Ljava/util/ArrayList<Ljava/lang/String;>;
8 23 5 i I
11 12 6 typeName Ljava/lang/String;
13 14 6 typeName Ljava/lang/String;
17 18 6 typeName Ljava/lang/String;
19 21 6 typeName Ljava/lang/String;
24 56 5 alias Ljava/lang/String;
25 56 6 keytypesTmpSize I
28 36 7 keytypes [Ljava/lang/String;
37 56 7 m1 Lsun/security/ssl/HandshakeMessage$CertificateMsg;
39 46 8 certs [Ljava/security/cert/X509Certificate;
41 46 9 publicKey Ljava/security/PublicKey;
77 78 3 m2 Lsun/security/ssl/HandshakeMessage;
79 80 3 m2 Lsun/security/ssl/HandshakeMessage;
85 86 3 m2 Lsun/security/ssl/HandshakeMessage;
91 92 3 m2 Lsun/security/ssl/HandshakeMessage;
103 104 3 m2 Lsun/security/ssl/HandshakeMessage;
115 116 3 m2 Lsun/security/ssl/HandshakeMessage;
119 184 3 m2 Lsun/security/ssl/HandshakeMessage;
67 68 4 key Ljava/security/PublicKey;
70 71 4 key Ljava/security/PublicKey;
74 78 4 key Ljava/security/PublicKey;
101 104 5 params Ljava/security/spec/ECParameterSpec;
105 116 6 hostname Ljava/lang/String;
112 116 7 kerberosMsg Lsun/security/ssl/KerberosClientKeyExchange;
127 128 4 preMasterSecret Ljavax/crypto/SecretKey;
133 134 4 preMasterSecret Ljavax/crypto/SecretKey;
135 136 4 preMasterSecret Ljavax/crypto/SecretKey;
137 138 4 preMasterSecret Ljavax/crypto/SecretKey;
139 140 4 preMasterSecret Ljavax/crypto/SecretKey;
143 184 4 preMasterSecret Ljavax/crypto/SecretKey;
130 134 5 secretBytes [B
168 169 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
174 179 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
146 168 6 preferableSignatureAlgorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
158 163 7 hashAlg Ljava/lang/String;
170 174 6 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
145 168 169 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverFinished(sun.security.ssl.HandshakeMessage$Finished);
descriptor: (Lsun/security/ssl/HandshakeMessage$Finished;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
iconst_2
3: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
4: invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
istore 2
start local 2 5: iload 2
ifne 9
6: aload 0
bipush 47
7: ldc "server 'finished' message doesn't verify"
8: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
9: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 11
10: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifne 13
12: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
iconst_0
invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 17
14: aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
15: aload 0
iconst_1
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.handshakeFinished:Z
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual sun.security.ssl.SSLSessionImpl.setLastAccessedTime:(J)V
19: aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifne 34
20: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 28
21: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
22: invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
23: checkcast sun.security.ssl.SSLSessionContextImpl
24: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
25: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 34
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 34
26: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Cached client session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: goto 34
StackMap locals:
StackMap stack:
28: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 34
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 34
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
30: new java.lang.StringBuilder
dup
ldc "%% Didn't cache non-resumable client session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
31: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
32: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/security/ssl/ClientHandshaker;
0 35 1 mesg Lsun/security/ssl/HandshakeMessage$Finished;
5 35 2 verified Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void sendChangeCipherAndFinish(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: new sun.security.ssl.HandshakeMessage$Finished
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
1: iconst_1
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
2: invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;Lsun/security/ssl/CipherSuite;)V
astore 2
start local 2 3: aload 0
aload 2
iload 1
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
4: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 6
5: aload 0
aload 2
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
6: StackMap locals: sun.security.ssl.HandshakeMessage$Finished
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/ClientHandshaker;
0 7 1 finishedTag Z
3 7 2 mesg Lsun/security/ssl/HandshakeMessage$Finished;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
finishedTag
sun.security.ssl.HandshakeMessage getKickstartMessage();
descriptor: ()Lsun/security/ssl/HandshakeMessage;
flags: (0x0000)
Code:
stack=6, locals=7, args_size=1
start local 0 0: new sun.security.ssl.SessionId
dup
iconst_0
newarray 8
invokespecial sun.security.ssl.SessionId.<init>:([B)V
astore 1
start local 1 1: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getActiveCipherSuites:()Lsun/security/ssl/CipherSuiteList;
astore 2
start local 2 2: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
3: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
4: invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
checkcast sun.security.ssl.SSLSessionContextImpl
5: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getPortSE:()I
invokevirtual sun.security.ssl.SSLSessionContextImpl.get:(Ljava/lang/String;I)Lsun/security/ssl/SSLSessionImpl;
6: putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
7: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 17
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 17
8: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 16
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Client cached "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
11: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 12
ldc ""
goto 13
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack: java.io.PrintStream java.lang.StringBuilder
12: ldc " (not rejoinable)"
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: goto 17
16: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "%% No cached client session"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 26
18: getstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
ifne 24
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isSessionResumption:()Z
ifeq 24
19: aload 0
20: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerCertificates:()[Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate[]
21: putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
22: goto 24
StackMap locals:
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
23: pop
24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifne 26
25: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 82
27: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 3
start local 3 28: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
astore 4
start local 4 29: aload 0
aload 3
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifne 33
30: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 32
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 32
31: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "%% can't resume, unavailable cipher"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: StackMap locals: sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
33: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 37
aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
ifne 37
34: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 36
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 36
35: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "%% can't resume, protocol disabled"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 52
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 52
38: aload 4
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 39
iconst_1
goto 40
StackMap locals:
StackMap stack:
39: iconst_0
StackMap locals:
StackMap stack: int
40: istore 5
start local 5 41: iload 5
ifeq 44
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 44
42: getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
ifne 44
43: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
44: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 52
getstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
ifne 52
45: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 6
start local 6 46: aload 6
ifnull 47
aload 6
invokevirtual java.lang.String.length:()I
ifne 52
47: StackMap locals: java.lang.String
StackMap stack:
iload 5
ifeq 51
48: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 52
49: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
50: goto 52
51: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
end local 6 end local 5 52: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 5
start local 5 53: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 62
aload 5
ifnull 62
54: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
55: astore 6
start local 6 56: aload 5
aload 6
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 62
57: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 61
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 61
58: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% can't resume, endpoint id algorithm does not match, requested: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
59: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", cached: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
61: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
end local 6 62: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 71
63: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 68
64: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifne 65
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 68
65: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Try resuming "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
66: ldc " from port "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalPortSE:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
67: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
68: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
astore 1
69: aload 0
aload 4
putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
70: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
71: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 82
72: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 76
73: new javax.net.ssl.SSLHandshakeException
dup
74: ldc "Can't reuse existing SSL client session"
75: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
76: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 6
start local 6 77: aload 6
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
78: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 81
79: aload 2
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifeq 81
80: aload 6
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
81: StackMap locals: java.util.Collection
StackMap stack:
new sun.security.ssl.CipherSuiteList
dup
aload 6
invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
astore 2
end local 6 end local 5 end local 4 end local 3 82: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 84
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 84
83: new javax.net.ssl.SSLHandshakeException
dup
ldc "No existing session to resume"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
84: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 93
aload 2
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifeq 93
85: new java.util.ArrayList
dup
aload 2
invokevirtual sun.security.ssl.CipherSuiteList.size:()I
iconst_1
isub
invokespecial java.util.ArrayList.<init>:(I)V
86: astore 3
start local 3 87: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 91
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList java.util.Collection top java.util.Iterator
StackMap stack:
88: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 89: aload 4
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
if_acmpeq 91
90: aload 3
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 4 91: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 88
92: new sun.security.ssl.CipherSuiteList
dup
aload 3
invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
astore 2
end local 3 93: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack:
iconst_0
istore 3
start local 3 94: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 99
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int top java.util.Iterator
StackMap stack:
95: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 96: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 99
97: iconst_1
istore 3
98: goto 100
end local 4 99: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 95
100: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int
StackMap stack:
iload 3
ifne 102
101: new javax.net.ssl.SSLHandshakeException
dup
ldc "No negotiable cipher suite"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
102: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ClientHello
dup
103: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
104: aload 1
aload 2
105: invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Ljava/security/SecureRandom;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuiteList;)V
astore 4
start local 4 106: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.containsEC:()Z
ifeq 114
107: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
invokestatic sun.security.ssl.EllipticCurvesExtension.createExtension:(Ljava/security/AlgorithmConstraints;)Lsun/security/ssl/EllipticCurvesExtension;
108: astore 5
start local 5 109: aload 5
ifnull 114
110: aload 4
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
aload 5
invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
111: aload 4
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
112: getstatic sun.security.ssl.EllipticPointFormatsExtension.DEFAULT:Lsun/security/ssl/HelloExtension;
113: invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
end local 5 114: StackMap locals: sun.security.ssl.HandshakeMessage$ClientHello
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 122
115: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
116: astore 5
start local 5 117: aload 5
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 121
118: new javax.net.ssl.SSLHandshakeException
dup
119: ldc "No supported signature algorithm"
120: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
121: StackMap locals: java.util.Collection
StackMap stack:
aload 4
aload 5
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addSignatureAlgorithmsExtension:(Ljava/util/Collection;)V
end local 5 122: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 126
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 126
123: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 124
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 126
124: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addExtendedMasterSecretExtension:()V
125: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
126: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
ifeq 132
127: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getRawHostnameSE:()Ljava/lang/String;
astore 5
start local 5 128: aload 5
ifnull 132
aload 5
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
ifle 132
129: aload 5
invokestatic sun.net.util.IPAddressUtil.isIPv4LiteralAddress:(Ljava/lang/String;)Z
ifne 132
130: aload 5
invokestatic sun.net.util.IPAddressUtil.isIPv6LiteralAddress:(Ljava/lang/String;)Z
ifne 132
131: aload 4
aload 5
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addServerNameIndicationExtension:(Ljava/lang/String;)V
end local 5 132: StackMap locals:
StackMap stack:
aload 0
aload 4
getfield sun.security.ssl.HandshakeMessage$ClientHello.clnt_random:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
133: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 135
134: aload 2
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifne 136
135: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addRenegotiationInfoExtension:([B)V
136: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 137 0 this Lsun/security/ssl/ClientHandshaker;
1 137 1 sessionId Lsun/security/ssl/SessionId;
2 137 2 cipherSuites Lsun/security/ssl/CipherSuiteList;
28 82 3 sessionSuite Lsun/security/ssl/CipherSuite;
29 82 4 sessionVersion Lsun/security/ssl/ProtocolVersion;
41 52 5 isTLS10Plus Z
46 52 6 identityAlg Ljava/lang/String;
53 82 5 identityAlg Ljava/lang/String;
56 62 6 sessionIdentityAlg Ljava/lang/String;
77 82 6 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
87 93 3 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
89 91 4 suite Lsun/security/ssl/CipherSuite;
94 137 3 negotiable Z
96 99 4 suite Lsun/security/ssl/CipherSuite;
106 137 4 clientHelloMessage Lsun/security/ssl/HandshakeMessage$ClientHello;
109 114 5 ece Lsun/security/ssl/EllipticCurvesExtension;
117 122 5 localSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
128 132 5 hostname Ljava/lang/String;
Exception table:
from to target type
19 22 23 Class javax.net.ssl.SSLPeerUnverifiedException
Exceptions:
throws javax.net.ssl.SSLException
void handshakeAlert(byte);
descriptor: (B)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic sun.security.ssl.Alerts.alertDescription:(B)Ljava/lang/String;
astore 2
start local 2 1: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 3
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 3
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "SSL - handshake alert: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: StackMap locals: java.lang.String
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
new java.lang.StringBuilder
dup
ldc "handshake alert: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/ClientHandshaker;
0 4 1 description B
1 4 2 message Ljava/lang/String;
Exceptions:
throws javax.net.ssl.SSLProtocolException
MethodParameters:
Name Flags
description
private void serverCertificate(sun.security.ssl.HandshakeMessage$CertificateMsg);
descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.getCertificateChain:()[Ljava/security/cert/X509Certificate;
astore 2
start local 2 3: aload 2
arraylength
ifne 5
4: aload 0
bipush 42
ldc "empty certificate chain"
invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
5: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
ifnull 13
6: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 13
7: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 3
start local 3 8: aload 3
ifnull 9
aload 3
invokevirtual java.lang.String.length:()I
ifne 13
9: StackMap locals: java.lang.String
StackMap stack:
aload 2
iconst_0
aaload
aload 0
getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokestatic sun.security.ssl.ClientHandshaker.isIdentityEquivalent:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
ifne 13
10: aload 0
bipush 42
11: ldc "server certificate change is restrictedduring renegotiation"
12: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 3 13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
astore 3
start local 3 14: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 17
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
ifne 17
15: getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
astore 4
start local 4 16: goto 18
end local 4 17: StackMap locals: javax.net.ssl.X509TrustManager
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
astore 4
start local 4 18: StackMap locals: java.lang.String
StackMap stack:
aload 3
instanceof javax.net.ssl.X509ExtendedTrustManager
ifeq 32
19: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 26
20: aload 3
checkcast javax.net.ssl.X509ExtendedTrustManager
21: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
22: aload 4
23: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
24: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
25: goto 37
26: StackMap locals:
StackMap stack:
aload 3
checkcast javax.net.ssl.X509ExtendedTrustManager
27: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
28: aload 4
29: aload 0
getfield sun.security.ssl.ClientHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
30: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
31: goto 37
32: StackMap locals:
StackMap stack:
new java.security.cert.CertificateException
dup
33: ldc "Improper X509TrustManager implementation"
34: invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
end local 4 35: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 36: aload 0
bipush 46
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/Throwable;)V
end local 4 37: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
38: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/security/ssl/ClientHandshaker;
0 39 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
3 39 2 peerCerts [Ljava/security/cert/X509Certificate;
8 13 3 identityAlg Ljava/lang/String;
14 39 3 tm Ljavax/net/ssl/X509TrustManager;
16 17 4 keyExchangeString Ljava/lang/String;
18 35 4 keyExchangeString Ljava/lang/String;
36 37 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
14 35 35 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private static boolean isIdentityEquivalent(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=10, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
bipush 7
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
astore 2
start local 2 3: aload 1
bipush 7
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
astore 3
start local 3 4: aload 2
ifnull 6
aload 3
ifnull 6
5: aload 2
aload 3
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
6: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
iconst_2
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
astore 4
start local 4 7: aload 1
iconst_2
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltName:(Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
astore 5
start local 5 8: aload 4
ifnull 10
aload 5
ifnull 10
9: aload 4
aload 5
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
10: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 6
start local 6 11: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 7
start local 7 12: aload 0
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 8
start local 8 13: aload 1
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 9
start local 9 14: aload 6
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 19
15: aload 7
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 19
16: aload 6
aload 7
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 19
17: aload 8
aload 9
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 19
18: iconst_1
ireturn
19: StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.lang.Object java.lang.Object java.lang.Object java.lang.Object javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal
StackMap stack:
iconst_0
ireturn
end local 9 end local 8 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 20 0 thisCert Ljava/security/cert/X509Certificate;
0 20 1 prevCert Ljava/security/cert/X509Certificate;
3 20 2 thisIPAddress Ljava/lang/Object;
4 20 3 prevIPAddress Ljava/lang/Object;
7 20 4 thisDNSName Ljava/lang/Object;
8 20 5 prevDNSName Ljava/lang/Object;
11 20 6 thisSubject Ljavax/security/auth/x500/X500Principal;
12 20 7 prevSubject Ljavax/security/auth/x500/X500Principal;
13 20 8 thisIssuer Ljavax/security/auth/x500/X500Principal;
14 20 9 prevIssuer Ljavax/security/auth/x500/X500Principal;
MethodParameters:
Name Flags
thisCert
prevCert
private static java.lang.Object getSubjectAltName(java.security.cert.X509Certificate, int);
descriptor: (Ljava/security/cert/X509Certificate;I)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
astore 2
start local 2 1: goto 8
end local 2 StackMap locals:
StackMap stack: java.security.cert.CertificateParsingException
2: pop
3: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 7
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 7
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
5: ldc "Attempt to obtain subjectAltNames extension failed!"
6: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 2 8: StackMap locals: java.util.Collection
StackMap stack:
aload 2
ifnull 15
9: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 14
StackMap locals: java.security.cert.X509Certificate int java.util.Collection top java.util.Iterator
StackMap stack:
10: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 11: aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 12: iload 5
iload 1
if_icmpne 14
13: aload 3
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
areturn
end local 5 end local 3 14: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
15: StackMap locals: java.security.cert.X509Certificate int java.util.Collection
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 cert Ljava/security/cert/X509Certificate;
0 16 1 type I
1 2 2 subjectAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
8 16 2 subjectAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
11 14 3 subjectAltName Ljava/util/List<*>;
12 14 5 subjectAltNameType I
Exception table:
from to target type
0 1 2 Class java.security.cert.CertificateParsingException
MethodParameters:
Name Flags
cert
type
static int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic sun.security.ssl.CipherSuite$KeyExchange.values:()[Lsun/security/ssl/CipherSuite$KeyExchange;
arraylength
newarray 10
astore 0
2: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DHE_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 6
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.CipherSuite$KeyExchange.K_DHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 7
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 8
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_DSS:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iconst_5
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 11
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDHE_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 12
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 13
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ECDSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 9
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 10
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 14
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 15
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_NULL:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iconst_1
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iconst_2
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iconst_3
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_SCSV:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
bipush 16
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
dup
putstatic sun.security.ssl.ClientHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:[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
}
SourceFile: "ClientHandshaker.java"
NestMembers:
sun.security.ssl.ClientHandshaker$1
InnerClasses:
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
final PRF = sun.security.ssl.CipherSuite$PRF of sun.security.ssl.CipherSuite
sun.security.ssl.ClientHandshaker$1
final CertificateMsg = sun.security.ssl.HandshakeMessage$CertificateMsg of sun.security.ssl.HandshakeMessage
final CertificateRequest = sun.security.ssl.HandshakeMessage$CertificateRequest of sun.security.ssl.HandshakeMessage
final CertificateVerify = sun.security.ssl.HandshakeMessage$CertificateVerify of sun.security.ssl.HandshakeMessage
final ClientHello = sun.security.ssl.HandshakeMessage$ClientHello of sun.security.ssl.HandshakeMessage
final DH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final ECDH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final Finished = sun.security.ssl.HandshakeMessage$Finished of sun.security.ssl.HandshakeMessage
final HelloRequest = sun.security.ssl.HandshakeMessage$HelloRequest of sun.security.ssl.HandshakeMessage
final RSA_ServerKeyExchange = sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final ServerHello = sun.security.ssl.HandshakeMessage$ServerHello of sun.security.ssl.HandshakeMessage
final ServerHelloDone = sun.security.ssl.HandshakeMessage$ServerHelloDone of sun.security.ssl.HandshakeMessage