final class sun.security.ssl.ServerHandshaker extends sun.security.ssl.Handshaker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ServerHandshaker
super_class: sun.security.ssl.Handshaker
{
private byte doClientAuth;
descriptor: B
flags: (0x0002) ACC_PRIVATE
private java.security.cert.X509Certificate[] certs;
descriptor: [Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private java.security.PrivateKey privateKey;
descriptor: Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.kerberos.KerberosKey[] kerberosKeys;
descriptor: [Ljavax/security/auth/kerberos/KerberosKey;
flags: (0x0002) ACC_PRIVATE
private boolean needClientVerify;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.security.PrivateKey tempPrivateKey;
descriptor: Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
private java.security.PublicKey tempPublicKey;
descriptor: Ljava/security/PublicKey;
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.ProtocolVersion clientRequestedVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0002) ACC_PRIVATE
private sun.security.ssl.SupportedEllipticCurvesExtension requestedCurves;
descriptor: Lsun/security/ssl/SupportedEllipticCurvesExtension;
flags: (0x0002) ACC_PRIVATE
private static final sun.security.util.AlgorithmConstraints legacyAlgorithmConstraints;
descriptor: Lsun/security/util/AlgorithmConstraints;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean useSmartEphemeralDHKeys;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean useLegacyEphemeralDHKeys;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int customizedDHKeySize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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=5, locals=1, args_size=0
0: new sun.security.util.LegacyAlgorithmConstraints
dup
1: ldc "jdk.tls.legacyAlgorithms"
2: new sun.security.ssl.SSLAlgorithmDecomposer
dup
invokespecial sun.security.ssl.SSLAlgorithmDecomposer.<init>:()V
3: invokespecial sun.security.util.LegacyAlgorithmConstraints.<init>:(Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)V
4: putstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Lsun/security/util/AlgorithmConstraints;
5: new sun.security.action.GetPropertyAction
dup
ldc "jdk.tls.ephemeralDHKeySize"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
6: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 0
start local 0 7: aload 0
ifnull 8
aload 0
invokevirtual java.lang.String.length:()I
ifne 12
8: StackMap locals: java.lang.String
StackMap stack:
iconst_0
putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
9: iconst_0
putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
10: iconst_m1
putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
11: goto 38
StackMap locals:
StackMap stack:
12: ldc "matched"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
13: iconst_0
putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
14: iconst_1
putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
15: iconst_m1
putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
16: goto 38
StackMap locals:
StackMap stack:
17: ldc "legacy"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 22
18: iconst_1
putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
19: iconst_0
putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
20: iconst_m1
putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
21: goto 38
22: StackMap locals:
StackMap stack:
iconst_0
putstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
23: iconst_0
putstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
24: aload 0
invokestatic sun.security.ssl.ServerHandshaker.parseUnsignedInt:(Ljava/lang/String;)I
putstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
25: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
sipush 1024
if_icmplt 27
getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
sipush 8192
if_icmpgt 27
26: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
bipush 63
iand
ifeq 38
27: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
28: new java.lang.StringBuilder
dup
ldc "Unsupported customized DH key size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ". "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: ldc "The key size must be multiple of 64, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: ldc "and can only range from 1024 to 8192 (inclusive)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
35: new java.lang.IllegalArgumentException
dup
36: ldc "Invalid system property jdk.tls.ephemeralDHKeySize"
37: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 38: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
7 38 0 property Ljava/lang/String;
Exception table:
from to target type
24 34 34 Class java.lang.NumberFormatException
void <init>(sun.security.ssl.SSLSocketImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, byte, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
descriptor: (Lsun/security/ssl/SSLSocketImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
flags: (0x0000)
Code:
stack=11, 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
1: iload 4
ifeq 2
iconst_1
goto 3
StackMap locals: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
StackMap stack: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList
2: iconst_0
StackMap locals: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
StackMap stack: uninitialized-this sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int
3: iconst_0
4: aload 5
iload 6
iload 7
5: aload 8
aload 9
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
6: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
7: aload 0
iload 4
putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
8: 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 9 0 this Lsun/security/ssl/ServerHandshaker;
0 9 1 socket Lsun/security/ssl/SSLSocketImpl;
0 9 2 context Lsun/security/ssl/SSLContextImpl;
0 9 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 9 4 clientAuth B
0 9 5 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 9 6 isInitialHandshake Z
0 9 7 secureRenegotiation Z
0 9 8 clientVerifyData [B
0 9 9 serverVerifyData [B
MethodParameters:
Name Flags
socket
context
enabledProtocols
clientAuth
activeProtocolVersion
isInitialHandshake
secureRenegotiation
clientVerifyData
serverVerifyData
void <init>(sun.security.ssl.SSLEngineImpl, sun.security.ssl.SSLContextImpl, sun.security.ssl.ProtocolList, byte, sun.security.ssl.ProtocolVersion, boolean, boolean, byte[], byte[]);
descriptor: (Lsun/security/ssl/SSLEngineImpl;Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/ProtocolList;BLsun/security/ssl/ProtocolVersion;ZZ[B[B)V
flags: (0x0000)
Code:
stack=11, 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
1: iload 4
ifeq 2
iconst_1
goto 3
StackMap locals: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
StackMap stack: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList
2: iconst_0
StackMap locals: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int sun.security.ssl.ProtocolVersion int int byte[] byte[]
StackMap stack: uninitialized-this sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl sun.security.ssl.ProtocolList int
3: iconst_0
4: aload 5
iload 6
iload 7
5: aload 8
aload 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[B)V
6: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
7: aload 0
iload 4
putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
8: 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 9 0 this Lsun/security/ssl/ServerHandshaker;
0 9 1 engine Lsun/security/ssl/SSLEngineImpl;
0 9 2 context Lsun/security/ssl/SSLContextImpl;
0 9 3 enabledProtocols Lsun/security/ssl/ProtocolList;
0 9 4 clientAuth B
0 9 5 activeProtocolVersion Lsun/security/ssl/ProtocolVersion;
0 9 6 isInitialHandshake Z
0 9 7 secureRenegotiation Z
0 9 8 clientVerifyData [B
0 9 9 serverVerifyData [B
MethodParameters:
Name Flags
engine
context
enabledProtocols
clientAuth
activeProtocolVersion
isInitialHandshake
secureRenegotiation
clientVerifyData
serverVerifyData
void setClientAuth(byte);
descriptor: (B)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield sun.security.ssl.ServerHandshaker.doClientAuth:B
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ServerHandshaker;
0 2 1 clientAuth B
MethodParameters:
Name Flags
clientAuth
void processMessage(byte, int);
descriptor: (BI)V
flags: (0x0000)
Code:
stack=8, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.ServerHandshaker.state:I
iload 1
if_icmplt 8
1: aload 0
getfield sun.security.ssl.ServerHandshaker.state:I
bipush 16
if_icmpeq 8
2: iload 1
bipush 15
if_icmpeq 8
3: new javax.net.ssl.SSLProtocolException
dup
4: new java.lang.StringBuilder
dup
ldc "Handshake message sequence violation, state = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.state:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
5: ldc ", type = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iload 1
lookupswitch { // 5
1: 9
11: 12
15: 50
16: 18
20: 52
default: 58
}
9: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ClientHello
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
iload 2
invokespecial sun.security.ssl.HandshakeMessage$ClientHello.<init>:(Lsun/security/ssl/HandshakeInStream;I)V
astore 3
start local 3 10: aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.clientHello:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
11: goto 61
end local 3 12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
ifne 16
13: aload 0
bipush 10
14: ldc "client sent unsolicited cert chain"
15: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
16: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:(Lsun/security/ssl/HandshakeInStream;)V
invokevirtual sun.security.ssl.ServerHandshaker.clientCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
17: goto 61
18: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 19
3: 19
4: 43
5: 43
6: 35
7: 35
8: 35
9: 39
10: 39
11: 39
12: 39
13: 39
14: 26
15: 26
default: 43
}
19: StackMap locals:
StackMap stack:
new sun.security.ssl.RSAClientKeyExchange
dup
20: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
21: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
22: iload 2
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
23: invokespecial sun.security.ssl.RSAClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;ILjava/security/PrivateKey;)V
astore 5
start local 5 24: aload 0
aload 5
invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 4
start local 4 25: goto 46
end local 5 end local 4 26: StackMap locals:
StackMap stack:
aload 0
27: new sun.security.ssl.KerberosClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
28: aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
29: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
30: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
31: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
32: invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/security/auth/kerberos/KerberosKey;)V
33: invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 4
start local 4 34: goto 46
end local 4 35: StackMap locals:
StackMap stack:
aload 0
36: new sun.security.ssl.DHClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.DHClientKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
37: invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 4
start local 4 38: goto 46
end local 4 39: StackMap locals:
StackMap stack:
aload 0
40: new sun.security.ssl.ECDHClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.ECDHClientKeyExchange.<init>:(Lsun/security/ssl/HandshakeInStream;)V
41: invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 4
start local 4 42: goto 46
end local 4 43: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
44: new java.lang.StringBuilder
dup
ldc "Unrecognized key exchange: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.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;
45: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
start local 4 46: StackMap locals: sun.security.ssl.ServerHandshaker int int top javax.crypto.SecretKey
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 48
47: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
48: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ServerHandshaker.calculateKeys:(Ljavax/crypto/SecretKey;Lsun/security/ssl/ProtocolVersion;)V
49: goto 61
end local 4 50: StackMap locals: sun.security.ssl.ServerHandshaker int int
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$CertificateVerify
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/HandshakeInStream;)V
invokevirtual sun.security.ssl.ServerHandshaker.clientCertificateVerify:(Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
51: goto 61
52: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.receivedChangeCipherSpec:()Z
ifne 56
53: aload 0
bipush 40
54: ldc "Received Finished message before ChangeCipherSpec"
55: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
56: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.HandshakeMessage$Finished
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;)V
invokevirtual sun.security.ssl.ServerHandshaker.clientFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
57: goto 61
58: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
59: new java.lang.StringBuilder
dup
ldc "Illegal server 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;
60: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.state:I
iload 1
if_icmpge 66
62: iload 1
bipush 15
if_icmpne 65
63: aload 0
iload 1
iconst_2
iadd
putfield sun.security.ssl.ServerHandshaker.state:I
64: goto 66
65: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.security.ssl.ServerHandshaker.state:I
66: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lsun/security/ssl/ServerHandshaker;
0 67 1 type B
0 67 2 message_len I
10 12 3 ch Lsun/security/ssl/HandshakeMessage$ClientHello;
25 26 4 preMasterSecret Ljavax/crypto/SecretKey;
34 35 4 preMasterSecret Ljavax/crypto/SecretKey;
38 39 4 preMasterSecret Ljavax/crypto/SecretKey;
42 43 4 preMasterSecret Ljavax/crypto/SecretKey;
46 50 4 preMasterSecret Ljavax/crypto/SecretKey;
24 26 5 pms Lsun/security/ssl/RSAClientKeyExchange;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
type
message_len
private void clientHello(sun.security.ssl.HandshakeMessage$ClientHello);
descriptor: (Lsun/security/ssl/HandshakeMessage$ClientHello;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=12, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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$ClientHello.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: aload 1
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
astore 3
start local 3 4: aload 3
getstatic sun.security.ssl.CipherSuite.C_SCSV:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifeq 17
5: iconst_1
istore 2
6: aload 0
getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
ifeq 9
7: aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
8: goto 17
9: StackMap locals: int sun.security.ssl.CipherSuiteList
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 14
10: aload 0
bipush 40
11: ldc "The SCSV is present in a secure renegotiation"
12: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
13: goto 17
14: StackMap locals:
StackMap stack:
aload 0
bipush 40
15: ldc "The SCSV is present in a insecure renegotiation"
16: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.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;
18: checkcast sun.security.ssl.RenegotiationInfoExtension
astore 4
start local 4 19: aload 4
ifnull 40
20: iconst_1
istore 2
21: aload 0
getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
ifeq 28
22: aload 4
invokevirtual sun.security.ssl.RenegotiationInfoExtension.isEmpty:()Z
ifne 26
23: aload 0
bipush 40
24: ldc "The renegotiation_info field is not empty"
25: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
26: StackMap locals: sun.security.ssl.RenegotiationInfoExtension
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
27: goto 44
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifne 32
29: aload 0
bipush 40
30: ldc "The renegotiation_info is present in a insecure renegotiation"
31: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
33: aload 4
invokevirtual sun.security.ssl.RenegotiationInfoExtension.getRenegotiatedConnection:()[B
34: invokestatic java.security.MessageDigest.isEqual:([B[B)Z
35: ifne 44
36: aload 0
bipush 40
37: ldc "Incorrect verify data in ClientHello renegotiation_info message"
38: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
39: goto 44
StackMap locals:
StackMap stack:
40: aload 0
getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
ifne 44
aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 44
41: aload 0
bipush 40
42: ldc "Inconsistent secure renegotiation indication"
43: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
44: StackMap locals:
StackMap stack:
iload 2
ifeq 45
aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifne 70
45: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.isInitialHandshake:Z
ifeq 53
46: getstatic sun.security.ssl.ServerHandshaker.allowLegacyHelloMessages:Z
ifne 50
47: aload 0
bipush 40
48: ldc "Failed to negotiate the use of secure renegotiation"
49: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
50: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 70
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 70
51: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Warning: No renegotiation indication in ClientHello, allow legacy ClientHello"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
52: goto 70
StackMap locals:
StackMap stack:
53: getstatic sun.security.ssl.ServerHandshaker.allowUnsafeRenegotiation:Z
ifne 66
54: aload 0
getfield sun.security.ssl.ServerHandshaker.activeProtocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 62
55: aload 0
bipush 100
invokevirtual sun.security.ssl.ServerHandshaker.warningSE:(B)V
56: aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.invalidated:Z
57: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.available:()I
ifle 61
58: aload 0
bipush 10
59: ldc "ClientHello followed by an unexpected handshake message"
60: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
61: StackMap locals:
StackMap stack:
return
62: StackMap locals:
StackMap stack:
aload 0
bipush 40
63: ldc "Renegotiation is not allowed"
64: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
65: goto 70
66: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 70
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 70
67: getstatic java.lang.System.out:Ljava/io/PrintStream;
68: ldc "Warning: continue with insecure renegotiation"
69: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
70: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
ifeq 83
71: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
72: getstatic sun.security.ssl.ExtensionType.EXT_EXTENDED_MASTER_SECRET:Lsun/security/ssl/ExtensionType;
73: invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.ExtendedMasterSecretExtension
74: astore 5
start local 5 75: aload 5
ifnull 78
76: aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
77: goto 83
StackMap locals: sun.security.ssl.ExtendedMasterSecretExtension
StackMap stack:
78: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 83
79: getstatic sun.security.ssl.ServerHandshaker.allowLegacyMasterSecret:Z
ifne 83
80: aload 0
bipush 40
81: ldc "Extended Master Secret extension is required"
82: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
end local 5 83: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
84: new sun.security.ssl.HandshakeMessage$ServerHello
dup
invokespecial sun.security.ssl.HandshakeMessage$ServerHello.<init>:()V
astore 5
start local 5 85: aload 0
aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
86: aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ServerHandshaker.selectProtocolVersion:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/ProtocolVersion;
87: astore 6
start local 6 88: aload 6
ifnull 90
89: aload 6
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmpne 95
90: StackMap locals: sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
bipush 40
91: new java.lang.StringBuilder
dup
ldc "Client requested protocol "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
92: ldc " not enabled or not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
93: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
94: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
95: StackMap locals:
StackMap stack:
aload 0
aload 6
invokevirtual sun.security.ssl.ServerHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
96: aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.HandshakeMessage$ServerHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
97: aload 0
aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.clnt_random:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
98: aload 0
new sun.security.ssl.RandomCookie
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.RandomCookie.<init>:(Ljava/security/SecureRandom;)V
putfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
99: aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.HandshakeMessage$ServerHello.svr_random:Lsun/security/ssl/RandomCookie;
100: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
101: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.length:()I
ifeq 188
102: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
103: invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
104: checkcast sun.security.ssl.SSLSessionContextImpl
105: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.getId:()[B
invokevirtual sun.security.ssl.SSLSessionContextImpl.get:([B)Lsun/security/ssl/SSLSessionImpl;
106: astore 7
start local 7 107: aload 7
ifnull 188
108: aload 0
aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
109: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 113
110: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
astore 8
start local 8 111: aload 8
aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 113
112: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
end local 8 113: StackMap locals: sun.security.ssl.SSLSessionImpl
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 132
getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
ifeq 132
114: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifeq 118
115: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 118
116: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
117: goto 132
StackMap locals:
StackMap stack:
118: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifne 124
119: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 124
120: aload 0
bipush 40
121: ldc "Missing Extended Master Secret extension on session resumption"
122: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
123: goto 132
StackMap locals:
StackMap stack:
124: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifne 132
125: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 132
126: getstatic sun.security.ssl.ServerHandshaker.allowLegacyResumption:Z
ifne 131
127: aload 0
bipush 40
128: ldc "Missing Extended Master Secret extension on session resumption"
129: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
130: goto 132
131: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
132: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 138
133: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_2
if_icmpne 138
134: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
pop
135: goto 138
StackMap locals:
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
136: pop
137: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
138: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 165
139: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 8
start local 8 140: aload 8
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 142
141: aload 8
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 165
142: StackMap locals: sun.security.ssl.CipherSuite
StackMap stack:
aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
astore 9
start local 9 143: aconst_null
astore 10
start local 10 144: new sun.security.ssl.ServerHandshaker$1
dup
aload 0
invokespecial sun.security.ssl.ServerHandshaker$1.<init>:(Lsun/security/ssl/ServerHandshaker;)V
145: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.Subject
astore 10
146: goto 151
StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion sun.security.ssl.SSLSessionImpl sun.security.ssl.CipherSuite java.security.Principal javax.security.auth.Subject
StackMap stack: java.security.PrivilegedActionException
147: pop
148: aconst_null
astore 10
149: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 151
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 151
150: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Attempt to obtain subject failed!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
151: StackMap locals:
StackMap stack:
aload 10
ifnull 162
152: aload 10
ldc Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
153: astore 11
start local 11 154: aload 11
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 159
155: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
156: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 165
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 165
157: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Subject identity is not the same"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
158: goto 165
159: StackMap locals: java.util.Set
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 165
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 165
160: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Subject identity is same"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 11 161: goto 165
162: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
163: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 165
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 165
164: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Kerberos credentials are not present in the current Subject; check if javax.security.auth.useSubjectAsCreds system property has been set to false"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 10 end local 9 end local 8 165: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 8
start local 8 166: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 176
aload 8
ifnull 176
167: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
168: astore 9
start local 9 169: aload 8
aload 9
invokestatic sun.security.ssl.ServerHandshaker.objectsEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 176
170: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 175
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 175
171: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% can't resume, endpoint id algorithm does not match, requested: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
172: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", cached: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
173: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
174: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
175: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
end local 9 176: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 183
177: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 9
start local 9 178: aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 180
179: aload 1
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
aload 9
invokevirtual sun.security.ssl.CipherSuiteList.contains:(Lsun/security/ssl/CipherSuite;)Z
ifne 182
180: StackMap locals: sun.security.ssl.CipherSuite
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
181: goto 183
182: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
end local 9 183: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 188
184: aload 0
aload 7
putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
185: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 188
186: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifne 187
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 188
187: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%% Resuming "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.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 8 end local 7 188: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 205
189: aload 0
getfield sun.security.ssl.ServerHandshaker.enableNewSession:Z
ifne 191
190: new javax.net.ssl.SSLException
dup
ldc "Client did not resume a session"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
191: StackMap locals:
StackMap stack:
aload 0
192: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
getstatic sun.security.ssl.ExtensionType.EXT_ELLIPTIC_CURVES:Lsun/security/ssl/ExtensionType;
invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
193: checkcast sun.security.ssl.SupportedEllipticCurvesExtension
putfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
194: aload 0
aload 1
invokevirtual sun.security.ssl.ServerHandshaker.chooseCipherSuite:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
195: aload 0
196: new sun.security.ssl.SSLSessionImpl
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
197: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
198: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getHostAddressSE:()Ljava/lang/String;
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getPortSE:()I
199: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifeq 201
200: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 201
iconst_1
goto 202
StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
StackMap stack: sun.security.ssl.ServerHandshaker new 196 new 196 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.security.SecureRandom java.lang.String int
201: iconst_0
202: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello int sun.security.ssl.CipherSuiteList sun.security.ssl.RenegotiationInfoExtension sun.security.ssl.HandshakeMessage$ServerHello sun.security.ssl.ProtocolVersion
StackMap stack: sun.security.ssl.ServerHandshaker new 196 new 196 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.security.SecureRandom java.lang.String int int
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/security/SecureRandom;Ljava/lang/String;IZLjava/lang/String;)V
203: putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
204: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
205: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
putfield sun.security.ssl.HandshakeMessage$ServerHello.cipherSuite:Lsun/security/ssl/CipherSuite;
206: aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
putfield sun.security.ssl.HandshakeMessage$ServerHello.sessionId:Lsun/security/ssl/SessionId;
207: aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getCompression:()B
putfield sun.security.ssl.HandshakeMessage$ServerHello.compression_method:B
208: aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 213
209: new sun.security.ssl.RenegotiationInfoExtension
dup
210: aload 0
getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
aload 0
getfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
211: invokespecial sun.security.ssl.RenegotiationInfoExtension.<init>:([B[B)V
astore 7
start local 7 212: aload 5
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
aload 7
invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
end local 7 213: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 215
214: aload 5
getfield sun.security.ssl.HandshakeMessage$ServerHello.extensions:Lsun/security/ssl/HelloExtensions;
new sun.security.ssl.ExtendedMasterSecretExtension
dup
invokespecial sun.security.ssl.ExtendedMasterSecretExtension.<init>:()V
invokevirtual sun.security.ssl.HelloExtensions.add:(Lsun/security/ssl/HelloExtension;)V
215: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 218
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 218
216: aload 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
217: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Cipher suite: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()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
218: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.write:(Lsun/security/ssl/HandshakeOutStream;)V
219: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 223
220: aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
invokevirtual sun.security.ssl.ServerHandshaker.calculateConnectionKeys:(Ljavax/crypto/SecretKey;)V
221: aload 0
iconst_0
invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
222: return
223: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 235
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 235
224: aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 233
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 233
225: aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
ifnonnull 227
226: new java.lang.RuntimeException
dup
ldc "no certificates"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
227: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateMsg
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
invokespecial sun.security.ssl.HandshakeMessage$CertificateMsg.<init>:([Ljava/security/cert/X509Certificate;)V
astore 7
start local 7 228: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
229: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 231
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 231
230: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
231: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateMsg
StackMap stack:
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.write:(Lsun/security/ssl/HandshakeOutStream;)V
end local 7 232: goto 235
233: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
ifnull 235
234: new java.lang.RuntimeException
dup
ldc "anonymous keyexchange with certs"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
235: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 236
3: 238
4: 279
5: 279
6: 253
7: 253
8: 264
9: 277
10: 277
11: 266
12: 266
13: 266
14: 236
15: 236
default: 279
}
236: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 237: goto 280
end local 7 238: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
sipush 512
if_icmple 251
239: new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
dup
240: aload 0
getfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
241: aload 0
getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
242: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
243: invokespecial sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/RandomCookie;Ljava/security/SecureRandom;)V
astore 7
start local 7 244: aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
245: goto 280
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
246: astore 8
start local 8 247: ldc "Error generating RSA server key exchange"
aload 8
248: invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
249: aconst_null
astore 7
end local 8 start local 7 250: goto 280
end local 7 251: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 252: goto 280
end local 7 253: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
254: aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
255: aload 0
getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
256: aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
257: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
258: invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;)V
astore 7
start local 7 259: goto 280
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
260: astore 8
start local 8 261: ldc "Error generating DH server key exchange"
aload 8
invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
262: aconst_null
astore 7
end local 8 start local 7 263: goto 280
end local 7 264: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;)V
astore 7
start local 7 265: goto 280
end local 7 266: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
267: aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
268: aload 0
getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
269: aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
270: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
271: invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/ECDHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;)V
astore 7
start local 7 272: goto 280
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
273: astore 8
start local 8 274: ldc "Error generating ECDH server key exchange"
aload 8
invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
275: aconst_null
astore 7
end local 8 start local 7 276: goto 280
end local 7 277: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 278: goto 280
end local 7 279: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "internal error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 7 280: StackMap locals: sun.security.ssl.HandshakeMessage$ServerKeyExchange
StackMap stack:
aload 7
ifnull 284
281: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 283
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 283
282: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.print:(Ljava/io/PrintStream;)V
283: StackMap locals:
StackMap stack:
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.write:(Lsun/security/ssl/HandshakeOutStream;)V
284: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 292
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_KRB5_EXPORT:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 292
285: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
ifeq 292
286: aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 292
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 292
287: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
astore 9
start local 9 288: new sun.security.ssl.HandshakeMessage$CertificateRequest
dup
aload 9
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;)V
astore 8
start local 8 289: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 291
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 291
290: aload 8
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
291: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[]
StackMap stack:
aload 8
aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.write:(Lsun/security/ssl/HandshakeOutStream;)V
end local 9 end local 8 292: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHelloDone
dup
invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:()V
astore 8
start local 8 293: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 295
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 295
294: aload 8
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
295: StackMap locals: sun.security.ssl.HandshakeMessage$ServerHelloDone
StackMap stack:
aload 8
aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.write:(Lsun/security/ssl/HandshakeOutStream;)V
296: aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
297: 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 298 0 this Lsun/security/ssl/ServerHandshaker;
0 298 1 mesg Lsun/security/ssl/HandshakeMessage$ClientHello;
3 298 2 renegotiationIndicated Z
4 298 3 cipherSuites Lsun/security/ssl/CipherSuiteList;
19 298 4 clientHelloRI Lsun/security/ssl/RenegotiationInfoExtension;
75 83 5 extendedMasterSecretExtension Lsun/security/ssl/ExtendedMasterSecretExtension;
85 298 5 m1 Lsun/security/ssl/HandshakeMessage$ServerHello;
88 298 6 selectedVersion Lsun/security/ssl/ProtocolVersion;
107 188 7 previous Lsun/security/ssl/SSLSessionImpl;
111 113 8 oldVersion Lsun/security/ssl/ProtocolVersion;
140 165 8 suite Lsun/security/ssl/CipherSuite;
143 165 9 localPrincipal Ljava/security/Principal;
144 165 10 subject Ljavax/security/auth/Subject;
154 161 11 principals Ljava/util/Set<Ljavax/security/auth/kerberos/KerberosPrincipal;>;
166 188 8 identityAlg Ljava/lang/String;
169 176 9 sessionIdentityAlg Ljava/lang/String;
178 183 9 suite Lsun/security/ssl/CipherSuite;
212 213 7 serverHelloRI Lsun/security/ssl/HelloExtension;
228 232 7 m2 Lsun/security/ssl/HandshakeMessage$CertificateMsg;
237 238 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
244 246 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
250 251 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
252 253 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
259 260 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
263 264 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
265 266 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
272 273 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
276 277 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
278 279 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
280 298 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
247 250 8 e Ljava/security/GeneralSecurityException;
261 263 8 e Ljava/security/GeneralSecurityException;
274 276 8 e Ljava/security/GeneralSecurityException;
289 292 8 m4 Lsun/security/ssl/HandshakeMessage$CertificateRequest;
288 292 9 caCerts [Ljava/security/cert/X509Certificate;
293 298 8 m5 Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
Exception table:
from to target type
134 135 136 Class javax.net.ssl.SSLPeerUnverifiedException
144 146 147 Class java.security.PrivilegedActionException
239 245 246 Class java.security.GeneralSecurityException
253 259 260 Class java.security.GeneralSecurityException
266 272 273 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void chooseCipherSuite(sun.security.ssl.HandshakeMessage$ClientHello);
descriptor: (Lsun/security/ssl/HandshakeMessage$ClientHello;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 1
invokevirtual sun.security.ssl.HandshakeMessage$ClientHello.getCipherSuites:()Lsun/security/ssl/CipherSuiteList;
invokevirtual sun.security.ssl.CipherSuiteList.collection:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 17
StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 3
start local 3 3: aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifne 5
4: goto 17
5: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List sun.security.ssl.CipherSuite java.util.Iterator
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_2
if_icmpne 9
6: aload 3
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_DH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpeq 17
7: aload 3
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getstatic sun.security.ssl.CipherSuite$KeyExchange.K_ECDH_ANON:Lsun/security/ssl/CipherSuite$KeyExchange;
if_acmpne 9
8: goto 17
9: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.legacyAlgorithmConstraints:Lsun/security/util/AlgorithmConstraints;
aconst_null
aload 3
getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
aconst_null
invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
ifne 12
10: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: goto 17
12: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.trySetCipherSuite:(Lsun/security/ssl/CipherSuite;)Z
ifne 14
13: goto 17
14: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 16
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 16
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Standard ciphersuite chosen: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
16: StackMap locals:
StackMap stack:
return
end local 3 17: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
18: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 24
StackMap locals:
StackMap stack:
19: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 3
start local 3 20: aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.trySetCipherSuite:(Lsun/security/ssl/CipherSuite;)Z
ifeq 24
21: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 23
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 23
22: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Legacy ciphersuite chosen: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
23: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List sun.security.ssl.CipherSuite java.util.Iterator
StackMap stack:
return
end local 3 24: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$ClientHello java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
25: aload 0
bipush 40
26: ldc "no cipher suites in common"
27: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/security/ssl/ServerHandshaker;
0 29 1 mesg Lsun/security/ssl/HandshakeMessage$ClientHello;
1 29 2 legacySuites Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
3 17 3 suite Lsun/security/ssl/CipherSuite;
20 24 3 suite Lsun/security/ssl/CipherSuite;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
boolean trySetCipherSuite(sun.security.ssl.CipherSuite);
descriptor: (Lsun/security/ssl/CipherSuite;)Z
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.CipherSuite.isNegotiable:()Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
aload 1
getfield sun.security.ssl.CipherSuite.obsoleted:I
if_icmplt 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
astore 2
start local 2 7: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
8: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
9: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
10: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
11: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
12: invokestatic sun.security.ssl.ServerHandshaker.$SWITCH_TABLE$sun$security$ssl$CipherSuite$KeyExchange:()[I
aload 2
invokevirtual sun.security.ssl.CipherSuite$KeyExchange.ordinal:()I
iaload
tableswitch { // 2 - 15
2: 13
3: 15
4: 52
5: 52
6: 30
7: 22
8: 48
9: 42
10: 38
11: 34
12: 26
13: 50
14: 46
15: 46
default: 52
}
13: StackMap locals: sun.security.ssl.CipherSuite$KeyExchange
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 53
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokestatic sun.security.ssl.JsseJce.getRSAKeyLength:(Ljava/security/PublicKey;)I
sipush 512
if_icmple 53
18: aload 0
aload 1
getfield sun.security.ssl.CipherSuite.exportable:Z
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralRSAKeys:(Z)Z
ifne 53
19: iconst_0
ireturn
20: StackMap locals:
StackMap stack: java.lang.RuntimeException
pop
21: iconst_0
ireturn
22: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 24
23: iconst_0
ireturn
24: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield sun.security.ssl.CipherSuite.exportable:Z
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
25: goto 53
26: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 28
27: iconst_0
ireturn
28: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 53
29: iconst_0
ireturn
30: StackMap locals:
StackMap stack:
aload 0
ldc "DSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 32
31: iconst_0
ireturn
32: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield sun.security.ssl.CipherSuite.exportable:Z
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
33: goto 53
34: StackMap locals:
StackMap stack:
aload 0
ldc "EC_EC"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 36
35: iconst_0
ireturn
36: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 53
37: iconst_0
ireturn
38: StackMap locals:
StackMap stack:
aload 0
ldc "EC_RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 40
39: iconst_0
ireturn
40: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
41: goto 53
42: StackMap locals:
StackMap stack:
aload 0
ldc "EC_EC"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 44
43: iconst_0
ireturn
44: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
45: goto 53
46: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupKerberosKeys:()Z
ifne 53
47: iconst_0
ireturn
48: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield sun.security.ssl.CipherSuite.exportable:Z
aconst_null
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralDHKeys:(ZLjava/security/Key;)V
49: goto 53
50: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 53
51: iconst_0
ireturn
52: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized cipherSuite: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
54: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lsun/security/ssl/ServerHandshaker;
0 55 1 suite Lsun/security/ssl/CipherSuite;
7 55 2 keyExchange Lsun/security/ssl/CipherSuite$KeyExchange;
Exception table:
from to target type
17 19 20 Class java.lang.RuntimeException
MethodParameters:
Name Flags
suite
private boolean setupEphemeralRSAKeys(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getEphemeralKeyManager:()Lsun/security/ssl/EphemeralKeyManager;
1: iload 1
aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokevirtual sun.security.ssl.EphemeralKeyManager.getRSAKeyPair:(ZLjava/security/SecureRandom;)Ljava/security/KeyPair;
2: astore 2
start local 2 3: aload 2
ifnonnull 5
4: iconst_0
ireturn
5: StackMap locals: java.security.KeyPair
StackMap stack:
aload 0
aload 2
invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
6: aload 0
aload 2
invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
7: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ServerHandshaker;
0 8 1 export Z
3 8 2 kp Ljava/security/KeyPair;
MethodParameters:
Name Flags
export
private void setupEphemeralDHKeys(boolean, java.security.Key);
descriptor: (ZLjava/security/Key;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 1
sipush 512
goto 2
StackMap locals:
StackMap stack:
1: sipush 1024
StackMap locals:
StackMap stack: int
2: istore 3
start local 3 3: iload 1
ifne 16
4: getstatic sun.security.ssl.ServerHandshaker.useLegacyEphemeralDHKeys:Z
ifeq 7
5: sipush 768
istore 3
6: goto 16
StackMap locals: int
StackMap stack:
7: getstatic sun.security.ssl.ServerHandshaker.useSmartEphemeralDHKeys:Z
ifeq 14
8: aload 2
ifnull 16
9: aload 2
invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
istore 4
start local 4 10: iload 4
sipush 1024
if_icmpgt 11
sipush 1024
goto 12
StackMap locals: int
StackMap stack:
11: sipush 2048
StackMap locals:
StackMap stack: int
12: istore 3
end local 4 13: goto 16
StackMap locals:
StackMap stack:
14: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
ifle 16
15: getstatic sun.security.ssl.ServerHandshaker.customizedDHKeySize:I
istore 3
16: StackMap locals:
StackMap stack:
aload 0
new sun.security.ssl.DHCrypt
dup
iload 3
aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.DHCrypt.<init>:(ILjava/security/SecureRandom;)V
putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
17: return
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/ServerHandshaker;
0 18 1 export Z
0 18 2 key Ljava/security/Key;
3 18 3 keySize I
10 13 4 ks I
MethodParameters:
Name Flags
export
key
private boolean setupEphemeralECDHKeys();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
ifnull 2
1: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
invokevirtual sun.security.ssl.SupportedEllipticCurvesExtension.getPreferredCurve:(Lsun/security/util/AlgorithmConstraints;)I
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getActiveCurves:(Lsun/security/util/AlgorithmConstraints;)I
3: StackMap locals:
StackMap stack: int
istore 1
start local 1 4: iload 1
ifge 6
5: iconst_0
ireturn
6: StackMap locals: int
StackMap stack:
aload 0
new sun.security.ssl.ECDHCrypt
dup
iload 1
aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
invokespecial sun.security.ssl.ECDHCrypt.<init>:(ILjava/security/SecureRandom;)V
putfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
7: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ServerHandshaker;
4 8 1 index I
private void setupStaticECDHKeys();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
new sun.security.ssl.ECDHCrypt
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokespecial sun.security.ssl.ECDHCrypt.<init>:(Ljava/security/PrivateKey;Ljava/security/PublicKey;)V
putfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ServerHandshaker;
private boolean setupPrivateKeyAndChain(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
astore 2
start local 2 1: aload 0
getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 4
2: aload 2
aload 1
aconst_null
aload 0
getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 3
start local 3 3: goto 5
end local 3 4: StackMap locals: javax.net.ssl.X509ExtendedKeyManager
StackMap stack:
aload 2
aload 1
aconst_null
aload 0
getfield sun.security.ssl.ServerHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineServerAlias:(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
astore 3
start local 3 5: StackMap locals: java.lang.String
StackMap stack:
aload 3
ifnonnull 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
astore 4
start local 4 8: aload 4
ifnonnull 10
9: iconst_0
ireturn
10: StackMap locals: java.security.PrivateKey
StackMap stack:
aload 2
aload 3
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
astore 5
start local 5 11: aload 5
ifnull 12
aload 5
arraylength
ifne 13
12: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 1
ldc "_"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
iconst_0
aaload
astore 6
start local 6 14: aload 5
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 7
start local 7 15: aload 4
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
16: aload 7
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
17: StackMap locals: java.lang.String java.security.PublicKey
StackMap stack:
iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 6
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
19: aload 7
instanceof java.security.interfaces.ECPublicKey
ifne 21
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 7
checkcast java.security.interfaces.ECPublicKey
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 8
start local 8 22: aload 8
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
istore 9
start local 9 23: iload 9
ifle 25
iload 9
invokestatic sun.security.ssl.SupportedEllipticCurvesExtension.isSupported:(I)Z
ifeq 25
24: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
ifnull 26
aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/SupportedEllipticCurvesExtension;
iload 9
invokevirtual sun.security.ssl.SupportedEllipticCurvesExtension.contains:(I)Z
ifne 26
25: StackMap locals: java.security.spec.ECParameterSpec int
StackMap stack:
iconst_0
ireturn
end local 9 end local 8 26: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
27: aload 0
aload 5
putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
28: iconst_1
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 29 0 this Lsun/security/ssl/ServerHandshaker;
0 29 1 algorithm Ljava/lang/String;
1 29 2 km Ljavax/net/ssl/X509ExtendedKeyManager;
3 4 3 alias Ljava/lang/String;
5 29 3 alias Ljava/lang/String;
8 29 4 tempPrivateKey Ljava/security/PrivateKey;
11 29 5 tempCerts [Ljava/security/cert/X509Certificate;
14 29 6 keyAlgorithm Ljava/lang/String;
15 29 7 publicKey Ljava/security/PublicKey;
22 26 8 params Ljava/security/spec/ECParameterSpec;
23 26 9 id I
MethodParameters:
Name Flags
algorithm
private boolean setupKerberosKeys();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
ifnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getAccSE:()Ljava/security/AccessControlContext;
astore 1
start local 1 3: aload 0
4: new sun.security.ssl.ServerHandshaker$2
dup
aload 0
aload 1
invokespecial sun.security.ssl.ServerHandshaker$2.<init>:(Lsun/security/ssl/ServerHandshaker;Ljava/security/AccessControlContext;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.kerberos.KerberosKey[]
putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
6: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
ifnull 24
7: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 11
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 11
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Using Kerberos key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
iconst_0
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: StackMap locals: java.security.AccessControlContext
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
iconst_0
aaload
invokevirtual javax.security.auth.kerberos.KerberosKey.getPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual javax.security.auth.kerberos.KerberosPrincipal.getName:()Ljava/lang/String;
12: astore 2
start local 2 13: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 14: aload 3
ifnull 24
15: aload 3
new javax.security.auth.kerberos.ServicePermission
dup
aload 2
16: ldc "accept"
invokespecial javax.security.auth.kerberos.ServicePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
aload 1
17: invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
18: goto 24
StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext java.lang.String java.lang.SecurityManager
StackMap stack: java.lang.SecurityException
19: pop
20: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
21: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 23
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 23
22: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Permission to access Kerberos secret key denied"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 24: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
ifnull 25
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/security/auth/kerberos/KerberosKey;
arraylength
ifle 25
iconst_1
ireturn
StackMap locals:
StackMap stack:
25: iconst_0
26: ireturn
end local 1 27: StackMap locals: sun.security.ssl.ServerHandshaker
StackMap stack: java.security.PrivilegedActionException
astore 1
start local 1 28: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 32
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 32
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Attempt to obtain Kerberos key failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: aload 1
invokevirtual java.security.PrivilegedActionException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: StackMap locals: java.security.PrivilegedActionException
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/security/ssl/ServerHandshaker;
3 27 1 acc Ljava/security/AccessControlContext;
13 24 2 serverPrincipal Ljava/lang/String;
14 24 3 sm Ljava/lang/SecurityManager;
28 33 1 e Ljava/security/PrivilegedActionException;
Exception table:
from to target type
14 18 19 Class java.lang.SecurityException
2 23 27 Class java.security.PrivilegedActionException
24 26 27 Class java.security.PrivilegedActionException
private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.KerberosClientKeyExchange);
descriptor: (Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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.KerberosClientKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 1
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPeerPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerPrincipal:(Ljava/security/Principal;)V
3: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 1
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getLocalPrincipal:()Ljavax/security/auth/kerberos/KerberosPrincipal;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
4: aload 1
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getPreMasterSecret:()Lsun/security/ssl/KerberosPreMasterSecret;
invokevirtual sun.security.ssl.KerberosPreMasterSecret.getUnencrypted:()[B
astore 2
start local 2 5: new javax.crypto.spec.SecretKeySpec
dup
aload 2
ldc "TlsPremasterSecret"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/ServerHandshaker;
0 6 1 mesg Lsun/security/ssl/KerberosClientKeyExchange;
5 6 2 b [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.DHClientKeyExchange);
descriptor: (Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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.DHClientKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.DHClientKeyExchange.getClientPublicKey:()Ljava/math/BigInteger;
astore 2
start local 2 3: aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
aload 2
invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;Ljava/math/BigInteger;)V
4: aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 2
iconst_0
invokevirtual sun.security.ssl.DHCrypt.getAgreedSecret:(Ljava/math/BigInteger;Z)Ljavax/crypto/SecretKey;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/ServerHandshaker;
0 5 1 mesg Lsun/security/ssl/DHClientKeyExchange;
3 5 2 publicKeyValue Ljava/math/BigInteger;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.ECDHClientKeyExchange);
descriptor: (Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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.ECDHClientKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.ECDHClientKeyExchange.getEncodedPoint:()[B
astore 2
start local 2 3: aload 0
getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Lsun/security/util/AlgorithmConstraints;
aload 2
invokevirtual sun.security.ssl.ECDHCrypt.checkConstraints:(Lsun/security/util/AlgorithmConstraints;[B)V
4: aload 0
getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
aload 2
invokevirtual sun.security.ssl.ECDHCrypt.getAgreedSecret:([B)Ljavax/crypto/SecretKey;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/ServerHandshaker;
0 5 1 mesg Lsun/security/ssl/ECDHClientKeyExchange;
3 5 2 publicPoint [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void clientCertificateVerify(sun.security.ssl.HandshakeMessage$CertificateVerify);
descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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$CertificateVerify.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.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;
3: astore 2
start local 2 4: aload 1
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
5: aload 2
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
6: invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.verify:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;Ljava/security/PublicKey;Ljavax/crypto/SecretKey;)Z
istore 3
start local 3 7: iload 3
ifne 16
8: aload 0
bipush 42
9: ldc "certificate verify message signature error"
10: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
end local 3 end local 2 11: goto 16
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
12: astore 2
start local 2 13: aload 0
bipush 42
14: ldc "certificate verify format error"
aload 2
15: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
end local 2 16: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/ssl/ServerHandshaker;
0 18 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateVerify;
4 11 2 publicKey Ljava/security/PublicKey;
7 11 3 valid Z
13 16 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
2 11 12 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void clientFinished(sun.security.ssl.HandshakeMessage$Finished);
descriptor: (Lsun/security/ssl/HandshakeMessage$Finished;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_2
if_icmpne 4
3: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
ifeq 8
5: aload 0
bipush 40
6: ldc "client did not send certificate verify message"
7: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
9: iconst_1
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
10: invokevirtual sun.security.ssl.HandshakeMessage$Finished.verify:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)Z
istore 2
start local 2 11: iload 2
ifne 15
12: aload 0
bipush 40
13: ldc "client 'finished' message doesn't verify"
14: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
15: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 17
16: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifne 20
18: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
19: aload 0
iconst_1
invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
20: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual sun.security.ssl.SSLSessionImpl.setLastAccessedTime:(J)V
21: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifne 29
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 29
22: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
checkcast sun.security.ssl.SSLSessionContextImpl
23: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
24: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 36
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 36
25: getstatic java.lang.System.out:Ljava/io/PrintStream;
26: new java.lang.StringBuilder
dup
ldc "%% Cached server session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
28: goto 36
StackMap locals:
StackMap stack:
29: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifne 36
30: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 36
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 36
31: getstatic java.lang.System.out:Ljava/io/PrintStream;
32: new java.lang.StringBuilder
dup
ldc "%% Didn't cache non-resumable server session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
33: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lsun/security/ssl/ServerHandshaker;
0 37 1 mesg Lsun/security/ssl/HandshakeMessage$Finished;
11 37 2 verified Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void sendChangeCipherAndFinish(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
1: new sun.security.ssl.HandshakeMessage$Finished
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
2: iconst_2
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
3: invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;)V
astore 2
start local 2 4: aload 0
aload 2
iload 1
invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherSpec:(Lsun/security/ssl/HandshakeMessage$Finished;Z)V
5: aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 7
6: aload 0
aload 2
invokevirtual sun.security.ssl.HandshakeMessage$Finished.getVerifyData:()[B
putfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
7: StackMap locals: sun.security.ssl.HandshakeMessage$Finished
StackMap stack:
iload 1
ifeq 9
8: aload 0
bipush 20
putfield sun.security.ssl.ServerHandshaker.state:I
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/ServerHandshaker;
0 10 1 finishedTag Z
4 10 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=2, locals=1, args_size=1
start local 0 0: new sun.security.ssl.HandshakeMessage$HelloRequest
dup
invokespecial sun.security.ssl.HandshakeMessage$HelloRequest.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/ServerHandshaker;
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.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 5
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 5
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
3: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: StackMap locals: java.lang.String
StackMap stack:
iload 1
bipush 41
if_icmpne 8
6: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_1
if_icmpne 8
7: return
8: StackMap locals:
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 9 0 this Lsun/security/ssl/ServerHandshaker;
0 9 1 description B
1 9 2 message Ljava/lang/String;
Exceptions:
throws javax.net.ssl.SSLProtocolException
MethodParameters:
Name Flags
description
private javax.crypto.SecretKey clientKeyExchange(sun.security.ssl.RSAClientKeyExchange);
descriptor: (Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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.RSAClientKeyExchange.print:(Ljava/io/PrintStream;)V
2: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.RSAClientKeyExchange.preMaster:Ljavax/crypto/SecretKey;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/ServerHandshaker;
0 3 1 mesg Lsun/security/ssl/RSAClientKeyExchange;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void clientCertificate(sun.security.ssl.HandshakeMessage$CertificateMsg);
descriptor: (Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: getstatic sun.security.ssl.ServerHandshaker.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 9
4: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_1
if_icmpne 6
5: return
6: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
aload 0
bipush 42
7: ldc "null cert chain"
8: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
astore 3
start local 3 10: aload 2
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 4
start local 4 11: aload 4
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
astore 5
start local 5 12: aload 5
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: ldc "RSA"
astore 6
start local 6 14: goto 22
end local 6 StackMap locals: javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String
StackMap stack:
15: aload 5
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: ldc "DSA"
astore 6
start local 6 17: goto 22
end local 6 StackMap locals:
StackMap stack:
18: aload 5
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
19: ldc "EC"
astore 6
start local 6 20: goto 22
end local 6 21: StackMap locals:
StackMap stack:
ldc "UNKNOWN"
astore 6
start local 6 22: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getHostnameVerificationSE:()Ljava/lang/String;
astore 7
start local 7 23: aload 3
instanceof com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
ifeq 33
24: aload 3
checkcast com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
25: aload 2
ifnull 27
26: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
goto 28
27: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
aconst_null
28: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
StackMap stack: com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager java.security.cert.X509Certificate[]
aload 6
29: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getHostSE:()Ljava/lang/String;
30: aload 7
31: invokevirtual com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
32: goto 46
33: StackMap locals:
StackMap stack:
aload 7
ifnull 37
34: new java.lang.RuntimeException
dup
35: ldc "trust manager does not support peer identification"
36: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
aload 3
38: aload 2
ifnull 40
39: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
goto 41
40: StackMap locals:
StackMap stack: javax.net.ssl.X509TrustManager
aload 2
41: StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String java.lang.String java.lang.String
StackMap stack: javax.net.ssl.X509TrustManager java.security.cert.X509Certificate[]
aload 6
42: invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
end local 7 end local 6 end local 5 end local 4 43: goto 46
StackMap locals: sun.security.ssl.ServerHandshaker sun.security.ssl.HandshakeMessage$CertificateMsg java.security.cert.X509Certificate[] javax.net.ssl.X509TrustManager
StackMap stack: java.security.cert.CertificateException
44: astore 4
start local 4 45: aload 0
bipush 46
aload 4
invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/Throwable;)V
end local 4 46: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
47: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerCertificates:([Ljava/security/cert/X509Certificate;)V
48: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lsun/security/ssl/ServerHandshaker;
0 49 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
3 49 2 peerCerts [Ljava/security/cert/X509Certificate;
10 49 3 tm Ljavax/net/ssl/X509TrustManager;
11 43 4 key Ljava/security/PublicKey;
12 43 5 keyAlgorithm Ljava/lang/String;
14 15 6 authType Ljava/lang/String;
17 18 6 authType Ljava/lang/String;
20 21 6 authType Ljava/lang/String;
22 43 6 authType Ljava/lang/String;
23 43 7 identificator Ljava/lang/String;
45 46 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
10 43 44 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private static int parseUnsignedInt(java.lang.String, int);
descriptor: (Ljava/lang/String;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: new java.lang.NumberFormatException
dup
ldc "null"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
istore 2
start local 2 3: iload 2
ifle 20
4: aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 5: iload 3
bipush 45
if_icmpne 10
6: new java.lang.NumberFormatException
dup
ldc "Illegal leading minus sign on unsigned string %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
7: aload 0
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
9: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: int int
StackMap stack:
iload 2
iconst_5
if_icmple 12
11: iload 1
bipush 10
if_icmpne 13
iload 2
bipush 9
if_icmpgt 13
12: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
ireturn
13: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;I)J
lstore 4
start local 4 14: lload 4
ldc -4294967296
land
lconst_0
lcmp
ifne 16
15: lload 4
l2i
ireturn
16: StackMap locals: long
StackMap stack:
new java.lang.NumberFormatException
dup
ldc "String value %s exceeds range of unsigned int."
iconst_1
anewarray java.lang.Object
dup
iconst_0
17: aload 0
aastore
18: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
19: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 20: StackMap locals:
StackMap stack:
new java.lang.NumberFormatException
dup
new java.lang.StringBuilder
dup
ldc "For input string: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 s Ljava/lang/String;
0 21 1 radix I
3 21 2 len I
5 20 3 firstChar C
14 20 4 ell J
Exceptions:
throws java.lang.NumberFormatException
MethodParameters:
Name Flags
s
radix
private static int parseUnsignedInt(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 10
invokestatic sun.security.ssl.ServerHandshaker.parseUnsignedInt:(Ljava/lang/String;I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
Exceptions:
throws java.lang.NumberFormatException
MethodParameters:
Name Flags
s
private static boolean objectsEquals(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpeq 2
aload 0
ifnull 1
aload 0
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 a Ljava/lang/Object;
0 3 1 b Ljava/lang/Object;
MethodParameters:
Name Flags
a
b
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.ServerHandshaker.$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.ServerHandshaker.$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: "ServerHandshaker.java"
NestMembers:
sun.security.ssl.ServerHandshaker$1 sun.security.ssl.ServerHandshaker$2
InnerClasses:
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange 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 CertificateVerify = sun.security.ssl.HandshakeMessage$CertificateVerify of sun.security.ssl.HandshakeMessage
final ClientHello = sun.security.ssl.HandshakeMessage$ClientHello of sun.security.ssl.HandshakeMessage
final DH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final ECDH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final Finished = sun.security.ssl.HandshakeMessage$Finished of sun.security.ssl.HandshakeMessage
final HelloRequest = sun.security.ssl.HandshakeMessage$HelloRequest of sun.security.ssl.HandshakeMessage
final RSA_ServerKeyExchange = sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange of sun.security.ssl.HandshakeMessage
final ServerHello = sun.security.ssl.HandshakeMessage$ServerHello of sun.security.ssl.HandshakeMessage
final ServerHelloDone = sun.security.ssl.HandshakeMessage$ServerHelloDone of sun.security.ssl.HandshakeMessage
abstract ServerKeyExchange = sun.security.ssl.HandshakeMessage$ServerKeyExchange of sun.security.ssl.HandshakeMessage
sun.security.ssl.ServerHandshaker$1
sun.security.ssl.ServerHandshaker$2