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 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 "jdk.tls.allowUnsafeServerCertChange"
iconst_0
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
1: putstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
2: 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=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.ClientHandshaker.state:I
iload 1
if_icmplt 5
1: iload 1
ifeq 5
2: new javax.net.ssl.SSLProtocolException
dup
3: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iload 1
lookupswitch { // 7
0: 6
2: 8
11: 10
12: 20
13: 72
14: 84
20: 86
default: 92
}
6: StackMap locals:
StackMap stack:
aload 0
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
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloRequest:(Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
7: goto 95
8: StackMap locals:
StackMap stack:
aload 0
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
invokevirtual sun.security.ssl.ClientHandshaker.serverHello:(Lsun/security/ssl/HandshakeMessage$ServerHello;)V
9: goto 95
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:
aload 0
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
invokevirtual sun.security.ssl.ClientHandshaker.serverCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
16: aload 0
17: 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;
18: putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
19: goto 95
20: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
21: 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: 61
3: 22
4: 61
5: 61
6: 44
7: 44
8: 39
9: 61
10: 61
11: 53
12: 53
13: 53
14: 64
15: 64
default: 67
}
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 26
23: new javax.net.ssl.SSLProtocolException
dup
24: ldc "Server did not send certificate message"
25: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 28
27: 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
28: 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 34
29: 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
30: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
31: ldc " when the public key in the server certificate"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: 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;
33: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
aload 0
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
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
35: goto 95
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
36: astore 3
start local 3 37: ldc "Server key"
aload 3
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 38: goto 95
39: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
40: goto 95
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
41: astore 3
start local 3 42: ldc "Server key"
aload 3
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 43: goto 95
44: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
45: aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
46: 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
47: iload 2
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BI)V
48: invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
49: goto 95
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
50: astore 3
start local 3 51: ldc "Server key"
aload 3
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 52: goto 95
53: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
dup
54: 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
55: aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[B)V
56: invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
57: goto 95
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
58: astore 3
start local 3 59: ldc "Server key"
aload 3
invokestatic sun.security.ssl.ClientHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 60: goto 95
61: StackMap locals:
StackMap stack:
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
62: 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;
63: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
65: ldc "unexpected receipt of server key exchange algorithm"
66: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
67: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
68: new java.lang.StringBuilder
dup
ldc "unsupported key exchange algorithm = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
69: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
70: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
71: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
72: 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 73
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 76
73: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
74: ldc "Client authentication requested for anonymous cipher suite."
75: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
76: 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 77
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 80
77: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
78: ldc "Client certificate requested for kerberos cipher suite."
79: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
80: 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;
invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:(Lsun/security/ssl/HandshakeInStream;)V
putfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
81: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 95
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 95
82: 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
83: goto 95
84: StackMap locals:
StackMap stack:
aload 0
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
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloDone:(Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
85: goto 95
86: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.receivedChangeCipherSpec:()Z
ifne 90
87: aload 0
bipush 40
88: ldc "Received Finished message before ChangeCipherSpec"
89: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
90: StackMap locals:
StackMap stack:
aload 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.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;)V
invokevirtual sun.security.ssl.ClientHandshaker.serverFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
91: goto 95
92: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
93: 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;
94: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
95: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.state:I
iload 1
if_icmpge 97
96: aload 0
iload 1
putfield sun.security.ssl.ClientHandshaker.state:I
97: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 98 0 this Lsun/security/ssl/ClientHandshaker;
0 98 1 type B
0 98 2 messageLen I
37 38 3 e Ljava/security/GeneralSecurityException;
42 43 3 e Ljava/security/GeneralSecurityException;
51 52 3 e Ljava/security/GeneralSecurityException;
59 60 3 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
34 35 36 Class java.security.GeneralSecurityException
39 40 41 Class java.security.GeneralSecurityException
44 49 50 Class java.security.GeneralSecurityException
53 57 58 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.state:I
iconst_1
if_icmpge 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=10, 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 10
5: new javax.net.ssl.SSLHandshakeException
dup
6: new java.lang.StringBuilder
dup
ldc "Server chose unsupported or disabled protocol: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
11: 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;
12: checkcast sun.security.ssl.RenegotiationInfoExtension
astore 3
start local 3 13: aload 3
ifnull 41
14: aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 21
15: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
ifne 19
16: aload 0
bipush 40
17: ldc "The renegotiation_info field is not empty"
18: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
19: StackMap locals: sun.security.ssl.RenegotiationInfoExtension
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
20: goto 54
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 25
22: aload 0
bipush 40
23: ldc "Unexpected renegotiation indication extension"
24: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
25: 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
26: astore 4
start local 4 27: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
iconst_0
aload 4
28: iconst_0
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
29: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
iconst_0
aload 4
31: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
arraylength
32: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: aload 4
34: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
35: invokestatic java.security.MessageDigest.isEqual:([B[B)Z
36: ifne 54
37: aload 0
bipush 40
38: ldc "Incorrect verify data in ServerHello renegotiation_info message"
39: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 4 40: goto 54
41: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 50
42: getstatic sun.security.ssl.ClientHandshaker.allowLegacyHelloMessages:Z
ifne 46
43: aload 0
bipush 40
44: ldc "Failed to negotiate the use of secure renegotiation"
45: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
46: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
47: 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
48: 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
49: goto 54
50: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 54
51: aload 0
bipush 40
52: ldc "No renegotiation indication extension"
53: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
54: 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;
55: 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 59
56: aload 0
bipush 47
57: new java.lang.StringBuilder
dup
ldc "Server selected improper ciphersuite "
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;
58: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
59: 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
60: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
ifeq 66
61: aload 0
bipush 47
62: new java.lang.StringBuilder
dup
ldc "compression type not supported, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
63: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
66: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 113
67: 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 108
68: 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 69: aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
aload 4
if_acmpeq 73
70: new javax.net.ssl.SSLProtocolException
dup
71: ldc "Server returned wrong cipher suite for session"
72: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
73: 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 74: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 5
if_acmpeq 78
75: new javax.net.ssl.SSLProtocolException
dup
76: ldc "Server resumed session with wrong protocol version"
77: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
78: 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 80
79: 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 102
80: 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 81: aconst_null
astore 7
start local 7 82: new sun.security.ssl.ClientHandshaker$1
dup
aload 0
invokespecial sun.security.ssl.ClientHandshaker$1.<init>:(Lsun/security/ssl/ClientHandshaker;)V
83: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.Subject
astore 7
84: goto 89
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
85: pop
86: aconst_null
astore 7
87: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 89
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 89
88: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Attempt to obtain subject failed!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
89: StackMap locals:
StackMap stack:
aload 7
ifnull 97
90: aload 7
ldc Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
91: astore 8
start local 8 92: aload 8
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 94
93: 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
94: StackMap locals: java.util.Set
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 102
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 102
95: 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 96: goto 102
97: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 99
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 99
98: 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
99: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
100: ldc "Server resumed session with no subject"
101: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 102: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.resumingSession:Z
103: aload 0
bipush 19
putfield sun.security.ssl.ClientHandshaker.state:I
104: 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
105: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 107
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 107
106: 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
107: StackMap locals:
StackMap stack:
return
end local 5 end local 4 108: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 110
109: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
110: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
111: aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 113
112: new javax.net.ssl.SSLException
dup
ldc "New session creation is disabled"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
113: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
114: getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
115: invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.ExtendedMasterSecretExtension
116: astore 4
start local 4 117: aload 4
ifnull 129
118: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 120
119: 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 120
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
ifne 123
120: StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack:
aload 0
bipush 110
121: ldc "Server sent the extended_master_secret extension improperly"
122: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
123: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 143
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 143
124: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 143
125: aload 0
bipush 110
126: ldc "Server sent an unexpected extended_master_secret extension on session resumption"
127: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
128: goto 143
129: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 133
getstatic sun.security.ssl.ClientHandshaker.allowLegacyMasterSecret:Z
ifne 133
130: aload 0
bipush 40
131: ldc "Extended Master Secret extension is required"
132: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
133: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 143
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 143
134: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 139
135: aload 0
bipush 40
136: ldc "Missing Extended Master Secret extension on session resumption"
137: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
138: goto 143
StackMap locals:
StackMap stack:
139: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 143
getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
ifne 143
140: aload 0
bipush 40
141: ldc "Extended Master Secret extension is required"
142: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
143: 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 153
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:
144: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HelloExtension
astore 5
start local 5 145: aload 5
getfield sun.security.ssl.HelloExtension.type:Lsun/security/ssl/ExtensionType;
astore 7
start local 7 146: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
if_acmpeq 153
147: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_EC_POINT_FORMATS:Lsun/security/ssl/ExtensionType;
if_acmpeq 153
148: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
if_acmpeq 153
149: aload 7
getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
if_acmpeq 153
150: aload 0
bipush 110
151: 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;
152: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 7 end local 5 153: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 144
154: aload 0
155: 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;
156: 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
157: aload 4
ifnull 158
iconst_1
goto 159
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 155 new 155 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite sun.security.ssl.SessionId java.lang.String int
158: iconst_0
159: 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 155 new 155 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite 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;Lsun/security/ssl/SessionId;Ljava/lang/String;IZLjava/lang/String;)V
160: putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
161: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 163
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 163
162: 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
163: 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 164 0 this Lsun/security/ssl/ClientHandshaker;
0 164 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHello;
4 164 2 mesgVersion Lsun/security/ssl/ProtocolVersion;
13 164 3 serverHelloRI Lsun/security/ssl/RenegotiationInfoExtension;
27 40 4 verifyData [B
69 108 4 sessionSuite Lsun/security/ssl/CipherSuite;
74 108 5 sessionVersion Lsun/security/ssl/ProtocolVersion;
81 102 6 localPrincipal Ljava/security/Principal;
82 102 7 subject Ljavax/security/auth/Subject;
92 96 8 principals Ljava/util/Set<Ljavax/security/auth/kerberos/KerberosPrincipal;>;
117 164 4 extendedMasterSecretExt Lsun/security/ssl/ExtendedMasterSecretExtension;
145 153 5 ext Lsun/security/ssl/HelloExtension;
146 153 7 type Lsun/security/ssl/ExtensionType;
Exception table:
from to target type
82 84 85 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:Lsun/security/util/AlgorithmConstraints;
8: getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/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 sun.security.util.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;
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
putfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
3: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getServerPublicKey:()Ljava/math/BigInteger;
putfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
4: aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;Ljava/math/BigInteger;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/ClientHandshaker;
0 6 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:Lsun/security/util/AlgorithmConstraints;
6: getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/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 sun.security.util.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=7, locals=12, 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 60
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 51
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 51
aload 8
arraylength
ifeq 51
40: aload 8
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 9
start local 9 41: aload 9
instanceof java.security.interfaces.ECPublicKey
ifeq 46
42: aload 9
checkcast java.security.interfaces.ECPublicKey
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 10
start local 10 43: aload 10
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
istore 11
start local 11 44: iload 11
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isSupported:(I)Z
ifne 46
45: aconst_null
astore 9
end local 11 end local 10 46: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] java.security.PublicKey
StackMap stack:
aload 9
ifnull 51
47: new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 8
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
astore 7
48: aload 3
aload 5
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
astore 2
49: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
50: 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 51: StackMap locals:
StackMap stack:
aload 7
ifnonnull 56
52: 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 55
53: 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
54: goto 56
55: StackMap locals:
StackMap stack:
aload 0
bipush 41
invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
56: StackMap locals:
StackMap stack:
aload 7
ifnull 60
57: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 59
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 59
58: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
59: 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
end local 7 end local 6 end local 5 end local 4 end local 3 60: 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: 61
3: 61
4: 82
5: 82
6: 84
7: 84
8: 84
9: 96
10: 96
11: 90
12: 90
13: 90
14: 108
15: 108
default: 119
}
61: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 65
62: new javax.net.ssl.SSLProtocolException
dup
63: ldc "Server did not send certificate message"
64: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
65: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 69
66: new javax.net.ssl.SSLProtocolException
dup
67: ldc "Server certificate does not include an RSA key"
68: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
69: 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 72
70: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 71: goto 78
end local 4 72: 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 75
73: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 74: goto 78
end local 4 75: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
ifnonnull 77
76: 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
77: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
astore 4
start local 4 78: 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;
79: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 4
80: 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 81: goto 122
end local 4 end local 3 82: 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 83: goto 122
end local 3 84: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
ifnonnull 88
85: new javax.net.ssl.SSLProtocolException
dup
86: ldc "Server did not send a DH Server Key Exchange message"
87: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
88: 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 89: goto 122
end local 3 90: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
ifnonnull 94
91: new javax.net.ssl.SSLProtocolException
dup
92: ldc "Server did not send a ECDH Server Key Exchange message"
93: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
94: 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 95: goto 122
end local 3 96: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 100
97: new javax.net.ssl.SSLProtocolException
dup
98: ldc "Server did not send certificate message"
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;
instanceof java.security.interfaces.ECPublicKey
ifne 104
101: new javax.net.ssl.SSLProtocolException
dup
102: ldc "Server certificate does not include an EC key"
103: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
104: 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 105: 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;
106: 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 107: goto 122
end local 5 end local 3 108: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
astore 6
start local 6 109: aload 6
ifnonnull 111
110: new java.io.IOException
dup
ldc "Hostname is required to use Kerberos cipher suites"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
111: 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
112: 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;
113: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
114: invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Ljava/lang/String;ZLjava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)V
astore 7
start local 7 115: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 7
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPeerPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
116: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 7
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
117: aload 7
astore 3
start local 3 118: goto 122
end local 7 end local 6 end local 3 119: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey
StackMap stack:
new java.lang.RuntimeException
dup
120: 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;
121: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 3 122: StackMap locals: sun.security.ssl.HandshakeMessage
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 124
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 124
123: aload 3
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage.print:(Ljava/io/PrintStream;)V
124: 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
125: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
126: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
127: 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: 128
3: 128
4: 140
5: 140
6: 134
7: 134
8: 134
9: 138
10: 138
11: 136
12: 136
13: 136
14: 130
15: 130
default: 140
}
128: 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 129: goto 141
end local 4 130: StackMap locals:
StackMap stack:
aload 3
checkcast sun.security.ssl.KerberosClientKeyExchange
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPreMasterSecret:()Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getUnencrypted:()[B
131: astore 5
start local 5 132: new javax.crypto.spec.SecretKeySpec
dup
aload 5
ldc "TlsPremasterSecret"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
start local 4 133: goto 141
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 141
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 141
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 141
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
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;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 4 141: 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
142: aload 2
ifnull 157
143: 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;
144: aload 2
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
145: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
146: invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PrivateKey;Ljavax/crypto/SecretKey;Ljava/security/SecureRandom;)V
astore 5
start local 5 147: goto 153
end local 5 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
148: astore 6
start local 6 149: aload 0
bipush 40
150: ldc "Error signing certificate verify"
aload 6
151: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
152: aconst_null
astore 5
end local 6 start local 5 153: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateVerify
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 155
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 155
154: aload 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
155: 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
156: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.doHashes:()V
end local 5 157: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
158: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 159 0 this Lsun/security/ssl/ClientHandshaker;
0 159 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
4 159 2 signingKey Ljava/security/PrivateKey;
6 60 3 km Ljavax/net/ssl/X509ExtendedKeyManager;
7 60 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 60 5 alias Ljava/lang/String;
25 60 6 keytypesTmpSize I
28 36 7 keytypes [Ljava/lang/String;
37 60 7 m1 Lsun/security/ssl/HandshakeMessage$CertificateMsg;
39 51 8 certs [Ljava/security/cert/X509Certificate;
41 51 9 publicKey Ljava/security/PublicKey;
43 46 10 params Ljava/security/spec/ECParameterSpec;
44 46 11 index I
81 82 3 m2 Lsun/security/ssl/HandshakeMessage;
83 84 3 m2 Lsun/security/ssl/HandshakeMessage;
89 90 3 m2 Lsun/security/ssl/HandshakeMessage;
95 96 3 m2 Lsun/security/ssl/HandshakeMessage;
107 108 3 m2 Lsun/security/ssl/HandshakeMessage;
118 119 3 m2 Lsun/security/ssl/HandshakeMessage;
122 159 3 m2 Lsun/security/ssl/HandshakeMessage;
71 72 4 key Ljava/security/PublicKey;
74 75 4 key Ljava/security/PublicKey;
78 82 4 key Ljava/security/PublicKey;
105 108 5 params Ljava/security/spec/ECParameterSpec;
109 119 6 hostname Ljava/lang/String;
115 119 7 kerberosMsg Lsun/security/ssl/KerberosClientKeyExchange;
129 130 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;
141 159 4 preMasterSecret Ljavax/crypto/SecretKey;
132 134 5 secretBytes [B
147 148 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
153 157 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
149 153 6 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
143 147 148 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=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$Finished.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
3: iconst_2
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/ProtocolVersion;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 16
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: 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
17: aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifne 32
18: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 26
19: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
20: invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
21: checkcast sun.security.ssl.SSLSessionContextImpl
22: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
23: 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
24: 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
25: goto 32
StackMap locals:
StackMap stack:
26: 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
27: getstatic java.lang.System.out:Ljava/io/PrintStream;
28: new java.lang.StringBuilder
dup
ldc "%% Didn't cache non-resumable client session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/security/ssl/ClientHandshaker;
0 33 1 mesg Lsun/security/ssl/HandshakeMessage$Finished;
5 33 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=6, 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;
2: invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)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:
aload 0
bipush 19
putfield sun.security.ssl.ClientHandshaker.state:I
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ClientHandshaker;
0 8 1 finishedTag Z
3 8 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: getstatic sun.security.ssl.SSLSessionImpl.nullSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
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 81
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 50
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 50
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 50
getstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
ifne 50
45: iload 5
ifeq 49
46: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 50
47: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
48: goto 50
49: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
end local 5 50: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 5
start local 5 51: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 60
aload 5
ifnull 60
52: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
53: astore 6
start local 6 54: aload 5
aload 6
invokestatic sun.security.ssl.ClientHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 60
55: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 59
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 59
56: 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
57: 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;
58: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
59: 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 60: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 69
61: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 66
62: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifne 63
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 66
63: 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;
64: 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;
65: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
66: 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
67: aload 0
aload 4
putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
68: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
69: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 81
70: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 74
71: new javax.net.ssl.SSLHandshakeException
dup
72: ldc "Can't reuse existing SSL client session"
73: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
74: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
75: astore 6
start local 6 76: aload 6
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
77: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 80
78: 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 80
79: aload 6
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
80: 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 81: 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 83
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 83
82: new javax.net.ssl.SSLHandshakeException
dup
ldc "No existing session to resume"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
83: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 92
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 92
84: new java.util.ArrayList
dup
aload 2
invokevirtual sun.security.ssl.CipherSuiteList.size:()I
iconst_1
isub
invokespecial java.util.ArrayList.<init>:(I)V
85: astore 3
start local 3 86: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 90
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList java.util.Collection top java.util.Iterator
StackMap stack:
87: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 88: aload 4
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
if_acmpeq 90
89: aload 3
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 4 90: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 87
91: new sun.security.ssl.CipherSuiteList
dup
aload 3
invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
astore 2
end local 3 92: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack:
iconst_0
istore 3
start local 3 93: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 98
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int top java.util.Iterator
StackMap stack:
94: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 95: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 98
96: iconst_1
istore 3
97: goto 99
end local 4 98: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 94
99: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int
StackMap stack:
iload 3
ifne 101
100: new javax.net.ssl.SSLHandshakeException
dup
ldc "No negotiable cipher suite"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
101: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ClientHello
dup
102: 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;
103: aload 1
aload 2
104: 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 105: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.containsEC:()Z
ifeq 113
106: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.createExtension:(Lsun/security/util/AlgorithmConstraints;)Lsun/security/ssl/SupportedEllipticCurvesExtension;
107: astore 5
start local 5 108: aload 5
ifnull 113
109: 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
110: aload 4
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
111: getstatic sun.security.ssl.SupportedEllipticPointFormatsExtension.DEFAULT:Lsun/security/ssl/HelloExtension;
112: invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
end local 5 113: StackMap locals: sun.security.ssl.HandshakeMessage$ClientHello
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 117
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 117
114: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 115
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 117
115: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addExtendedMasterSecretExtension:()V
116: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
117: 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;
118: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 120
119: 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 121
120: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addRenegotiationInfoExtension:([B)V
121: 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 122 0 this Lsun/security/ssl/ClientHandshaker;
1 122 1 sessionId Lsun/security/ssl/SessionId;
2 122 2 cipherSuites Lsun/security/ssl/CipherSuiteList;
28 81 3 sessionSuite Lsun/security/ssl/CipherSuite;
29 81 4 sessionVersion Lsun/security/ssl/ProtocolVersion;
41 50 5 isTLS10Plus Z
51 81 5 identityAlg Ljava/lang/String;
54 60 6 sessionIdentityAlg Ljava/lang/String;
76 81 6 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
86 92 3 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
88 90 4 suite Lsun/security/ssl/CipherSuite;
93 122 3 negotiable Z
95 98 4 suite Lsun/security/ssl/CipherSuite;
105 122 4 clientHelloMessage Lsun/security/ssl/HandshakeMessage$ClientHello;
108 113 5 ece Lsun/security/ssl/SupportedEllipticCurvesExtension;
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=5, locals=6, 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 11
6: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 11
7: 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 11
8: aload 0
bipush 42
9: ldc "server certificate change is restrictedduring renegotiation"
10: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
11: 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 12: 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 15
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
ifne 15
13: 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 14: goto 16
end local 4 15: 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 16: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostnameVerificationSE:()Ljava/lang/String;
astore 5
start local 5 17: aload 3
instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
ifeq 27
18: aload 3
checkcast com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
19: aload 2
ifnull 21
20: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
goto 22
21: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
aconst_null
22: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager java.security.cert.X509Certificate[]
aload 4
23: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
24: aload 5
25: invokevirtual com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
26: goto 40
27: StackMap locals:
StackMap stack:
aload 5
ifnull 31
28: new java.lang.RuntimeException
dup
29: ldc "trust manager does not support peer identification"
30: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
aload 3
32: aload 2
ifnull 34
33: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
goto 35
34: StackMap locals:
StackMap stack: javax.net.ssl.X509TrustManager
aload 2
35: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.lang.String java.lang.String
StackMap stack: javax.net.ssl.X509TrustManager java.security.cert.X509Certificate[]
aload 4
36: invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
end local 5 end local 4 37: goto 40
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
38: astore 4
start local 4 39: aload 0
bipush 46
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/Throwable;)V
end local 4 40: 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
41: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/security/ssl/ClientHandshaker;
0 42 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
3 42 2 peerCerts [Ljava/security/cert/X509Certificate;
12 42 3 tm Ljavax/net/ssl/X509TrustManager;
14 15 4 keyExchangeString Ljava/lang/String;
16 37 4 keyExchangeString Ljava/lang/String;
17 37 5 identificator Ljava/lang/String;
39 40 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
12 37 38 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 sun.security.ssl.ClientHandshaker.objectsEquals:(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 sun.security.ssl.ClientHandshaker.objectsEquals:(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 boolean objectsEquals(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpeq 2
aload 0
ifnull 1
aload 0
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 a Ljava/lang/Object;
0 3 1 b Ljava/lang/Object;
MethodParameters:
Name Flags
a
b
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
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