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.crypto.SecretKey[] kerberosKeys;
descriptor: [Ljavax/crypto/SecretKey;
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.EllipticCurvesExtension requestedCurves;
descriptor: Lsun/security/ssl/EllipticCurvesExtension;
flags: (0x0002) ACC_PRIVATE
sun.security.ssl.SignatureAndHashAlgorithm preferableSignatureAlgorithm;
descriptor: Lsun/security/ssl/SignatureAndHashAlgorithm;
flags: (0x0000)
private static final java.security.AlgorithmConstraints legacyAlgorithmConstraints;
descriptor: Ljava/security/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:Ljava/security/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.util.Parsing.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=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
iload 1
invokevirtual sun.security.ssl.HandshakeStateManager.check:(B)Ljava/util/List;
pop
1: iload 1
lookupswitch { // 5
1: 2
11: 6
15: 49
16: 14
20: 56
default: 61
}
2: 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 3: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 3
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
4: aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.clientHello:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
5: goto 64
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
ifne 10
7: aload 0
bipush 10
8: ldc "client sent unsolicited cert chain"
9: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
10: StackMap locals:
StackMap stack:
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
astore 4
start local 4 11: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 4
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
12: aload 0
aload 4
invokevirtual sun.security.ssl.ServerHandshaker.clientCertificate:(Lsun/security/ssl/HandshakeMessage$CertificateMsg;)V
13: goto 64
end local 4 14: 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: 15
3: 15
4: 42
5: 42
6: 33
7: 33
8: 33
9: 37
10: 37
11: 37
12: 37
13: 37
14: 23
15: 23
default: 42
}
15: StackMap locals:
StackMap stack:
new sun.security.ssl.RSAClientKeyExchange
dup
16: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
17: 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;
18: iload 2
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
19: 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 6
start local 6 20: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
21: aload 0
aload 6
invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/RSAClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 5
start local 5 22: goto 45
end local 6 end local 5 23: StackMap locals:
StackMap stack:
new sun.security.ssl.KerberosClientKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
24: aload 0
getfield sun.security.ssl.ServerHandshaker.clientRequestedVersion:Lsun/security/ssl/ProtocolVersion;
25: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
26: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
27: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
28: invokespecial sun.security.ssl.KerberosClientKeyExchange.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/ProtocolVersion;Ljava/security/SecureRandom;Lsun/security/ssl/HandshakeInStream;[Ljavax/crypto/SecretKey;)V
29: astore 7
start local 7 30: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
31: aload 0
aload 7
invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/KerberosClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 5
start local 5 32: goto 45
end local 7 end local 5 33: StackMap locals:
StackMap stack:
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
astore 8
start local 8 34: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 8
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
35: aload 0
aload 8
invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/DHClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 5
start local 5 36: goto 45
end local 8 end local 5 37: StackMap locals:
StackMap stack:
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
38: astore 9
start local 9 39: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 9
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
40: aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.clientKeyExchange:(Lsun/security/ssl/ECDHClientKeyExchange;)Ljavax/crypto/SecretKey;
astore 5
start local 5 41: goto 45
end local 9 end local 5 42: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
43: 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;
44: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
start local 5 45: StackMap locals: sun.security.ssl.ServerHandshaker int int top 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 47
46: aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
invokevirtual sun.security.ssl.HandshakeInStream.digestNow:()V
47: StackMap locals:
StackMap stack:
aload 0
aload 5
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
48: goto 64
end local 5 49: StackMap locals: sun.security.ssl.ServerHandshaker int int
StackMap stack:
new sun.security.ssl.HandshakeMessage$CertificateVerify
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.input:Lsun/security/ssl/HandshakeInStream;
50: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
51: invokespecial sun.security.ssl.HandshakeMessage$CertificateVerify.<init>:(Lsun/security/ssl/HandshakeInStream;Ljava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
52: astore 6
start local 6 53: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 6
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
54: aload 0
aload 6
invokevirtual sun.security.ssl.ServerHandshaker.clientCertificateVerify:(Lsun/security/ssl/HandshakeMessage$CertificateVerify;)V
55: goto 64
end local 6 56: StackMap locals:
StackMap stack:
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;
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/CipherSuite;)V
57: astore 7
start local 7 58: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
59: aload 0
aload 7
invokevirtual sun.security.ssl.ServerHandshaker.clientFinished:(Lsun/security/ssl/HandshakeMessage$Finished;)V
60: goto 64
end local 7 61: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
62: 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;
63: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lsun/security/ssl/ServerHandshaker;
0 65 1 type B
0 65 2 message_len I
3 6 3 ch Lsun/security/ssl/HandshakeMessage$ClientHello;
11 14 4 certificateMsg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
22 23 5 preMasterSecret Ljavax/crypto/SecretKey;
32 33 5 preMasterSecret Ljavax/crypto/SecretKey;
36 37 5 preMasterSecret Ljavax/crypto/SecretKey;
41 42 5 preMasterSecret Ljavax/crypto/SecretKey;
45 49 5 preMasterSecret Ljavax/crypto/SecretKey;
20 23 6 pms Lsun/security/ssl/RSAClientKeyExchange;
30 33 7 kke Lsun/security/ssl/KerberosClientKeyExchange;
34 37 8 dhcke Lsun/security/ssl/DHClientKeyExchange;
39 42 9 ecdhcke Lsun/security/ssl/ECDHClientKeyExchange;
53 56 6 cvm Lsun/security/ssl/HandshakeMessage$CertificateVerify;
58 61 7 cfm Lsun/security/ssl/HandshakeMessage$Finished;
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=11, 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
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 6
invokevirtual sun.security.ssl.HandshakeHash.protocolDetermined:(Lsun/security/ssl/ProtocolVersion;)V
96: aload 0
aload 6
invokevirtual sun.security.ssl.ServerHandshaker.setVersion:(Lsun/security/ssl/ProtocolVersion;)V
97: 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;
98: 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;
99: 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;
100: 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;
101: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
102: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.length:()I
ifeq 189
103: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
104: invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
105: checkcast sun.security.ssl.SSLSessionContextImpl
106: 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;
107: astore 7
start local 7 108: aload 7
ifnull 189
109: aload 0
aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
110: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 114
111: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
astore 8
start local 8 112: aload 8
aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.protocolVersion:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 114
113: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
end local 8 114: StackMap locals: sun.security.ssl.SSLSessionImpl
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 133
getstatic sun.security.ssl.ServerHandshaker.useExtendedMasterSecret:Z
ifeq 133
115: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifeq 119
116: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 119
117: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
118: goto 133
StackMap locals:
StackMap stack:
119: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifne 125
120: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 125
121: aload 0
bipush 40
122: ldc "Missing Extended Master Secret extension on session resumption"
123: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
124: goto 133
StackMap locals:
StackMap stack:
125: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifne 133
126: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifne 133
127: getstatic sun.security.ssl.ServerHandshaker.allowLegacyResumption:Z
ifne 132
128: aload 0
bipush 40
129: ldc "Missing Extended Master Secret extension on session resumption"
130: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
131: goto 133
132: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
133: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 139
134: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_2
if_icmpne 139
135: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
pop
136: goto 139
StackMap locals:
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
137: pop
138: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
139: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 166
140: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 8
start local 8 141: 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 143
142: 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 166
143: StackMap locals: sun.security.ssl.CipherSuite
StackMap stack:
aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalPrincipal:()Ljava/security/Principal;
astore 9
start local 9 144: aconst_null
astore 10
start local 10 145: new sun.security.ssl.ServerHandshaker$1
dup
aload 0
invokespecial sun.security.ssl.ServerHandshaker$1.<init>:(Lsun/security/ssl/ServerHandshaker;)V
146: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.security.auth.Subject
astore 10
147: goto 152
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
148: pop
149: aconst_null
astore 10
150: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 152
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 152
151: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Attempt to obtain subject failed!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
152: StackMap locals:
StackMap stack:
aload 10
ifnull 163
153: aload 10
ldc Ljava/security/Principal;
invokevirtual javax.security.auth.Subject.getPrincipals:(Ljava/lang/Class;)Ljava/util/Set;
154: astore 11
start local 11 155: aload 11
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 160
156: aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
157: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 166
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 166
158: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Subject identity is not the same"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
159: goto 166
160: StackMap locals: java.util.Set
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 166
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 166
161: 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 162: goto 166
163: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
164: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 166
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 166
165: 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 166: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getEndpointIdentificationAlgorithmSE:()Ljava/lang/String;
astore 8
start local 8 167: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 177
aload 8
ifnull 177
168: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
169: astore 9
start local 9 170: aload 8
aload 9
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 177
171: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 176
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 176
172: 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
173: 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;
174: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
175: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
176: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
end local 9 177: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 184
178: aload 7
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
astore 9
start local 9 179: aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 181
180: 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 183
181: StackMap locals: sun.security.ssl.CipherSuite
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.resumingSession:Z
182: goto 184
183: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
end local 9 184: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 189
185: aload 0
aload 7
putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
186: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 189
187: ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifne 188
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 189
188: 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 189: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 235
190: aload 0
getfield sun.security.ssl.ServerHandshaker.enableNewSession:Z
ifne 192
191: new javax.net.ssl.SSLException
dup
ldc "Client did not resume a session"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
192: StackMap locals:
StackMap stack:
aload 0
193: 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;
194: checkcast sun.security.ssl.EllipticCurvesExtension
putfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
195: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 215
196: aload 1
getfield sun.security.ssl.HandshakeMessage$ClientHello.extensions:Lsun/security/ssl/HelloExtensions;
197: getstatic sun.security.ssl.ExtensionType.EXT_SIGNATURE_ALGORITHMS:Lsun/security/ssl/ExtensionType;
198: invokevirtual sun.security.ssl.HelloExtensions.get:(Lsun/security/ssl/ExtensionType;)Lsun/security/ssl/HelloExtension;
checkcast sun.security.ssl.SignatureAlgorithmsExtension
199: astore 7
start local 7 200: aload 7
ifnull 215
201: aload 7
invokevirtual sun.security.ssl.SignatureAlgorithmsExtension.getSignAlgorithms:()Ljava/util/Collection;
202: astore 8
start local 8 203: aload 8
ifnull 204
aload 8
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 207
204: StackMap locals: sun.security.ssl.SignatureAlgorithmsExtension java.util.Collection
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
205: ldc "No peer supported signature algorithms"
206: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
207: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 8
208: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
209: astore 9
start local 9 210: aload 9
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 214
211: new javax.net.ssl.SSLHandshakeException
dup
212: ldc "No signature and hash algorithm in common"
213: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
214: StackMap locals: java.util.Collection
StackMap stack:
aload 0
aload 9
invokevirtual sun.security.ssl.ServerHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
end local 9 end local 8 end local 7 215: StackMap locals:
StackMap stack:
aload 0
216: new sun.security.ssl.SSLSessionImpl
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getstatic sun.security.ssl.CipherSuite.C_NULL:Lsun/security/ssl/CipherSuite;
217: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
218: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
219: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getHostAddressSE:()Ljava/lang/String;
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getPortSE:()I
220: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedToUseEMS:Z
ifeq 222
221: 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 222
iconst_1
goto 223
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 216 new 216 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection java.security.SecureRandom java.lang.String int
222: iconst_0
223: 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 216 new 216 sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite java.util.Collection 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/util/Collection;Ljava/security/SecureRandom;Ljava/lang/String;IZLjava/lang/String;)V
224: putfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
225: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 230
226: aload 0
getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
ifnull 230
227: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
228: aload 0
getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
229: invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
230: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ServerHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
231: aload 0
aload 1
invokevirtual sun.security.ssl.ServerHandshaker.chooseCipherSuite:(Lsun/security/ssl/HandshakeMessage$ClientHello;)V
232: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.SSLSessionImpl.setSuite:(Lsun/security/ssl/CipherSuite;)V
233: 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
234: goto 236
235: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.ServerHandshaker.setHandshakeSessionSE:(Lsun/security/ssl/SSLSessionImpl;)V
236: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 240
237: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 239
238: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aconst_null
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
239: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.prfAlg:Lsun/security/ssl/CipherSuite$PRF;
invokevirtual sun.security.ssl.CipherSuite$PRF.getPRFHashAlg:()Ljava/lang/String;
invokevirtual sun.security.ssl.HandshakeHash.setFinishedAlg:(Ljava/lang/String;)V
240: 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;
241: 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;
242: 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
243: aload 0
getfield sun.security.ssl.ServerHandshaker.secureRenegotiation:Z
ifeq 248
244: new sun.security.ssl.RenegotiationInfoExtension
dup
245: aload 0
getfield sun.security.ssl.ServerHandshaker.clientVerifyData:[B
aload 0
getfield sun.security.ssl.ServerHandshaker.serverVerifyData:[B
246: invokespecial sun.security.ssl.RenegotiationInfoExtension.<init>:([B[B)V
astore 7
start local 7 247: 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 248: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getUseExtendedMasterSecret:()Z
ifeq 250
249: 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
250: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 253
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 253
251: aload 5
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHello.print:(Ljava/io/PrintStream;)V
252: 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
253: 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
254: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 5
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
255: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifeq 259
256: 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
257: aload 0
iconst_0
invokevirtual sun.security.ssl.ServerHandshaker.sendChangeCipherAndFinish:(Z)V
258: return
259: 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 272
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 272
260: 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 270
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 270
261: aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
ifnonnull 263
262: new java.lang.RuntimeException
dup
ldc "no certificates"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
263: 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 264: 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
265: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 267
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 267
266: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateMsg.print:(Ljava/io/PrintStream;)V
267: 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
268: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
end local 7 269: goto 272
270: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
ifnull 272
271: new java.lang.RuntimeException
dup
ldc "anonymous keyexchange with certs"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
272: 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: 273
3: 275
4: 321
5: 321
6: 290
7: 290
8: 303
9: 319
10: 319
11: 305
12: 305
13: 305
14: 273
15: 273
default: 321
}
273: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 274: goto 322
end local 7 275: 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 288
276: new sun.security.ssl.HandshakeMessage$RSA_ServerKeyExchange
dup
277: aload 0
getfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
278: 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;
279: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
280: 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 281: aload 0
aload 0
getfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
282: goto 322
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
283: astore 8
start local 8 284: ldc "Error generating RSA server key exchange"
aload 8
285: invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
286: aconst_null
astore 7
end local 8 start local 7 287: goto 322
end local 7 288: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 289: goto 322
end local 7 290: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
291: aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
292: aload 0
getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
293: aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
294: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
295: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
296: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
297: invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;Lsun/security/ssl/ProtocolVersion;)V
astore 7
start local 7 298: goto 322
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
299: astore 8
start local 8 300: ldc "Error generating DH server key exchange"
aload 8
invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
301: aconst_null
astore 7
end local 8 start local 7 302: goto 322
end local 7 303: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokespecial sun.security.ssl.HandshakeMessage$DH_ServerKeyExchange.<init>:(Lsun/security/ssl/DHCrypt;Lsun/security/ssl/ProtocolVersion;)V
astore 7
start local 7 304: goto 322
end local 7 305: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
dup
aload 0
getfield sun.security.ssl.ServerHandshaker.ecdh:Lsun/security/ssl/ECDHCrypt;
306: aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
307: aload 0
getfield sun.security.ssl.ServerHandshaker.clnt_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
308: aload 0
getfield sun.security.ssl.ServerHandshaker.svr_random:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.random_bytes:[B
309: aload 0
getfield sun.security.ssl.ServerHandshaker.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
310: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
311: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
312: invokespecial sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>:(Lsun/security/ssl/ECDHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;Lsun/security/ssl/ProtocolVersion;)V
astore 7
start local 7 313: goto 322
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
314: astore 8
start local 8 315: ldc "Error generating ECDH server key exchange"
aload 8
316: invokestatic sun.security.ssl.ServerHandshaker.throwSSLException:(Ljava/lang/String;Ljava/lang/Throwable;)V
317: aconst_null
astore 7
end local 8 start local 7 318: goto 322
end local 7 319: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 320: goto 322
end local 7 321: 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 322: StackMap locals: sun.security.ssl.HandshakeMessage$ServerKeyExchange
StackMap stack:
aload 7
ifnull 327
323: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 325
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 325
324: aload 7
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerKeyExchange.print:(Ljava/io/PrintStream;)V
325: 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
326: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 7
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
327: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
ifeq 354
328: 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 354
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 354
329: 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 354
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 354
330: aconst_null
astore 10
start local 10 331: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 345
332: aload 0
invokevirtual sun.security.ssl.ServerHandshaker.getLocalSupportedSignAlgs:()Ljava/util/Collection;
astore 10
333: aload 10
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 337
334: new javax.net.ssl.SSLHandshakeException
dup
335: ldc "No supported signature algorithm"
336: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
337: 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.HandshakeMessage$ServerKeyExchange top top java.util.Collection
StackMap stack:
aload 10
338: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmNames:(Ljava/util/Collection;)Ljava/util/Set;
339: astore 11
start local 11 340: aload 11
invokeinterface java.util.Set.isEmpty:()Z
ifeq 344
341: new javax.net.ssl.SSLHandshakeException
dup
342: ldc "No supported signature algorithm"
343: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
344: StackMap locals: java.util.Set
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 11
invokevirtual sun.security.ssl.HandshakeHash.restrictCertificateVerifyAlgs:(Ljava/util/Set;)V
end local 11 345: 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;
invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
astore 9
start local 9 346: new sun.security.ssl.HandshakeMessage$CertificateRequest
dup
aload 9
aload 0
getfield sun.security.ssl.ServerHandshaker.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
347: aload 10
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
348: invokespecial sun.security.ssl.HandshakeMessage$CertificateRequest.<init>:([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
astore 8
start local 8 349: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 351
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 351
350: aload 8
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$CertificateRequest.print:(Ljava/io/PrintStream;)V
351: 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.HandshakeMessage$ServerKeyExchange sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[] java.util.Collection
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
352: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 8
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
end local 10 end local 9 end local 8 353: goto 356
354: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 356
355: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aconst_null
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
356: StackMap locals:
StackMap stack:
new sun.security.ssl.HandshakeMessage$ServerHelloDone
dup
invokespecial sun.security.ssl.HandshakeMessage$ServerHelloDone.<init>:()V
astore 8
start local 8 357: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 359
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 359
358: aload 8
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.ssl.HandshakeMessage$ServerHelloDone.print:(Ljava/io/PrintStream;)V
359: 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
360: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeState:Lsun/security/ssl/HandshakeStateManager;
aload 8
aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
invokevirtual sun.security.ssl.HandshakeStateManager.update:(Lsun/security/ssl/HandshakeMessage;Z)V
361: aload 0
getfield sun.security.ssl.ServerHandshaker.output:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
362: 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 363 0 this Lsun/security/ssl/ServerHandshaker;
0 363 1 mesg Lsun/security/ssl/HandshakeMessage$ClientHello;
3 363 2 renegotiationIndicated Z
4 363 3 cipherSuites Lsun/security/ssl/CipherSuiteList;
19 363 4 clientHelloRI Lsun/security/ssl/RenegotiationInfoExtension;
75 83 5 extendedMasterSecretExtension Lsun/security/ssl/ExtendedMasterSecretExtension;
85 363 5 m1 Lsun/security/ssl/HandshakeMessage$ServerHello;
88 363 6 selectedVersion Lsun/security/ssl/ProtocolVersion;
108 189 7 previous Lsun/security/ssl/SSLSessionImpl;
112 114 8 oldVersion Lsun/security/ssl/ProtocolVersion;
141 166 8 suite Lsun/security/ssl/CipherSuite;
144 166 9 localPrincipal Ljava/security/Principal;
145 166 10 subject Ljavax/security/auth/Subject;
155 162 11 principals Ljava/util/Set<Ljava/security/Principal;>;
167 189 8 identityAlg Ljava/lang/String;
170 177 9 sessionIdentityAlg Ljava/lang/String;
179 184 9 suite Lsun/security/ssl/CipherSuite;
200 215 7 signAlgs Lsun/security/ssl/SignatureAlgorithmsExtension;
203 215 8 peerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
210 215 9 supportedPeerSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
247 248 7 serverHelloRI Lsun/security/ssl/HelloExtension;
264 269 7 m2 Lsun/security/ssl/HandshakeMessage$CertificateMsg;
274 275 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
281 283 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
287 288 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
289 290 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
298 299 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
302 303 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
304 305 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
313 314 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
318 319 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
320 321 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
322 363 7 m3 Lsun/security/ssl/HandshakeMessage$ServerKeyExchange;
284 287 8 e Ljava/security/GeneralSecurityException;
300 302 8 e Ljava/security/GeneralSecurityException;
315 318 8 e Ljava/security/GeneralSecurityException;
349 353 8 m4 Lsun/security/ssl/HandshakeMessage$CertificateRequest;
346 353 9 caCerts [Ljava/security/cert/X509Certificate;
331 353 10 localSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
340 345 11 localHashAlgs Ljava/util/Set<Ljava/lang/String;>;
357 363 8 m5 Lsun/security/ssl/HandshakeMessage$ServerHelloDone;
Exception table:
from to target type
135 136 137 Class javax.net.ssl.SSLPeerUnverifiedException
145 147 148 Class java.security.PrivilegedActionException
276 282 283 Class java.security.GeneralSecurityException
290 298 299 Class java.security.GeneralSecurityException
305 313 314 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:Ljava/security/AlgorithmConstraints;
aconst_null
aload 3
getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
aconst_null
invokeinterface java.security.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=5, 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 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.supported:I
if_icmpge 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
astore 2
start local 2 9: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
10: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.certs:[Ljava/security/cert/X509Certificate;
11: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.dh:Lsun/security/ssl/DHCrypt;
12: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.tempPrivateKey:Ljava/security/PrivateKey;
13: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.tempPublicKey:Ljava/security/PublicKey;
14: aconst_null
astore 3
start local 3 15: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 43
16: aload 0
getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
ifnull 19
17: aload 0
getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
astore 3
18: goto 43
19: StackMap locals: sun.security.ssl.CipherSuite$KeyExchange java.util.Collection
StackMap stack:
aconst_null
astore 4
start local 4 20: 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 - 12
2: 21
3: 32
4: 21
5: 25
6: 25
7: 21
8: 32
9: 29
10: 21
11: 29
12: 21
default: 32
}
21: StackMap locals: sun.security.ssl.SignatureAndHashAlgorithm
StackMap stack:
getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
22: getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.RSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
iconst_0
23: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
astore 4
24: goto 32
25: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
26: getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.DSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
iconst_0
27: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
astore 4
28: goto 32
29: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.SHA1:Lsun/security/ssl/SignatureAndHashAlgorithm$HashAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm.value:I
30: getstatic sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.ECDSA:Lsun/security/ssl/SignatureAndHashAlgorithm$SignatureAlgorithm;
getfield sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm.value:I
iconst_0
31: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
astore 4
32: StackMap locals:
StackMap stack:
aload 4
ifnonnull 36
33: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
34: astore 3
35: goto 42
36: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
37: astore 3
38: aload 3
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
39: aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 3
40: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/Collection;)Ljava/util/Collection;
41: astore 3
42: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
aload 3
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
end local 4 43: StackMap locals:
StackMap stack:
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: 44
3: 46
4: 135
5: 135
6: 87
7: 53
8: 131
9: 125
10: 121
11: 104
12: 70
13: 133
14: 129
15: 129
default: 135
}
44: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 138
45: iconst_0
ireturn
46: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 48
47: iconst_0
ireturn
48: 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 138
49: aload 0
aload 1
getfield sun.security.ssl.CipherSuite.exportable:Z
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralRSAKeys:(Z)Z
ifne 138
50: iconst_0
ireturn
51: StackMap locals:
StackMap stack: java.lang.RuntimeException
pop
52: iconst_0
ireturn
53: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 55
54: iconst_0
ireturn
55: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 68
56: aload 0
57: aload 3
ldc "RSA"
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
58: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
59: putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
60: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
ifnonnull 68
61: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 67
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 67
62: getstatic java.lang.System.out:Ljava/io/PrintStream;
63: new java.lang.StringBuilder
dup
ldc "No signature and hash algorithm for cipher "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
64: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
65: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
66: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
67: StackMap locals:
StackMap stack:
iconst_0
ireturn
68: 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
69: goto 138
70: StackMap locals:
StackMap stack:
aload 0
ldc "RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 72
71: iconst_0
ireturn
72: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 85
73: aload 0
74: aload 3
ldc "RSA"
aload 0
getfield sun.security.ssl.ServerHandshaker.privateKey:Ljava/security/PrivateKey;
75: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;Ljava/security/PrivateKey;)Lsun/security/ssl/SignatureAndHashAlgorithm;
76: putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
77: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
ifnonnull 85
78: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 84
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 84
79: getstatic java.lang.System.out:Ljava/io/PrintStream;
80: new java.lang.StringBuilder
dup
ldc "No signature and hash algorithm for cipher "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
81: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
82: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
83: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
84: StackMap locals:
StackMap stack:
iconst_0
ireturn
85: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 138
86: iconst_0
ireturn
87: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 100
88: aload 0
89: aload 3
ldc "DSA"
90: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
91: putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
92: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
ifnonnull 100
93: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 99
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 99
94: getstatic java.lang.System.out:Ljava/io/PrintStream;
95: new java.lang.StringBuilder
dup
ldc "No signature and hash algorithm for cipher "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
96: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
97: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
98: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
99: StackMap locals:
StackMap stack:
iconst_0
ireturn
100: StackMap locals:
StackMap stack:
aload 0
ldc "DSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 102
101: iconst_0
ireturn
102: 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
103: goto 138
104: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 117
105: aload 0
106: aload 3
ldc "ECDSA"
107: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getPreferableAlgorithm:(Ljava/util/Collection;Ljava/lang/String;)Lsun/security/ssl/SignatureAndHashAlgorithm;
108: putfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
109: aload 0
getfield sun.security.ssl.ServerHandshaker.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
ifnonnull 117
110: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 116
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 116
111: getstatic java.lang.System.out:Ljava/io/PrintStream;
112: new java.lang.StringBuilder
dup
ldc "No signature and hash algorithm for cipher "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
113: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
114: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
115: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
116: StackMap locals:
StackMap stack:
iconst_0
ireturn
117: StackMap locals:
StackMap stack:
aload 0
ldc "EC_EC"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 119
118: iconst_0
ireturn
119: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 138
120: iconst_0
ireturn
121: StackMap locals:
StackMap stack:
aload 0
ldc "EC_RSA"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 123
122: iconst_0
ireturn
123: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
124: goto 138
125: StackMap locals:
StackMap stack:
aload 0
ldc "EC_EC"
invokevirtual sun.security.ssl.ServerHandshaker.setupPrivateKeyAndChain:(Ljava/lang/String;)Z
ifne 127
126: iconst_0
ireturn
127: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupStaticECDHKeys:()V
128: goto 138
129: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupKerberosKeys:()Z
ifne 138
130: iconst_0
ireturn
131: 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
132: goto 138
133: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys:()Z
ifne 138
134: iconst_0
ireturn
135: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
136: 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;
137: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
138: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.ServerHandshaker.setCipherSuite:(Lsun/security/ssl/CipherSuite;)V
139: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 142
140: aload 0
getfield sun.security.ssl.ServerHandshaker.peerSupportedSignAlgs:Ljava/util/Collection;
ifnonnull 142
141: aload 0
aload 3
invokevirtual sun.security.ssl.ServerHandshaker.setPeerSupportedSignAlgs:(Ljava/util/Collection;)V
142: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 143 0 this Lsun/security/ssl/ServerHandshaker;
0 143 1 suite Lsun/security/ssl/CipherSuite;
9 143 2 keyExchange Lsun/security/ssl/CipherSuite$KeyExchange;
15 143 3 supportedSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
20 43 4 algorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
Exception table:
from to target type
48 50 51 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/EllipticCurvesExtension;
ifnull 2
1: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
invokevirtual sun.security.ssl.EllipticCurvesExtension.getPreferredCurve:(Ljava/security/AlgorithmConstraints;)I
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.algorithmConstraints:Ljava/security/AlgorithmConstraints;
invokestatic sun.security.ssl.EllipticCurvesExtension.getActiveCurves:(Ljava/security/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.EllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
istore 9
start local 9 23: iload 9
ifle 25
iload 9
invokestatic sun.security.ssl.EllipticCurvesExtension.isSupported:(I)Z
ifeq 25
24: aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
ifnull 26
aload 0
getfield sun.security.ssl.ServerHandshaker.requestedCurves:Lsun/security/ssl/EllipticCurvesExtension;
iload 9
invokevirtual sun.security.ssl.EllipticCurvesExtension.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=6, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
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.crypto.SecretKey[]
putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
6: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
ifnull 30
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
arraylength
ifle 30
7: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 15
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 15
8: aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 14
StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext top int int javax.crypto.SecretKey[]
StackMap stack:
9: aload 5
iload 3
aaload
astore 2
start local 2 10: 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
11: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 2 13: iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
iload 4
if_icmplt 9
15: StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
iconst_0
aaload
invokestatic sun.security.ssl.Krb5Helper.getServerPrincipalName:(Ljavax/crypto/SecretKey;)Ljava/lang/String;
16: astore 2
start local 2 17: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 18: aload 3
ifnull 30
19: aload 3
20: aload 2
ldc "accept"
21: invokestatic sun.security.ssl.Krb5Helper.getServicePermission:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Permission;
22: aload 1
23: invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
24: goto 30
StackMap locals: sun.security.ssl.ServerHandshaker java.security.AccessControlContext java.lang.String java.lang.SecurityManager
StackMap stack: java.lang.SecurityException
25: pop
26: aload 0
aconst_null
putfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
27: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 29
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 29
28: 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
29: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 30: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
ifnull 31
aload 0
getfield sun.security.ssl.ServerHandshaker.kerberosKeys:[Ljavax/crypto/SecretKey;
arraylength
ifle 31
iconst_1
ireturn
StackMap locals:
StackMap stack:
31: iconst_0
32: ireturn
end local 1 33: StackMap locals: sun.security.ssl.ServerHandshaker
StackMap stack: java.security.PrivilegedActionException
astore 1
start local 1 34: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 38
ldc "handshake"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 38
35: 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
36: 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;
37: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
38: StackMap locals: java.security.PrivilegedActionException
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/security/ssl/ServerHandshaker;
3 33 1 acc Ljava/security/AccessControlContext;
10 13 2 k Ljavax/crypto/SecretKey;
17 30 2 serverPrincipal Ljava/lang/String;
18 30 3 sm Ljava/lang/SecurityManager;
34 39 1 e Ljava/security/PrivilegedActionException;
Exception table:
from to target type
18 24 25 Class java.lang.SecurityException
2 29 33 Class java.security.PrivilegedActionException
30 32 33 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:()Ljava/security/Principal;
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:()Ljava/security/Principal;
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrincipal:(Ljava/security/Principal;)V
4: aload 1
invokevirtual sun.security.ssl.KerberosClientKeyExchange.getUnencryptedPreMasterSecret:()[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:Ljava/security/AlgorithmConstraints;
aload 2
invokevirtual sun.security.ssl.DHCrypt.checkConstraints:(Ljava/security/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:Ljava/security/AlgorithmConstraints;
aload 2
invokevirtual sun.security.ssl.ECDHCrypt.checkConstraints:(Ljava/security/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.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 16
3: aload 1
invokevirtual sun.security.ssl.HandshakeMessage$CertificateVerify.getPreferableSignatureAlgorithm:()Lsun/security/ssl/SignatureAndHashAlgorithm;
4: astore 2
start local 2 5: aload 2
ifnonnull 9
6: new javax.net.ssl.SSLHandshakeException
dup
7: ldc "Illegal CertificateVerify message"
8: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: sun.security.ssl.SignatureAndHashAlgorithm
StackMap stack:
aload 2
invokestatic sun.security.ssl.SignatureAndHashAlgorithm.getHashAlgorithmName:(Lsun/security/ssl/SignatureAndHashAlgorithm;)Ljava/lang/String;
10: astore 3
start local 3 11: aload 3
ifnull 12
aload 3
invokevirtual java.lang.String.length:()I
ifne 15
12: StackMap locals: java.lang.String
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
13: ldc "No supported hash algorithm"
14: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 3
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
end local 3 end local 2 16: 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;
17: astore 2
start local 2 18: 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;
19: aload 2
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
20: 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 21: iload 3
ifne 30
22: aload 0
bipush 42
23: ldc "certificate verify message signature error"
24: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
end local 3 end local 2 25: goto 30
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
26: astore 2
start local 2 27: aload 0
bipush 42
28: ldc "certificate verify format error"
aload 2
29: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;Ljava/lang/Throwable;)V
end local 2 30: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
31: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/ssl/ServerHandshaker;
0 32 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateVerify;
5 16 2 signAlg Lsun/security/ssl/SignatureAndHashAlgorithm;
11 16 3 hashAlg Ljava/lang/String;
18 25 2 publicKey Ljava/security/PublicKey;
21 25 3 valid Z
27 30 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
16 25 26 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=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.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.handshakeHash:Lsun/security/ssl/HandshakeHash;
iconst_1
9: 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/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 21
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: goto 22
21: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.handshakeFinished:Z
22: 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
23: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifne 31
aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 31
24: 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
25: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
26: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 38
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 38
27: getstatic java.lang.System.out:Ljava/io/PrintStream;
28: 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;
29: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
30: goto 38
StackMap locals:
StackMap stack:
31: aload 0
getfield sun.security.ssl.ServerHandshaker.resumingSession:Z
ifne 38
32: getstatic sun.security.ssl.ServerHandshaker.debug:Lsun/security/ssl/Debug;
ifnull 38
ldc "session"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 38
33: getstatic java.lang.System.out:Ljava/io/PrintStream;
34: new java.lang.StringBuilder
dup
ldc "%% Didn't cache non-resumable server session: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
35: aload 0
getfield sun.security.ssl.ServerHandshaker.session:Lsun/security/ssl/SSLSessionImpl;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
36: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/security/ssl/ServerHandshaker;
0 39 1 mesg Lsun/security/ssl/HandshakeMessage$Finished;
11 39 2 verified Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
private void sendChangeCipherAndFinish(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.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;
aload 0
getfield sun.security.ssl.ServerHandshaker.cipherSuite:Lsun/security/ssl/CipherSuite;
3: invokespecial sun.security.ssl.HandshakeMessage$Finished.<init>:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/HandshakeHash;ILjavax/crypto/SecretKey;Lsun/security/ssl/CipherSuite;)V
astore 2
start local 2 4: aload 0
aload 2
iload 1
invokevirtual sun.security.ssl.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:
return
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 finishedTag Z
4 8 2 mesg Lsun/security/ssl/HandshakeMessage$Finished;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
finishedTag
sun.security.ssl.HandshakeMessage getKickstartMessage();
descriptor: ()Lsun/security/ssl/HandshakeMessage;
flags: (0x0000)
Code:
stack=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=4, locals=7, 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 11
4: aload 0
getfield sun.security.ssl.ServerHandshaker.doClientAuth:B
iconst_1
if_icmpne 8
5: aload 0
getfield sun.security.ssl.ServerHandshaker.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 7
6: aload 0
getfield sun.security.ssl.ServerHandshaker.handshakeHash:Lsun/security/ssl/HandshakeHash;
aconst_null
invokevirtual sun.security.ssl.HandshakeHash.setCertificateVerifyAlg:(Ljava/lang/String;)V
7: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aload 0
bipush 42
9: ldc "null cert chain"
10: invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/String;)V
11: 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 12: aload 2
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 4
start local 4 13: aload 4
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
astore 5
start local 5 14: aload 5
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: ldc "RSA"
astore 6
start local 6 16: goto 24
end local 6 StackMap locals: javax.net.ssl.X509TrustManager java.security.PublicKey java.lang.String
StackMap stack:
17: aload 5
ldc "DSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: ldc "DSA"
astore 6
start local 6 19: goto 24
end local 6 StackMap locals:
StackMap stack:
20: aload 5
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
21: ldc "EC"
astore 6
start local 6 22: goto 24
end local 6 23: StackMap locals:
StackMap stack:
ldc "UNKNOWN"
astore 6
start local 6 24: StackMap locals: java.lang.String
StackMap stack:
aload 3
instanceof javax.net.ssl.X509ExtendedTrustManager
ifeq 38
25: aload 0
getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
ifnull 32
26: aload 3
checkcast javax.net.ssl.X509ExtendedTrustManager
27: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
28: aload 6
29: aload 0
getfield sun.security.ssl.ServerHandshaker.conn:Lsun/security/ssl/SSLSocketImpl;
30: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
31: goto 43
32: StackMap locals:
StackMap stack:
aload 3
checkcast javax.net.ssl.X509ExtendedTrustManager
33: aload 2
invokevirtual java.security.cert.X509Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate[]
34: aload 6
35: aload 0
getfield sun.security.ssl.ServerHandshaker.engine:Lsun/security/ssl/SSLEngineImpl;
36: invokevirtual javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
37: goto 43
38: StackMap locals:
StackMap stack:
new java.security.cert.CertificateException
dup
39: ldc "Improper X509TrustManager implementation"
40: invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 4 41: 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
astore 4
start local 4 42: aload 0
bipush 46
aload 4
invokevirtual sun.security.ssl.ServerHandshaker.fatalSE:(BLjava/lang/Throwable;)V
end local 4 43: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.ServerHandshaker.needClientVerify:Z
44: 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
45: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lsun/security/ssl/ServerHandshaker;
0 46 1 mesg Lsun/security/ssl/HandshakeMessage$CertificateMsg;
3 46 2 peerCerts [Ljava/security/cert/X509Certificate;
12 46 3 tm Ljavax/net/ssl/X509TrustManager;
13 41 4 key Ljava/security/PublicKey;
14 41 5 keyAlgorithm Ljava/lang/String;
16 17 6 authType Ljava/lang/String;
19 20 6 authType Ljava/lang/String;
22 23 6 authType Ljava/lang/String;
24 41 6 authType Ljava/lang/String;
42 43 4 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
12 41 41 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mesg
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 PRF = sun.security.ssl.CipherSuite$PRF of sun.security.ssl.CipherSuite
final CertificateMsg = sun.security.ssl.HandshakeMessage$CertificateMsg of sun.security.ssl.HandshakeMessage
final CertificateRequest = sun.security.ssl.HandshakeMessage$CertificateRequest of sun.security.ssl.HandshakeMessage
final 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
final HashAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$HashAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm
final SignatureAlgorithm = sun.security.ssl.SignatureAndHashAlgorithm$SignatureAlgorithm of sun.security.ssl.SignatureAndHashAlgorithm