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 static final int ALTNAME_DNS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ALTNAME_IP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
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 boolean staplingActive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.security.cert.X509Certificate[] deferredCerts;
descriptor: [Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.ProtocolVersion maxProtocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0002) ACC_PRIVATE
private static final boolean enableSNIExtension;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean allowUnsafeServerCertChange;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean enableMFLExtension;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean enableFFDHE;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean alpnActive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.List<javax.net.ssl.SNIServerName> requestedServerNames;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljavax/net/ssl/SNIServerName;>;
private int requestedMFLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean serverNamesAccepted;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.HandshakeMessage$ClientHello initialClientHelloMsg;
descriptor: Lsun/security/ssl/HandshakeMessage$ClientHello;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.X509Certificate[] reservedServerCerts;
descriptor: [Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "jsse.enableSNIExtension"
iconst_1
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
1: putstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
2: ldc "jdk.tls.allowUnsafeServerCertChange"
iconst_0
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
3: putstatic sun.security.ssl.ClientHandshaker.allowUnsafeServerCertChange:Z
4: ldc "jsse.enableMFLExtension"
iconst_0
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
5: putstatic sun.security.ssl.ClientHandshaker.enableMFLExtension:Z
6: ldc "jsse.enableFFDHE"
iconst_1
invokestatic sun.security.ssl.Debug.getBooleanProperty:(Ljava/lang/String;Z)Z
7: putstatic sun.security.ssl.ClientHandshaker.enableFFDHE:Z
8: 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
iconst_0
putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
4: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
5: aload 0
6: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
7: aload 0
iconst_m1
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
8: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
9: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
10: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
11: 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 12 0 this Lsun/security/ssl/ClientHandshaker;
0 12 1 socket Lsun/security/ssl/SSLSocketImpl;
0 12 2 context Lsun/security/ssl/SSLContextImpl;
0 12 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 12 4 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 12 5 isInitialHandshake Z
0 12 6 secureRenegotiation Z
0 12 7 clientVerifyData [B
0 12 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[], boolean);
descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;Lsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
flags: (0x0000)
Code:
stack=12, locals=10, args_size=10
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 start local 9 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
iload 9
invokespecial sun.security.ssl.Handshaker.<init>:(Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;ZZLsun/security/ssl/ProtocolVersion;ZZ[B[BZ)V
3: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
4: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
5: aload 0
6: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
7: aload 0
iconst_m1
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
8: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
9: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
10: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
11: return
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 12 0 this Lsun/security/ssl/ClientHandshaker;
0 12 1 engine Lsun/security/ssl/SSLEngineImpl;
0 12 2 context Lsun/security/ssl/SSLContextImpl;
0 12 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 12 4 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 12 5 isInitialHandshake Z
0 12 6 secureRenegotiation Z
0 12 7 clientVerifyData [B
0 12 8 serverVerifyData [B
0 12 9 isDTLS Z
MethodParameters:
Name Flags
engine
context
enabledProtocols
activeProtocolVersion
isInitialHandshake
secureRenegotiation
clientVerifyData
serverVerifyData
isDTLS
void processMessage(byte, int);
descriptor: (BI)V
flags: (0x0000)
Code:
stack=9, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
iload 1
invokevirtual sun.security.ssl.HandshakeStateManager.check:(B)Ljava/util/List;
astore 3
start local 3 1: aload 0
getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
ifeq 7
aload 3
2: bipush 22
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
3: invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
4: ifeq 7
5: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
6: aload 0
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;
putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
7: StackMap locals: java.util.List
StackMap stack:
iload 1
lookupswitch { // 9
0: 8
2: 21
3: 12
11: 25
12: 41
13: 102
14: 135
20: 139
22: 36
default: 144
}
8: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$HelloRequest
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$HelloRequest.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 4
start local 4 9: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
10: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloRequest:(Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
11: goto 147
end local 4 12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
ifne 16
13: new javax.net.ssl.SSLProtocolException
dup
14: ldc "hello_verify_request is not a SSL/TLS handshake message"
15: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$HelloVerifyRequest
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
iload 2
invokespecial sun.security.ssl.HandshakeMessage$HelloVerifyRequest.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
17: astore 5
start local 5 18: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
19: aload 0
aload 5
invokevirtual sun.security.ssl.ClientHandshaker.helloVerifyRequest:(Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;)V
20: goto 147
end local 5 21: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHello
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
iload 2
invokespecial sun.security.ssl.HandshakeMessage$ServerHello.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
astore 6
start local 6 22: aload 0
aload 6
invokevirtual sun.security.ssl.ClientHandshaker.serverHello:(Lsun/security/ssl/HandshakeMessage$ServerHello;)V
23: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
24: goto 147
end local 6 25: 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 27
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 27
26: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
ifnull 30
27: StackMap locals:
StackMap stack:
aload 0
bipush 10
28: ldc "unexpected server cert chain"
29: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
30: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 7
start local 7 31: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
32: aload 0
aload 7
invokevirtual sun.security.ssl.ClientHandshaker.serverCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
33: aload 0
getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
ifne 147
34: aload 0
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;
putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
35: goto 147
end local 7 36: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateStatus
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$CertificateStatus.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 8
start local 8 37: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 8
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
38: aload 0
aload 8
invokevirtual sun.security.ssl.ClientHandshaker.certificateStatus:(Lsun/security/ssl/HandshakeMessage$CertificateStatus;)V
39: aload 0
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;
putfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
40: goto 147
end local 8 41: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
42: 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 - 13
2: 92
3: 43
4: 92
5: 92
6: 69
7: 69
8: 62
9: 92
10: 92
11: 81
12: 81
13: 81
default: 97
}
43: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 47
44: new javax.net.ssl.SSLProtocolException
dup
45: ldc "Server did not send certificate message"
46: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 49
48: 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
49: 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 55
50: 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
51: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
52: ldc " when the public key in the server certificate"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
53: 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;
54: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
55: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
56: astore 9
start local 9 57: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
58: aload 0
aload 9
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
end local 9 59: goto 147
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
60: astore 9
start local 9 61: new javax.net.ssl.SSLException
dup
ldc "Server key"
aload 9
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 62: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
63: astore 9
start local 9 64: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
65: aload 0
aload 9
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
end local 9 66: goto 147
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
67: astore 9
start local 9 68: new javax.net.ssl.SSLException
dup
ldc "Server key"
aload 9
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 69: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
70: aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
71: 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
72: iload 2
73: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
74: invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BILjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
75: astore 9
start local 9 76: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
77: aload 0
aload 9
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
end local 9 78: goto 147
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
79: astore 9
start local 9 80: new javax.net.ssl.SSLException
dup
ldc "Server key"
aload 9
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 81: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
dup
82: 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
83: aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
84: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
85: invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BLjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
86: astore 9
start local 9 87: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
88: aload 0
aload 9
invokevirtual sun.security.ssl.ClientHandshaker.serverKeyExchange:(Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
end local 9 89: goto 147
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
90: astore 9
start local 9 91: new javax.net.ssl.SSLException
dup
ldc "Server key"
aload 9
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 92: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
93: 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
94: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
95: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
96: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
97: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
98: new java.lang.StringBuilder
dup
ldc "unsupported or unexpected key exchange algorithm = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
99: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
100: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
101: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
102: 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 103
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 106
103: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
104: ldc "Client authentication requested for anonymous cipher suite."
105: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
106: StackMap locals:
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;
invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
ifnull 112
107: new javax.net.ssl.SSLHandshakeException
dup
108: new java.lang.StringBuilder
dup
ldc "Client certificate requested for external cipher suite: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
109: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
110: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
111: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
112: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$CertificateRequest
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:(Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
putfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
113: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 115
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 115
114: 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
115: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
116: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 147
117: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.getSignAlgorithms:()Ljava/util/Collection;
118: astore 9
start local 9 119: aload 9
ifnull 120
aload 9
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 123
120: StackMap locals: sun.security.ssl.ClientHandshaker int int java.util.List top top top top top java.util.Collection
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
121: ldc "No peer supported signature algorithms"
122: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
123: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 9
124: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
125: astore 10
start local 10 126: aload 10
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 130
127: new javax.net.ssl.SSLHandshakeException
dup
128: ldc "No supported signature and hash algorithm in common"
129: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
130: StackMap locals: java.util.Collection
StackMap stack:
aload 0
aload 10
invokevirtual sun.security.ssl.ClientHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
131: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
132: aload 10
133: invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
end local 10 end local 9 134: goto 147
135: StackMap locals: sun.security.ssl.ClientHandshaker int int java.util.List
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHelloDone
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 9
start local 9 136: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
137: aload 0
aload 9
invokevirtual sun.security.ssl.ClientHandshaker.serverHelloDone:(Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
138: goto 147
end local 9 139: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$Finished
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.input:Lsun/security/ssl/HandshakeInStream;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/CipherSuite;)V
140: astore 10
start local 10 141: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 10
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
142: aload 0
aload 10
invokevirtual sun.security.ssl.ClientHandshaker.serverFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
143: goto 147
end local 10 144: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
145: 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;
146: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
147: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 148 0 this Lsun/security/ssl/ClientHandshaker;
0 148 1 type B
0 148 2 messageLen I
1 148 3 ignoredOptStates Ljava/util/List<Ljava/lang/Byte;>;
9 12 4 helloRequest Lsun/security/ssl/HandshakeMessage$HelloRequest;
18 21 5 helloVerifyRequest Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;
22 25 6 serverHello Lsun/security/ssl/HandshakeMessage$ServerHello;
31 36 7 certificateMsg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
37 41 8 certStatusMsg Lsun/security/ssl/HandshakeMessage$CertificateStatus;
57 59 9 rsaSrvKeyExchange Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
61 62 9 e Ljava/security/GeneralSecurityException;
64 66 9 dhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
68 69 9 e Ljava/security/GeneralSecurityException;
76 78 9 dhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
80 81 9 e Ljava/security/GeneralSecurityException;
87 89 9 ecdhSrvKeyExchange Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
91 92 9 e Ljava/security/GeneralSecurityException;
119 134 9 peerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
126 134 10 supportedPeerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
136 139 9 serverHelloDone Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
141 144 10 serverFinished Lsun/security/ssl/HandshakeMessage$Finished;
Exception table:
from to target type
55 59 60 Class java.security.GeneralSecurityException
62 66 67 Class java.security.GeneralSecurityException
69 78 79 Class java.security.GeneralSecurityException
81 89 90 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
type
messageLen
private void serverHelloRequest(sun.security.ssl.HandshakeMessage$HelloRequest);
descriptor: (Lsun/security/ssl/HandshakeMessage$HelloRequest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$HelloRequest.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.clientHelloDelivered:Z
ifne 18
3: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 12
getstatic sun.security.ssl.ClientHandshaker.allowUnsafeRenegotiation:Z
ifne 12
4: aload 0
getfield sun.security.ssl.ClientHandshaker.activeProtocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
ifeq 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 helloVerifyRequest(sun.security.ssl.HandshakeMessage$HelloVerifyRequest);
descriptor: (Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;)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$HelloVerifyRequest.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
aload 1
getfield sun.security.ssl.HandshakeMessage$HelloVerifyRequest.cookie:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.ssl.HandshakeMessage$ClientHello.cookie:[B
3: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 5
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 5
4: aload 0
getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.print:(Ljava/io/PrintStream;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.write:(Lsun/security/ssl/HandshakeOutStream;)V
6: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 0
getfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ClientHandshaker;
0 8 1 mesg Lsun/security/ssl/HandshakeMessage$HelloVerifyRequest;
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=10, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
1: aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
2: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 4
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 4
3: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
4: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
astore 2
start local 2 5: aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/ProtocolVersion;)Z
ifne 12
6: new javax.net.ssl.SSLHandshakeException
dup
7: new java.lang.StringBuilder
dup
ldc "Server chose "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: ldc ", but that protocol version is not enabled or not supported "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "by the client."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 2
invokevirtual sun.security.ssl.HandshakeHash.protocolDetermined:(Lsun/security/ssl/ProtocolVersion;)V
13: aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
14: 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;
15: checkcast sun.security.ssl.RenegotiationInfoExtension
astore 3
start local 3 16: aload 3
ifnull 44
17: aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 24
18: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
ifne 22
19: aload 0
bipush 40
20: ldc "The renegotiation_info field is not empty"
21: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
22: StackMap locals: sun.security.ssl.RenegotiationInfoExtension
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
23: goto 57
24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 28
25: aload 0
bipush 40
26: ldc "Unexpected renegotiation indication extension"
27: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
28: 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
29: astore 4
start local 4 30: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
iconst_0
aload 4
31: iconst_0
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
32: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
iconst_0
aload 4
34: aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
arraylength
aload 0
getfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
arraylength
35: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
36: aload 4
37: aload 3
invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
38: invokestatic java.security.MessageDigest.isEqual:([B[B)Z
39: ifne 57
40: aload 0
bipush 40
41: ldc "Incorrect verify data in ServerHello renegotiation_info message"
42: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 4 43: goto 57
44: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 53
45: getstatic sun.security.ssl.ClientHandshaker.allowLegacyHelloMessages:Z
ifne 49
46: aload 0
bipush 40
47: ldc "Failed to negotiate the use of secure renegotiation"
48: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
49: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
50: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 57
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 57
51: 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
52: goto 57
53: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 57
54: aload 0
bipush 40
55: ldc "No renegotiation indication extension"
56: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
57: 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;
58: 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 62
59: aload 0
bipush 47
60: new java.lang.StringBuilder
dup
ldc "Server selected improper ciphersuite "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
61: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
62: 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
63: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 65
64: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.prfAlg:Lsun/security/ssl/CipherSuite$PRF;
invokevirtual sun.security.ssl.CipherSuite$PRF.getPRFHashAlg:()Ljava/lang/String;
invokevirtual sun.security.ssl.HandshakeHash.setFinishedAlg:(Ljava/lang/String;)V
65: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
ifeq 71
66: aload 0
bipush 47
67: new java.lang.StringBuilder
dup
ldc "compression type not supported, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
68: aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
69: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
70: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
71: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 105
72: 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 100
73: 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 74: aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
aload 4
if_acmpeq 78
75: new javax.net.ssl.SSLProtocolException
dup
76: ldc "Server returned wrong cipher suite for session"
77: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
78: 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 79: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 5
if_acmpeq 83
80: new javax.net.ssl.SSLProtocolException
dup
81: ldc "Server resumed session with wrong protocol version"
82: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
83: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
aload 4
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
84: invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
85: astore 6
start local 6 86: aload 6
ifnull 95
87: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
astore 7
start local 7 88: aload 6
iconst_1
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
aload 7
invokeinterface sun.security.ssl.ClientKeyExchangeService.isRelated:(ZLjava/security/AccessControlContext;Ljava/security/Principal;)Z
ifeq 92
89: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 95
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 95
90: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Subject identity is same"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
91: goto 95
92: StackMap locals: sun.security.ssl.ClientKeyExchangeService java.security.Principal
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
93: ldc "Server resumed session with wrong subject identity or no subject"
94: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 7 95: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.resumingSession:Z
96: 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
97: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 105
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 105
98: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Server resumed "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 end local 5 end local 4 99: goto 105
100: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 102
101: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
102: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
103: aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 105
104: new javax.net.ssl.SSLException
dup
ldc "New session creation is disabled"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
105: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
getstatic sun.security.ssl.ExtensionType.EXT_MAX_FRAGMENT_LENGTH:Lsun/security/ssl/ExtensionType;
invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
106: checkcast sun.security.ssl.MaxFragmentLengthExtension
astore 4
start local 4 107: aload 4
ifnull 114
108: aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
iconst_m1
if_icmpeq 110
109: aload 4
invokevirtual sun.security.ssl.MaxFragmentLengthExtension.getMaxFragLen:()I
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
if_icmpeq 116
110: StackMap locals: sun.security.ssl.MaxFragmentLengthExtension
StackMap stack:
aload 0
bipush 47
111: ldc "Failed to negotiate the max_fragment_length"
112: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
113: goto 116
StackMap locals:
StackMap stack:
114: aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifne 116
115: aload 0
iconst_m1
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
116: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
117: getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
118: invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.ExtendedMasterSecretExtension
119: astore 5
start local 5 120: aload 5
ifnull 132
121: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 123
122: aload 2
invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
ifeq 123
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
ifne 126
123: StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack:
aload 0
bipush 110
124: ldc "Server sent the extended_master_secret extension improperly"
125: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
126: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 146
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 146
127: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 146
128: aload 0
bipush 110
129: ldc "Server sent an unexpected extended_master_secret extension on session resumption"
130: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
131: goto 146
132: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 136
getstatic sun.security.ssl.ClientHandshaker.allowLegacyMasterSecret:Z
ifne 136
133: aload 0
bipush 40
134: ldc "Extended Master Secret extension is required"
135: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
136: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 146
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 146
137: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 142
138: aload 0
bipush 40
139: ldc "Missing Extended Master Secret extension on session resumption"
140: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
141: goto 146
StackMap locals:
StackMap stack:
142: getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 146
getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
ifne 146
143: aload 0
bipush 40
144: ldc "Extended Master Secret extension is required"
145: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
146: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.ALPNExtension
147: astore 6
start local 6 148: aload 6
ifnull 179
149: aload 0
getfield sun.security.ssl.ClientHandshaker.alpnActive:Z
ifne 155
150: aload 0
bipush 110
151: new java.lang.StringBuilder
dup
ldc "Server sent "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
152: ldc " extension when not requested by client"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
153: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
154: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
155: StackMap locals: sun.security.ssl.ALPNExtension
StackMap stack:
aload 6
invokevirtual sun.security.ssl.ALPNExtension.getPeerAPs:()Ljava/util/List;
astore 7
start local 7 156: aload 7
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 173
157: aload 7
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
dup
astore 8
start local 8 158: invokevirtual java.lang.String.isEmpty:()Z
ifne 173
159: iconst_0
istore 9
start local 9 160: goto 164
161: StackMap locals: java.util.List java.lang.String int
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
iload 9
aaload
aload 8
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 163
162: goto 165
163: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
164: iload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
arraylength
if_icmplt 161
165: StackMap locals:
StackMap stack:
iload 9
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
arraylength
if_icmpne 171
166: aload 0
bipush 40
167: new java.lang.StringBuilder
dup
ldc "Server has selected an application protocol name which was not offered by the client: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
168: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
169: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
170: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
171: StackMap locals:
StackMap stack:
aload 0
aload 8
putfield sun.security.ssl.ClientHandshaker.applicationProtocol:Ljava/lang/String;
end local 9 172: goto 180
end local 8 173: StackMap locals:
StackMap stack:
aload 0
bipush 40
174: new java.lang.StringBuilder
dup
ldc "Incorrect data in ServerHello "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
175: ldc " message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
176: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
177: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 7 178: goto 180
179: StackMap locals:
StackMap stack:
aload 0
ldc ""
putfield sun.security.ssl.ClientHandshaker.applicationProtocol:Ljava/lang/String;
180: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 185
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 185
181: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
182: aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifeq 184
183: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
iconst_1
invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
184: StackMap locals:
StackMap stack:
return
185: 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 8
goto 211
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension top java.util.Iterator
StackMap stack:
186: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.HelloExtension
astore 7
start local 7 187: aload 7
getfield sun.security.ssl.HelloExtension.type:Lsun/security/ssl/ExtensionType;
astore 9
start local 9 188: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_SERVER_NAME:Lsun/security/ssl/ExtensionType;
if_acmpne 191
189: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
190: goto 211
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension sun.security.ssl.HelloExtension java.util.Iterator sun.security.ssl.ExtensionType
StackMap stack:
191: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST:Lsun/security/ssl/ExtensionType;
if_acmpeq 193
192: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST_V2:Lsun/security/ssl/ExtensionType;
if_acmpne 200
193: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
iconst_1
invokevirtual sun.security.ssl.SSLContextImpl.isStaplingEnabled:(Z)Z
ifeq 196
194: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.staplingActive:Z
195: goto 211
196: StackMap locals:
StackMap stack:
aload 0
bipush 10
new java.lang.StringBuilder
dup
ldc "Server set "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
197: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " extension when not requested by client"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
198: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
199: goto 211
StackMap locals:
StackMap stack:
200: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_SUPPORTED_GROUPS:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
201: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_EC_POINT_FORMATS:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
202: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_SERVER_NAME:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
203: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_ALPN:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
204: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_RENEGOTIATION_INFO:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
205: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
206: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_STATUS_REQUEST_V2:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
207: aload 9
getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
if_acmpeq 211
208: aload 0
bipush 110
209: new java.lang.StringBuilder
dup
ldc "Server sent an unsupported extension: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
210: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 9 end local 7 211: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 186
212: aload 0
213: 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;
214: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
215: 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
216: aload 5
ifnull 217
iconst_1
goto 218
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension
StackMap stack: sun.security.ssl.ClientHandshaker new 213 new 213 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int
217: iconst_0
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.MaxFragmentLengthExtension sun.security.ssl.ExtendedMasterSecretExtension sun.security.ssl.ALPNExtension
StackMap stack: sun.security.ssl.ClientHandshaker new 213 new 213 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection sun.security.ssl.SessionId java.lang.String int int
218: invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;IZ)V
219: putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
220: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
invokevirtual sun.security.ssl.SSLSessionImpl.setRequestedServerNames:(Ljava/util/List;)V
221: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
invokevirtual sun.security.ssl.SSLSessionImpl.setNegotiatedMaxFragSize:(I)V
222: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
223: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ClientHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
224: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 226
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 226
225: 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
226: StackMap locals:
StackMap stack:
return
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 227 0 this Lsun/security/ssl/ClientHandshaker;
0 227 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHello;
5 227 2 mesgVersion Lsun/security/ssl/ProtocolVersion;
16 227 3 serverHelloRI Lsun/security/ssl/RenegotiationInfoExtension;
30 43 4 verifyData [B
74 99 4 sessionSuite Lsun/security/ssl/CipherSuite;
79 99 5 sessionVersion Lsun/security/ssl/ProtocolVersion;
86 99 6 p Lsun/security/ssl/ClientKeyExchangeService;
88 95 7 localPrincipal Ljava/security/Principal;
107 227 4 maxFragLenExt Lsun/security/ssl/MaxFragmentLengthExtension;
120 227 5 extendedMasterSecretExt Lsun/security/ssl/ExtendedMasterSecretExtension;
148 227 6 serverHelloALPN Lsun/security/ssl/ALPNExtension;
156 178 7 protocols Ljava/util/List<Ljava/lang/String;>;
158 173 8 p Ljava/lang/String;
160 172 9 i I
187 211 7 ext Lsun/security/ssl/HelloExtension;
188 211 9 type Lsun/security/ssl/ExtensionType;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.ssl.ClientHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
aload 0
getfield sun.security.ssl.ClientHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.verify:(Ljava/security/PublicKey;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/RandomCookie;)Z
ifne 6
3: aload 0
bipush 40
4: ldc "server key exchange invalid"
5: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
7: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
8: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
9: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
10: ifne 12
11: new javax.net.ssl.SSLHandshakeException
dup
ldc "RSA ServerKeyExchange does not comply to algorithm constraints"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/ClientHandshaker;
0 13 1 mesg Lsun/security/ssl/HandshakeMessage$RSA_ServerKeyExchange;
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.DHCrypt
dup
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getModulus:()Ljava/math/BigInteger;
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getBase:()Ljava/math/BigInteger;
3: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.DHCrypt.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/SecureRandom;)V
4: putfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
5: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.getServerPublicKey:()Ljava/math/BigInteger;
putfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
6: aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 0
getfield sun.security.ssl.ClientHandshaker.serverDH:Ljava/math/BigInteger;
invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Ljava/security/AlgorithmConstraints;Ljava/math/BigInteger;)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ClientHandshaker;
0 8 1 mesg Lsun/security/ssl/HandshakeMessage$DH_ServerKeyExchange;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverKeyExchange(sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange);
descriptor: (Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.getPublicKey:()Ljava/security/interfaces/ECPublicKey;
astore 2
start local 2 3: aload 0
new sun.security.ssl.ECDHCrypt
dup
aload 2
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/spec/ECParameterSpec;Ljava/security/SecureRandom;)V
putfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
4: aload 0
aload 2
putfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
5: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
6: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
7: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
8: ifne 10
9: new javax.net.ssl.SSLHandshakeException
dup
ldc "ECDH ServerKeyExchange does not comply to algorithm constraints"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: java.security.interfaces.ECPublicKey
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/ClientHandshaker;
0 11 1 mesg Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
3 11 2 key Ljava/security/interfaces/ECPublicKey;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverHelloDone(sun.security.ssl.HandshakeMessage$ServerHelloDone);
descriptor: (Lsun/security/ssl/HandshakeMessage$ServerHelloDone;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=10, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aload 0
getfield sun.security.ssl.ClientHandshaker.certRequest:Lsun/security/ssl/HandshakeMessage$CertificateRequest;
ifnull 59
4: 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 5: new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 6: iconst_0
istore 5
start local 5 7: goto 21
8: 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: 9
2: 11
64: 13
default: 17
}
9: StackMap locals:
StackMap stack:
ldc "RSA"
astore 6
start local 6 10: goto 18
end local 6 11: StackMap locals:
StackMap stack:
ldc "DSA"
astore 6
start local 6 12: goto 18
end local 6 13: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
ifeq 14
ldc "EC"
goto 15
StackMap locals:
StackMap stack:
14: aconst_null
StackMap locals:
StackMap stack: java.lang.String
15: astore 6
start local 6 16: goto 18
end local 6 17: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 18: StackMap locals: java.lang.String
StackMap stack:
aload 6
ifnull 20
aload 4
aload 6
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ifne 20
19: aload 4
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: 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 8
end local 5 22: aconst_null
astore 5
start local 5 23: aload 4
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 24: iload 6
ifeq 35
25: aload 4
iload 6
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
26: astore 7
start local 7 27: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 32
28: aload 3
aload 7
29: 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;
30: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 5
31: goto 35
32: 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
33: 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;
34: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
astore 5
end local 7 35: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 36: aload 5
ifnull 45
37: aload 3
aload 5
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
astore 8
start local 8 38: aload 8
ifnull 45
aload 8
arraylength
ifeq 45
39: aload 8
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 9
start local 9 40: aload 9
ifnull 45
41: new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 8
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
astore 7
42: aload 3
aload 5
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
astore 2
43: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
44: 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 45: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg
StackMap stack:
aload 7
ifnonnull 54
46: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
ifeq 49
47: 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
48: goto 50
49: StackMap locals:
StackMap stack:
aload 0
bipush 41
invokevirtual sun.security.ssl.ClientHandshaker.warningSE:(B)V
50: StackMap locals:
StackMap stack:
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
51: getstatic java.lang.System.out:Ljava/io/PrintStream;
52: ldc "Warning: no suitable certificate found - continuing without client authentication"
53: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
54: StackMap locals:
StackMap stack:
aload 7
ifnull 59
55: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 57
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 57
56: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
57: 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
58: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
end local 7 end local 6 end local 5 end local 4 end local 3 59: 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 - 13
2: 60
3: 60
4: 81
5: 81
6: 83
7: 83
8: 83
9: 95
10: 95
11: 89
12: 89
13: 89
default: 107
}
60: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 64
61: new javax.net.ssl.SSLProtocolException
dup
62: ldc "Server did not send certificate message"
63: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.RSAPublicKey
ifne 68
65: new javax.net.ssl.SSLProtocolException
dup
66: ldc "Server certificate does not include an RSA key"
67: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
68: 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 71
69: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 70: goto 77
end local 4 71: 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 74
72: aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
astore 4
start local 4 73: goto 77
end local 4 74: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
ifnonnull 76
75: 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
76: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ephemeralServerKey:Ljava/security/PublicKey;
astore 4
start local 4 77: 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;
78: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 4
79: 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 80: goto 149
end local 4 end local 3 81: 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 82: goto 149
end local 3 83: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.dh:Lsun/security/ssl/DHCrypt;
ifnonnull 87
84: new javax.net.ssl.SSLProtocolException
dup
85: ldc "Server did not send a DH Server Key Exchange message"
86: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
87: 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 88: goto 149
end local 3 89: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
ifnonnull 93
90: new javax.net.ssl.SSLProtocolException
dup
91: ldc "Server did not send a ECDH Server Key Exchange message"
92: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
93: 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 94: goto 149
end local 3 95: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
ifnonnull 99
96: new javax.net.ssl.SSLProtocolException
dup
97: ldc "Server did not send certificate message"
98: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
99: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.ECPublicKey
ifne 103
100: new javax.net.ssl.SSLProtocolException
dup
101: ldc "Server certificate does not include an EC key"
102: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
103: 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 104: 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;
105: 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 106: goto 149
end local 5 end local 3 107: StackMap locals:
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;
invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
108: astore 6
start local 6 109: aload 6
ifnonnull 113
110: new java.lang.RuntimeException
dup
111: 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;
112: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
113: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService
StackMap stack:
aconst_null
astore 7
start local 7 114: aload 0
getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 119
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String top java.util.Iterator
StackMap stack:
115: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIServerName
astore 8
start local 8 116: aload 8
instanceof javax.net.ssl.SNIHostName
ifeq 119
117: aload 8
checkcast javax.net.ssl.SNIHostName
invokevirtual javax.net.ssl.SNIHostName.getAsciiName:()Ljava/lang/String;
astore 7
118: goto 120
end local 8 119: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 115
120: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String
StackMap stack:
aconst_null
astore 8
start local 8 121: aload 7
ifnull 136
122: aload 6
123: aload 7
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
124: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
125: invokeinterface sun.security.ssl.ClientKeyExchangeService.createClientExchange:(Ljava/lang/String;Ljava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)Lsun/security/ssl/ClientKeyExchange;
astore 8
126: goto 136
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey top top top sun.security.ssl.ClientKeyExchangeService java.lang.String sun.security.ssl.ClientKeyExchange
StackMap stack: java.io.IOException
127: astore 9
start local 9 128: aload 0
getfield sun.security.ssl.ClientHandshaker.serverNamesAccepted:Z
ifeq 130
129: aload 9
athrow
130: StackMap locals: java.io.IOException
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 136
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 136
131: getstatic java.lang.System.out:Ljava/io/PrintStream;
132: new java.lang.StringBuilder
dup
ldc "Warning, cannot use Server Name Indication: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
133: aload 9
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
134: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
135: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 9 136: StackMap locals:
StackMap stack:
aload 8
ifnonnull 146
137: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getHostSE:()Ljava/lang/String;
astore 9
start local 9 138: aload 9
ifnonnull 142
139: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Hostname is required to use "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
140: aload 0
getfield sun.security.ssl.ClientHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " key exchange"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
141: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
142: StackMap locals: java.lang.String
StackMap stack:
aload 6
143: aload 9
aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getAccSE:()Ljava/security/AccessControlContext;
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
144: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
145: invokeinterface sun.security.ssl.ClientKeyExchangeService.createClientExchange:(Ljava/lang/String;Ljava/security/AccessControlContext;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;)Lsun/security/ssl/ClientKeyExchange;
astore 8
end local 9 146: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 8
invokevirtual sun.security.ssl.ClientKeyExchange.getPeerPrincipal:()Ljava/security/Principal;
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
147: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 8
invokevirtual sun.security.ssl.ClientKeyExchange.getLocalPrincipal:()Ljava/security/Principal;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
148: aload 8
astore 3
end local 8 end local 7 end local 6 start local 3 149: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 151
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 151
150: aload 3
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage.print:(Ljava/io/PrintStream;)V
151: 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
152: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 3
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
153: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
154: 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 - 13
2: 155
3: 155
4: 163
5: 163
6: 157
7: 157
8: 157
9: 161
10: 161
11: 159
12: 159
13: 159
default: 163
}
155: 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 156: goto 170
end local 4 157: 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 158: goto 170
end local 4 159: 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 160: goto 170
end local 4 161: 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 162: goto 170
end local 4 163: StackMap locals:
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;
invokestatic sun.security.ssl.ClientKeyExchangeService.find:(Ljava/lang/String;)Lsun/security/ssl/ClientKeyExchangeService;
ifnull 167
164: aload 3
checkcast sun.security.ssl.ClientKeyExchange
invokevirtual sun.security.ssl.ClientKeyExchange.clientKeyExchange:()Ljavax/crypto/SecretKey;
165: astore 4
start local 4 166: goto 170
end local 4 167: 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
168: 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;
169: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 4 170: 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
171: aload 2
ifnull 205
172: aconst_null
astore 6
start local 6 173: aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 189
174: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getPeerSupportedSignAlgs:()Ljava/util/Collection;
175: aload 2
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
aload 2
176: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
177: astore 6
178: aload 6
ifnonnull 182
179: new javax.net.ssl.SSLHandshakeException
dup
180: ldc "No supported signature algorithm"
181: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
182: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey top sun.security.ssl.SignatureAndHashAlgorithm
StackMap stack:
aload 6
183: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmName:(Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
184: astore 7
start local 7 185: aload 7
ifnull 186
aload 7
invokevirtual java.lang.String.length:()I
ifne 189
186: StackMap locals: java.lang.String
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
187: ldc "No supported hash algorithm"
188: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 7 189: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateVerify
dup
aload 0
getfield sun.security.ssl.ClientHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
190: aload 2
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
191: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
192: aload 6
193: invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PrivateKey;Ljavax/crypto/SecretKey;Ljava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;)V
astore 5
end local 6 start local 5 194: goto 200
end local 5 StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.HandshakeMessage$ServerHelloDone java.security.PrivateKey sun.security.ssl.HandshakeMessage javax.crypto.SecretKey
StackMap stack: java.security.GeneralSecurityException
195: astore 6
start local 6 196: aload 0
bipush 40
197: ldc "Error signing certificate verify"
aload 6
198: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
199: aconst_null
astore 5
end local 6 start local 5 200: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateVerify
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 202
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 202
201: aload 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.print:(Ljava/io/PrintStream;)V
202: 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
203: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 5
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
204: aload 0
getfield sun.security.ssl.ClientHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
end local 5 205: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
206: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.expectingFinishFlightSE:()V
207: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 208 0 this Lsun/security/ssl/ClientHandshaker;
0 208 1 mesg Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
3 208 2 signingKey Ljava/security/PrivateKey;
5 59 3 km Ljavax/net/ssl/X509ExtendedKeyManager;
6 59 4 keytypesTmp Ljava/util/ArrayList<Ljava/lang/String;>;
7 22 5 i I
10 11 6 typeName Ljava/lang/String;
12 13 6 typeName Ljava/lang/String;
16 17 6 typeName Ljava/lang/String;
18 20 6 typeName Ljava/lang/String;
23 59 5 alias Ljava/lang/String;
24 59 6 keytypesTmpSize I
27 35 7 keytypes [Ljava/lang/String;
36 59 7 m1 Lsun/security/ssl/HandshakeMessage$CertificateMsg;
38 45 8 certs [Ljava/security/cert/X509Certificate;
40 45 9 publicKey Ljava/security/PublicKey;
80 81 3 m2 Lsun/security/ssl/HandshakeMessage;
82 83 3 m2 Lsun/security/ssl/HandshakeMessage;
88 89 3 m2 Lsun/security/ssl/HandshakeMessage;
94 95 3 m2 Lsun/security/ssl/HandshakeMessage;
106 107 3 m2 Lsun/security/ssl/HandshakeMessage;
149 208 3 m2 Lsun/security/ssl/HandshakeMessage;
70 71 4 key Ljava/security/PublicKey;
73 74 4 key Ljava/security/PublicKey;
77 81 4 key Ljava/security/PublicKey;
104 107 5 params Ljava/security/spec/ECParameterSpec;
109 149 6 p Lsun/security/ssl/ClientKeyExchangeService;
114 149 7 sniHostname Ljava/lang/String;
116 119 8 serverName Ljavax/net/ssl/SNIServerName;
121 149 8 exMsg Lsun/security/ssl/ClientKeyExchange;
128 136 9 e Ljava/io/IOException;
138 146 9 hostname Ljava/lang/String;
156 157 4 preMasterSecret Ljavax/crypto/SecretKey;
158 159 4 preMasterSecret Ljavax/crypto/SecretKey;
160 161 4 preMasterSecret Ljavax/crypto/SecretKey;
162 163 4 preMasterSecret Ljavax/crypto/SecretKey;
166 167 4 preMasterSecret Ljavax/crypto/SecretKey;
170 208 4 preMasterSecret Ljavax/crypto/SecretKey;
194 195 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
200 205 5 m3 Lsun/security/ssl/HandshakeMessage$CertificateVerify;
173 194 6 preferableSignatureAlgorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
185 189 7 hashAlg Ljava/lang/String;
196 200 6 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
122 126 127 Class java.io.IOException
172 194 195 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void serverFinished(sun.security.ssl.HandshakeMessage$Finished);
descriptor: (Lsun/security/ssl/HandshakeMessage$Finished;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$Finished.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
iconst_2
3: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
4: invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
istore 2
start local 2 5: iload 2
ifne 9
6: aload 0
bipush 47
7: ldc "server 'finished' message doesn't verify"
8: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
9: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 11
10: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ClientHandshaker.serverVerifyData:[B
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isInitialHandshake:Z
ifne 13
12: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
iconst_0
invokevirtual sun.security.ssl.SSLSessionImpl.setAsSessionResumption:(Z)V
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifeq 16
14: aload 0
iconst_1
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish:(Z)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.handshakeFinished:Z
17: 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
18: aload 0
getfield sun.security.ssl.ClientHandshaker.resumingSession:Z
ifne 33
19: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 27
20: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
21: invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
22: checkcast sun.security.ssl.SSLSessionContextImpl
23: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
24: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 33
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 33
25: 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
26: goto 33
StackMap locals:
StackMap stack:
27: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 33
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 33
28: getstatic java.lang.System.out:Ljava/io/PrintStream;
29: new java.lang.StringBuilder
dup
ldc "%% Didn't cache non-resumable client session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
31: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/security/ssl/ClientHandshaker;
0 34 1 mesg Lsun/security/ssl/HandshakeMessage$Finished;
5 34 2 verified Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void sendChangeCipherAndFinish(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ClientHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.reload:()V
1: 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;
2: iconst_1
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
aload 0
getfield sun.security.ssl.ClientHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
3: invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;Lsun/security/ssl/CipherSuite;)V
astore 2
start local 2 4: aload 0
aload 2
iload 1
invokevirtual sun.security.ssl.ClientHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
5: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 7
6: aload 0
aload 2
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
7: StackMap locals: sun.security.ssl.HandshakeMessage$Finished
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ClientHandshaker;
0 8 1 finishedTag Z
4 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=7, 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 70
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
invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
istore 5
start local 5 39: iload 5
ifeq 42
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 42
40: getstatic sun.security.ssl.ClientHandshaker.allowLegacyResumption:Z
ifne 42
41: aload 0
aconst_null
putfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
42: 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
43: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 6
start local 6 44: aload 6
ifnull 45
aload 6
invokevirtual java.lang.String.length:()I
ifne 50
45: StackMap locals: java.lang.String
StackMap stack:
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 6 end local 5 50: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 59
51: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 56
52: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifne 53
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 56
53: 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;
54: 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;
55: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
56: 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
57: aload 0
aload 4
putfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
58: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
59: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 70
60: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 64
61: new javax.net.ssl.SSLHandshakeException
dup
62: ldc "Can't reuse existing SSL client session"
63: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 65: aload 5
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
66: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 69
67: 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 69
68: aload 5
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
69: StackMap locals: java.util.Collection
StackMap stack:
new sun.security.ssl.CipherSuiteList
dup
aload 5
invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
astore 2
end local 5 end local 4 end local 3 70: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 72
aload 0
getfield sun.security.ssl.ClientHandshaker.enableNewSession:Z
ifne 72
71: new javax.net.ssl.SSLHandshakeException
dup
ldc "No existing session to resume"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
72: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifeq 81
aload 2
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifeq 81
73: new java.util.ArrayList
dup
aload 2
invokevirtual sun.security.ssl.CipherSuiteList.size:()I
iconst_1
isub
invokespecial java.util.ArrayList.<init>:(I)V
74: astore 3
start local 3 75: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 79
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList java.util.Collection top java.util.Iterator
StackMap stack:
76: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 77: aload 4
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
if_acmpeq 79
78: aload 3
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 4 79: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 76
80: new sun.security.ssl.CipherSuiteList
dup
aload 3
invokespecial sun.security.ssl.CipherSuiteList.<init>:(Ljava/util/Collection;)V
astore 2
end local 3 81: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList
StackMap stack:
iconst_0
istore 3
start local 3 82: aload 2
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 87
StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int top java.util.Iterator
StackMap stack:
83: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 4
start local 4 84: aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 87
85: iconst_1
istore 3
86: goto 88
end local 4 87: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 83
88: StackMap locals: sun.security.ssl.ClientHandshaker sun.security.ssl.SessionId sun.security.ssl.CipherSuiteList int
StackMap stack:
iload 3
ifne 90
89: new javax.net.ssl.SSLHandshakeException
dup
ldc "No negotiable cipher suite"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
90: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ClientHello
dup
91: 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;
92: aload 1
aload 2
aload 0
getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
93: invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Ljava/security/SecureRandom;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuiteList;Z)V
astore 4
start local 4 94: aload 0
getfield sun.security.ssl.ClientHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
95: aload 2
getstatic sun.security.ssl.ClientHandshaker.enableFFDHE:Z
96: invokestatic sun.security.ssl.SupportedGroupsExtension.createExtension:(Ljava/security/AlgorithmConstraints;Lsun/security/ssl/CipherSuiteList;Z)Lsun/security/ssl/SupportedGroupsExtension;
97: astore 5
start local 5 98: aload 5
ifnull 104
99: 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
100: aload 2
getstatic sun.security.ssl.NamedGroupType.NAMED_GROUP_ECDHE:Lsun/security/ssl/NamedGroupType;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/NamedGroupType;)Z
ifeq 104
101: aload 4
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
102: getstatic sun.security.ssl.EllipticPointFormatsExtension.DEFAULT:Lsun/security/ssl/HelloExtension;
103: invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
104: StackMap locals: sun.security.ssl.HandshakeMessage$ClientHello sun.security.ssl.SupportedGroupsExtension
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 112
105: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
106: astore 6
start local 6 107: aload 6
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 111
108: new javax.net.ssl.SSLHandshakeException
dup
109: ldc "No supported signature algorithm"
110: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
111: StackMap locals: java.util.Collection
StackMap stack:
aload 4
aload 6
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addSignatureAlgorithmsExtension:(Ljava/util/Collection;)V
end local 6 112: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.useExtendedMasterSecret:Z
ifeq 116
aload 0
getfield sun.security.ssl.ClientHandshaker.maxProtocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS10PlusSpec:()Z
ifeq 116
113: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 114
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 116
114: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addExtendedMasterSecretExtension:()V
115: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.requestedToUseEMS:Z
116: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.enableSNIExtension:Z
ifeq 123
117: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 120
118: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getRequestedServerNames:()Ljava/util/List;
putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
119: goto 121
120: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.serverNames:Ljava/util/List;
putfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
121: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 123
122: aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedServerNames:Ljava/util/List;
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addSNIExtension:(Ljava/util/List;)V
123: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ClientHandshaker.enableMFLExtension:Z
ifeq 144
124: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnull 127
125: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getNegotiatedMaxFragSize:()I
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
126: goto 135
StackMap locals:
StackMap stack:
127: aload 0
getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
ifeq 134
128: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.maximumPacketSize:I
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
129: aload 0
getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
ifeq 132
130: aload 0
dup
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
sipush 333
isub
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
131: goto 135
132: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
sipush 325
isub
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
133: goto 135
134: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
135: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
ifle 143
136: aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
invokestatic sun.security.ssl.MaxFragmentLengthExtension.needFragLenNego:(I)Z
ifeq 143
137: aload 0
138: aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
139: invokestatic sun.security.ssl.MaxFragmentLengthExtension.getValidMaxFragLen:(I)I
140: putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
141: aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addMFLExtension:(I)V
142: goto 144
143: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield sun.security.ssl.ClientHandshaker.requestedMFLength:I
144: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
iconst_1
invokevirtual sun.security.ssl.SSLContextImpl.isStaplingEnabled:(Z)Z
ifeq 147
145: aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addCertStatusReqListV2Extension:()V
146: aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addCertStatusRequestExtension:()V
147: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
ifnull 150
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
arraylength
ifle 150
148: aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.localApl:[Ljava/lang/String;
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addALPNExtension:([Ljava/lang/String;)V
149: aload 0
iconst_1
putfield sun.security.ssl.ClientHandshaker.alpnActive:Z
150: 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;
151: aload 0
getfield sun.security.ssl.ClientHandshaker.secureRenegotiation:Z
ifne 153
152: 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 154
153: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield sun.security.ssl.ClientHandshaker.clientVerifyData:[B
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.addRenegotiationInfoExtension:([B)V
154: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.isDTLS:Z
ifeq 156
155: aload 0
aload 4
putfield sun.security.ssl.ClientHandshaker.initialClientHelloMsg:Lsun/security/ssl/HandshakeMessage$ClientHello;
156: StackMap locals:
StackMap stack:
aload 4
areturn
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 157 0 this Lsun/security/ssl/ClientHandshaker;
1 157 1 sessionId Lsun/security/ssl/SessionId;
2 157 2 cipherSuites Lsun/security/ssl/CipherSuiteList;
28 70 3 sessionSuite Lsun/security/ssl/CipherSuite;
29 70 4 sessionVersion Lsun/security/ssl/ProtocolVersion;
39 50 5 isTLS10Plus Z
44 50 6 identityAlg Ljava/lang/String;
65 70 5 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
75 81 3 cipherList Ljava/util/Collection<Lsun/security/ssl/CipherSuite;>;
77 79 4 suite Lsun/security/ssl/CipherSuite;
82 157 3 negotiable Z
84 87 4 suite Lsun/security/ssl/CipherSuite;
94 157 4 clientHelloMessage Lsun/security/ssl/HandshakeMessage$ClientHello;
98 157 5 sge Lsun/security/ssl/SupportedGroupsExtension;
107 112 6 localSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
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=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 2
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.getCertificateChain:()[Ljava/security/cert/X509Certificate;
astore 2
start local 2 3: aload 2
arraylength
ifne 5
4: aload 0
bipush 42
ldc "empty certificate chain"
invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
5: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
ifnull 13
6: aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 13
7: aload 0
invokevirtual sun.security.ssl.ClientHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 3
start local 3 8: aload 3
ifnull 9
aload 3
invokevirtual java.lang.String.length:()I
ifne 13
9: StackMap locals: java.lang.String
StackMap stack:
aload 2
iconst_0
aaload
aload 0
getfield sun.security.ssl.ClientHandshaker.reservedServerCerts:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokestatic sun.security.ssl.ClientHandshaker.isIdentityEquivalent:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
ifne 13
10: aload 0
bipush 42
11: ldc "server certificate change is restricted during renegotiation"
12: invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/String;)V
end local 3 13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
ifeq 16
14: aload 0
aload 2
putfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/ssl/ClientHandshaker;
0 18 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
3 18 2 peerCerts [Ljava/security/cert/X509Certificate;
8 13 3 identityAlg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void certificateStatus(sun.security.ssl.HandshakeMessage$CertificateStatus);
descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateStatus;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, 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$CertificateStatus.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$CertificateStatus.getResponses:()Ljava/util/List;
invokevirtual sun.security.ssl.SSLSessionImpl.setStatusResponses:(Ljava/util/List;)V
3: aload 0
aload 0
getfield sun.security.ssl.ClientHandshaker.deferredCerts:[Ljava/security/cert/X509Certificate;
invokevirtual sun.security.ssl.ClientHandshaker.checkServerCerts:([Ljava/security/cert/X509Certificate;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/ClientHandshaker;
0 5 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateStatus;
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=8, 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:
aconst_null
astore 2
start local 2 3: aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
astore 2
4: goto 10
StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection
StackMap stack: java.security.cert.CertificateParsingException
5: pop
6: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 10
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 10
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
8: ldc "Attempt to obtain subjectAltNames extension failed!"
9: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 11: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
astore 3
12: goto 18
StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection java.util.Collection
StackMap stack: java.security.cert.CertificateParsingException
13: pop
14: getstatic sun.security.ssl.ClientHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 18
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 18
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
16: ldc "Attempt to obtain subjectAltNames extension failed!"
17: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 2
ifnull 33
aload 3
ifnull 33
19: aload 2
bipush 7
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
20: astore 4
start local 4 21: aload 3
bipush 7
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
22: astore 5
start local 5 23: aload 4
ifnull 26
aload 5
ifnull 26
24: aload 4
aload 5
invokestatic sun.security.ssl.ClientHandshaker.isEquivalent:(Ljava/util/Collection;Ljava/util/Collection;)Z
ifeq 26
25: iconst_1
ireturn
26: StackMap locals: java.util.Collection java.util.Collection
StackMap stack:
aload 2
iconst_2
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
27: astore 6
start local 6 28: aload 3
iconst_2
invokestatic sun.security.ssl.ClientHandshaker.getSubjectAltNames:(Ljava/util/Collection;I)Ljava/util/Collection;
29: astore 7
start local 7 30: aload 6
ifnull 33
aload 7
ifnull 33
31: aload 6
aload 7
invokestatic sun.security.ssl.ClientHandshaker.isEquivalent:(Ljava/util/Collection;Ljava/util/Collection;)Z
ifeq 33
32: iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 33: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 4
start local 4 34: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 5
start local 5 35: aload 0
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 6
start local 6 36: aload 1
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 7
start local 7 37: aload 4
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 42
38: aload 5
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 42
39: aload 4
aload 5
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 42
40: aload 6
aload 7
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 42
41: iconst_1
ireturn
42: StackMap locals: java.security.cert.X509Certificate java.security.cert.X509Certificate java.util.Collection java.util.Collection 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 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 43 0 thisCert Ljava/security/cert/X509Certificate;
0 43 1 prevCert Ljava/security/cert/X509Certificate;
3 43 2 thisSubjectAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
11 43 3 prevSubjectAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
21 33 4 thisSubAltIPAddrs Ljava/util/Collection<Ljava/lang/String;>;
23 33 5 prevSubAltIPAddrs Ljava/util/Collection<Ljava/lang/String;>;
28 33 6 thisSubAltDnsNames Ljava/util/Collection<Ljava/lang/String;>;
30 33 7 prevSubAltDnsNames Ljava/util/Collection<Ljava/lang/String;>;
34 43 4 thisSubject Ljavax/security/auth/x500/X500Principal;
35 43 5 prevSubject Ljavax/security/auth/x500/X500Principal;
36 43 6 thisIssuer Ljavax/security/auth/x500/X500Principal;
37 43 7 prevIssuer Ljavax/security/auth/x500/X500Principal;
Exception table:
from to target type
3 4 5 Class java.security.cert.CertificateParsingException
11 12 13 Class java.security.cert.CertificateParsingException
MethodParameters:
Name Flags
thisCert
prevCert
private static java.util.Collection<java.lang.String> getSubjectAltNames(java.util.Collection<java.util.List<?>>, int);
descriptor: (Ljava/util/Collection;I)Ljava/util/Collection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: java.util.Collection int java.util.HashSet top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 3: 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 4: iload 5
iload 1
if_icmpne 11
5: aload 3
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 6: aload 6
ifnull 11
aload 6
invokevirtual java.lang.String.isEmpty:()Z
ifne 11
7: aload 2
ifnonnull 10
8: new java.util.HashSet
dup
aload 0
invokeinterface java.util.Collection.size:()I
invokespecial java.util.HashSet.<init>:(I)V
9: astore 2
10: StackMap locals: java.util.Collection int java.util.HashSet java.util.List java.util.Iterator int java.lang.String
StackMap stack:
aload 2
aload 6
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 3 11: StackMap locals: java.util.Collection int java.util.HashSet top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
12: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 subjectAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
0 13 1 type I
1 13 2 subAltDnsNames Ljava/util/HashSet<Ljava/lang/String;>;
3 11 3 subjectAltName Ljava/util/List<*>;
4 11 5 subjectAltNameType I
6 11 6 subAltDnsName Ljava/lang/String;
Signature: (Ljava/util/Collection<Ljava/util/List<*>;>;I)Ljava/util/Collection<Ljava/lang/String;>;
MethodParameters:
Name Flags
subjectAltNames
type
private static boolean isEquivalent(java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>);
descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 2: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: java.util.Collection java.util.Collection java.lang.String java.util.Iterator top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 2
aload 4
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 6
5: iconst_1
ireturn
end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 7: StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 thisSubAltNames Ljava/util/Collection<Ljava/lang/String;>;
0 9 1 prevSubAltNames Ljava/util/Collection<Ljava/lang/String;>;
2 7 2 thisSubAltName Ljava/lang/String;
4 6 4 prevSubAltName Ljava/lang/String;
Signature: (Ljava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;)Z
MethodParameters:
Name Flags
thisSubAltNames
prevSubAltNames
private void checkServerCerts(java.security.cert.X509Certificate[]);
descriptor: ([Ljava/security/cert/X509Certificate;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ClientHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
astore 2
start local 2 1: 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 4
aload 0
getfield sun.security.ssl.ClientHandshaker.serverKeyExchangeReceived:Z
ifne 4
2: getstatic sun.security.ssl.CipherSuite$KeyExchange.K_RSA:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.name:Ljava/lang/String;
astore 3
start local 3 3: goto 5
end local 3 4: 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 3
start local 3 5: StackMap locals: java.lang.String
StackMap stack:
aload 2
instanceof javax.net.ssl.X509ExtendedTrustManager
ifeq 19
6: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 13
7: aload 2
checkcast javax.net.ssl.X509ExtendedTrustManager
8: aload 1
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
9: aload 3
10: aload 0
getfield sun.security.ssl.ClientHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
11: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
12: goto 22
13: StackMap locals:
StackMap stack:
aload 2
checkcast javax.net.ssl.X509ExtendedTrustManager
14: aload 1
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
15: aload 3
16: aload 0
getfield sun.security.ssl.ClientHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
17: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
18: goto 22
19: StackMap locals:
StackMap stack:
new java.security.cert.CertificateException
dup
20: ldc "Improper X509TrustManager implementation"
21: invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ClientHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 1
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
23: goto 26
StackMap locals:
StackMap stack: java.security.cert.CertificateException
24: astore 4
start local 4 25: aload 0
aload 0
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.getCertificateAlert:(Ljava/security/cert/CertificateException;)B
aload 4
invokevirtual sun.security.ssl.ClientHandshaker.fatalSE:(BLjava/lang/Throwable;)V
end local 4 26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/ssl/ClientHandshaker;
0 27 1 certs [Ljava/security/cert/X509Certificate;
1 27 2 tm Ljavax/net/ssl/X509TrustManager;
3 4 3 keyExchangeString Ljava/lang/String;
5 27 3 keyExchangeString Ljava/lang/String;
25 26 4 ce Ljava/security/cert/CertificateException;
Exception table:
from to target type
5 23 24 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
certs
private byte getCertificateAlert(java.security.cert.CertificateException);
descriptor: (Ljava/security/cert/CertificateException;)B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: bipush 46
istore 2
start local 2 1: aload 1
invokevirtual java.security.cert.CertificateException.getCause:()Ljava/lang/Throwable;
astore 3
start local 3 2: aload 3
instanceof java.security.cert.CertPathValidatorException
ifeq 17
3: aload 3
checkcast java.security.cert.CertPathValidatorException
4: astore 4
start local 4 5: aload 4
invokevirtual java.security.cert.CertPathValidatorException.getReason:()Ljava/security/cert/CertPathValidatorException$Reason;
astore 5
start local 5 6: aload 5
getstatic java.security.cert.CertPathValidatorException$BasicReason.REVOKED:Ljava/security/cert/CertPathValidatorException$BasicReason;
if_acmpne 12
7: aload 0
getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
ifeq 9
8: bipush 113
goto 10
9: StackMap locals: sun.security.ssl.ClientHandshaker java.security.cert.CertificateException int java.lang.Throwable java.security.cert.CertPathValidatorException java.security.cert.CertPathValidatorException$Reason
StackMap stack:
bipush 44
10: StackMap locals:
StackMap stack: int
istore 2
11: goto 17
StackMap locals:
StackMap stack:
12: aload 5
getstatic java.security.cert.CertPathValidatorException$BasicReason.UNDETERMINED_REVOCATION_STATUS:Ljava/security/cert/CertPathValidatorException$BasicReason;
if_acmpne 17
13: aload 0
getfield sun.security.ssl.ClientHandshaker.staplingActive:Z
ifeq 15
14: bipush 113
goto 16
15: StackMap locals:
StackMap stack:
bipush 46
16: StackMap locals:
StackMap stack: int
istore 2
end local 5 end local 4 17: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/ssl/ClientHandshaker;
0 18 1 cexc Ljava/security/cert/CertificateException;
1 18 2 alertDesc B
2 18 3 baseCause Ljava/lang/Throwable;
5 17 4 cpve Ljava/security/cert/CertPathValidatorException;
6 17 5 reason Ljava/security/cert/CertPathValidatorException$Reason;
MethodParameters:
Name Flags
cexc
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"
InnerClasses:
public final BasicReason = java.security.cert.CertPathValidatorException$BasicReason of java.security.cert.CertPathValidatorException
public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
final PRF = sun.security.ssl.CipherSuite$PRF of sun.security.ssl.CipherSuite
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 CertificateStatus = sun.security.ssl.HandshakeMessage$CertificateStatus 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 HelloVerifyRequest = sun.security.ssl.HandshakeMessage$HelloVerifyRequest 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