final class sun.security.ssl.ServerHello$T12ServerHelloProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ServerHello$T12ServerHelloProducer
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ServerHello$T12ServerHelloProducer;
public byte[] produce(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
astore 3
start local 3 1: aload 2
checkcast sun.security.ssl.ClientHello$ClientHelloMessage
astore 4
start local 4 2: aload 3
getfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
ifeq 3
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 69
3: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
ifne 7
4: new javax.net.ssl.SSLException
dup
5: ldc "Not resumption, and no new session is allowed"
6: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
ifnonnull 13
8: aload 3
9: aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
10: aload 3
getfield sun.security.ssl.ServerHandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 3
getfield sun.security.ssl.ServerHandshakeContext.activeProtocols:Ljava/util/List;
11: invokestatic sun.security.ssl.SignatureScheme.getSupportedAlgorithms:(Lsun/security/ssl/SSLConfiguration;Ljava/security/AlgorithmConstraints;Ljava/util/List;)Ljava/util/List;
12: putfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
13: StackMap locals:
StackMap stack:
new sun.security.ssl.SSLSessionImpl
dup
aload 3
getstatic sun.security.ssl.CipherSuite.C_NULL:Lsun/security/ssl/CipherSuite;
invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/CipherSuite;)V
14: astore 5
start local 5 15: aload 5
aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
16: aload 3
aload 5
putfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
17: aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
18: getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
19: invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Lsun/security/ssl/ProtocolVersion;)[Lsun/security/ssl/SSLExtension;
20: astore 6
start local 6 21: aload 4
getfield sun.security.ssl.ClientHello$ClientHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
aload 3
aload 6
invokevirtual sun.security.ssl.SSLExtensions.consumeOnTrade:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
22: aload 3
aload 4
invokestatic sun.security.ssl.ServerHello$T12ServerHelloProducer.chooseCipherSuite:(Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/ServerHello$T12ServerHelloProducer$KeyExchangeProperties;
23: astore 7
start local 7 24: aload 7
ifnonnull 28
25: aload 3
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
26: ldc "no cipher suites in common"
27: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
28: StackMap locals: sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties
StackMap stack:
aload 3
aload 7
getfield sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.cipherSuite:Lsun/security/ssl/CipherSuite;
putfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
29: aload 3
aload 7
getfield sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.keyExchange:Lsun/security/ssl/SSLKeyExchange;
putfield sun.security.ssl.ServerHandshakeContext.handshakeKeyExchange:Lsun/security/ssl/SSLKeyExchange;
30: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 7
getfield sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.cipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.SSLSessionImpl.setSuite:(Lsun/security/ssl/CipherSuite;)V
31: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
32: aload 7
getfield sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.possessions:[Lsun/security/ssl/SSLPossession;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
33: invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
34: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
35: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
36: invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
37: aload 3
aload 3
invokestatic sun.security.ssl.StatusResponseManager.processStapling:(Lsun/security/ssl/ServerHandshakeContext;)Lsun/security/ssl/StatusResponseManager$StaplingParameters;
putfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
38: aload 3
aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
ifnull 39
iconst_1
goto 40
StackMap locals:
StackMap stack: sun.security.ssl.ServerHandshakeContext
39: iconst_0
StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties
StackMap stack: sun.security.ssl.ServerHandshakeContext int
40: putfield sun.security.ssl.ServerHandshakeContext.staplingActive:Z
41: aload 7
getfield sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.keyExchange:Lsun/security/ssl/SSLKeyExchange;
astore 8
start local 8 42: aload 8
ifnull 50
43: aload 8
aload 3
invokevirtual sun.security.ssl.SSLKeyExchange.getHandshakeProducers:(Lsun/security/ssl/HandshakeContext;)[Ljava/util/Map$Entry;
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 49
StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties sun.security.ssl.SSLKeyExchange top int int java.util.Map$Entry[]
StackMap stack:
44: aload 12
iload 10
aaload
astore 9
start local 9 45: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
46: aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Byte
aload 9
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeProducer
47: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 48: iinc 10 1
StackMap locals:
StackMap stack:
49: iload 10
iload 11
if_icmplt 44
50: StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties sun.security.ssl.SSLKeyExchange
StackMap stack:
aload 8
ifnull 65
51: aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
52: getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
53: if_acmpeq 65
54: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.CipherSuite.isAnonymous:()Z
ifne 65
55: aload 8
aload 3
invokevirtual sun.security.ssl.SSLKeyExchange.getRelatedHandshakers:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLHandshake;
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 64
StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties sun.security.ssl.SSLKeyExchange top int int sun.security.ssl.SSLHandshake[]
StackMap stack:
56: aload 12
iload 10
aaload
astore 9
start local 9 57: aload 9
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
if_acmpne 63
58: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
59: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
60: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
61: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
62: goto 65
end local 9 63: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
64: iload 10
iload 11
if_icmplt 56
65: StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties sun.security.ssl.SSLKeyExchange
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO_DONE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
66: getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO_DONE:Lsun/security/ssl/SSLHandshake;
67: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 6 end local 5 68: goto 88
69: StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.statelessResumption:Z
ifeq 80
70: aload 3
71: new sun.security.ssl.SSLSessionImpl
dup
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
72: aload 4
getfield sun.security.ssl.ClientHello$ClientHelloMessage.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.length:()I
ifne 77
73: new sun.security.ssl.SessionId
dup
iconst_1
74: aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
75: invokespecial sun.security.ssl.SessionId.<init>:(ZLjava/security/SecureRandom;)V
76: goto 78
77: StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage
StackMap stack: sun.security.ssl.ServerHandshakeContext new 71 new 71 sun.security.ssl.SSLSessionImpl
new sun.security.ssl.SessionId
dup
aload 4
getfield sun.security.ssl.ClientHello$ClientHelloMessage.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.getId:()[B
invokespecial sun.security.ssl.SessionId.<init>:([B)V
StackMap locals: sun.security.ssl.ServerHello$T12ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage
StackMap stack: sun.security.ssl.ServerHandshakeContext new 71 new 71 sun.security.ssl.SSLSessionImpl sun.security.ssl.SessionId
78: invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/SessionId;)V
79: putfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
80: StackMap locals:
StackMap stack:
aload 3
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
putfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
81: aload 3
82: aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
83: putfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
84: aload 3
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
putfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
85: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
86: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
87: invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
88: StackMap locals:
StackMap stack:
new sun.security.ssl.ServerHello$ServerHelloMessage
dup
aload 3
89: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
90: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
91: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
92: new sun.security.ssl.RandomCookie
dup
aload 3
invokespecial sun.security.ssl.RandomCookie.<init>:(Lsun/security/ssl/HandshakeContext;)V
93: aload 4
94: invokespecial sun.security.ssl.ServerHello$ServerHelloMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuite;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/ClientHello$ClientHelloMessage;)V
astore 5
start local 5 95: aload 3
aload 5
getfield sun.security.ssl.ServerHello$ServerHelloMessage.serverRandom:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
96: aload 3
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
97: getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
98: invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Lsun/security/ssl/ProtocolVersion;)[Lsun/security/ssl/SSLExtension;
99: astore 6
start local 6 100: aload 5
getfield sun.security.ssl.ServerHello$ServerHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
aload 3
aload 6
invokevirtual sun.security.ssl.SSLExtensions.produce:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
101: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 103
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 103
102: ldc "Produced ServerHello handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
103: StackMap locals: sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[]
StackMap stack:
aload 5
aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.ServerHello$ServerHelloMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
104: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
105: aload 3
getfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
ifeq 120
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 120
106: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokestatic sun.security.ssl.SSLTrafficKeyDerivation.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLTrafficKeyDerivation;
107: astore 7
start local 7 108: aload 7
ifnonnull 114
109: aload 3
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
110: new java.lang.StringBuilder
dup
ldc "Not supported key derivation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
111: aload 3
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
112: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
113: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
114: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation
StackMap stack:
aload 3
aload 7
115: aload 3
aload 3
getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getMasterSecret:()Ljavax/crypto/SecretKey;
116: invokevirtual sun.security.ssl.SSLTrafficKeyDerivation.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)Lsun/security/ssl/SSLKeyDerivation;
putfield sun.security.ssl.ServerHandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
117: aload 3
getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
118: getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
119: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 120: StackMap locals:
StackMap stack:
aconst_null
areturn
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 121 0 this Lsun/security/ssl/ServerHello$T12ServerHelloProducer;
0 121 1 context Lsun/security/ssl/ConnectionContext;
0 121 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 121 3 shc Lsun/security/ssl/ServerHandshakeContext;
2 121 4 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
15 68 5 session Lsun/security/ssl/SSLSessionImpl;
21 68 6 enabledExtensions [Lsun/security/ssl/SSLExtension;
24 68 7 credentials Lsun/security/ssl/ServerHello$T12ServerHelloProducer$KeyExchangeProperties;
42 68 8 ke Lsun/security/ssl/SSLKeyExchange;
45 48 9 me Ljava/util/Map$Entry<Ljava/lang/Byte;Lsun/security/ssl/HandshakeProducer;>;
57 63 9 hs Lsun/security/ssl/SSLHandshake;
95 121 5 shm Lsun/security/ssl/ServerHello$ServerHelloMessage;
100 121 6 serverHelloExtensions [Lsun/security/ssl/SSLExtension;
108 120 7 kdg Lsun/security/ssl/SSLTrafficKeyDerivation;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
private static sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties chooseCipherSuite(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage);
descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/ServerHello$T12ServerHelloProducer$KeyExchangeProperties;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.preferLocalCipherSuites:Z
ifeq 4
1: aload 0
getfield sun.security.ssl.ServerHandshakeContext.activeCipherSuites:Ljava/util/List;
astore 2
start local 2 2: aload 1
getfield sun.security.ssl.ClientHello$ClientHelloMessage.cipherSuites:Ljava/util/List;
astore 3
start local 3 3: goto 6
end local 3 end local 2 4: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ClientHello$ClientHelloMessage.cipherSuites:Ljava/util/List;
astore 2
start local 2 5: aload 0
getfield sun.security.ssl.ServerHandshakeContext.activeCipherSuites:Ljava/util/List;
astore 3
start local 3 6: StackMap locals: java.util.List java.util.List
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 4
start local 4 7: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 35
StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List java.util.List top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 5
start local 5 9: aload 3
aload 0
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 5
10: invokestatic sun.security.ssl.HandshakeContext.isNegotiable:(Ljava/util/List;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)Z
11: ifne 13
12: goto 35
13: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List java.util.List sun.security.ssl.CipherSuite java.util.Iterator
StackMap stack:
aload 0
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
14: getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
15: if_acmpne 19
16: aload 5
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 35
17: aload 5
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 19
18: goto 35
19: StackMap locals:
StackMap stack:
aload 5
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
aload 0
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
20: invokestatic sun.security.ssl.SSLKeyExchange.valueOf:(Lsun/security/ssl/CipherSuite$KeyExchange;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLKeyExchange;
astore 7
start local 7 21: aload 7
ifnonnull 23
22: goto 35
23: StackMap locals: sun.security.ssl.SSLKeyExchange
StackMap stack:
getstatic sun.security.ssl.ServerHandshakeContext.legacyAlgorithmConstraints:Ljava/security/AlgorithmConstraints;
24: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
aload 5
getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
aconst_null
25: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
26: ifne 29
27: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
28: goto 35
29: StackMap locals:
StackMap stack:
aload 7
aload 0
invokevirtual sun.security.ssl.SSLKeyExchange.createPossessions:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLPossession;
astore 8
start local 8 30: aload 8
ifnull 35
aload 8
arraylength
ifne 32
31: goto 35
32: StackMap locals: sun.security.ssl.SSLPossession[]
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 34
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 34
33: new java.lang.StringBuilder
dup
ldc "use cipher suite "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
34: StackMap locals:
StackMap stack:
new sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties
dup
aload 5
aload 7
aload 8
invokespecial sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.<init>:(Lsun/security/ssl/CipherSuite;Lsun/security/ssl/SSLKeyExchange;[Lsun/security/ssl/SSLPossession;)V
areturn
end local 8 end local 7 end local 5 35: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
36: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 47
StackMap locals:
StackMap stack:
37: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 5
start local 5 38: aload 5
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
aload 0
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
39: invokestatic sun.security.ssl.SSLKeyExchange.valueOf:(Lsun/security/ssl/CipherSuite$KeyExchange;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLKeyExchange;
astore 7
start local 7 40: aload 7
ifnull 47
41: aload 7
aload 0
invokevirtual sun.security.ssl.SSLKeyExchange.createPossessions:(Lsun/security/ssl/HandshakeContext;)[Lsun/security/ssl/SSLPossession;
astore 8
start local 8 42: aload 8
ifnull 47
aload 8
arraylength
ifeq 47
43: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 46
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 46
44: new java.lang.StringBuilder
dup
ldc "use legacy cipher suite "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
45: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
46: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List java.util.List sun.security.ssl.CipherSuite java.util.Iterator sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLPossession[]
StackMap stack:
new sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties
dup
aload 5
aload 7
aload 8
invokespecial sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties.<init>:(Lsun/security/ssl/CipherSuite;Lsun/security/ssl/SSLKeyExchange;[Lsun/security/ssl/SSLPossession;)V
areturn
end local 8 end local 7 end local 5 47: StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
48: aload 0
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
49: ldc "no cipher suites in common"
50: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 shc Lsun/security/ssl/ServerHandshakeContext;
0 51 1 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
2 4 2 preferred Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
5 51 2 preferred Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
3 4 3 proposed Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
6 51 3 proposed Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
7 51 4 legacySuites Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
9 35 5 cs Lsun/security/ssl/CipherSuite;
21 35 7 ke Lsun/security/ssl/SSLKeyExchange;
30 35 8 hcds [Lsun/security/ssl/SSLPossession;
38 47 5 cs Lsun/security/ssl/CipherSuite;
40 47 7 ke Lsun/security/ssl/SSLKeyExchange;
42 47 8 hcds [Lsun/security/ssl/SSLPossession;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
shc
clientHello
}
SourceFile: "ServerHello.java"
NestHost: sun.security.ssl.ServerHello
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final ServerHelloMessage = sun.security.ssl.ServerHello$ServerHelloMessage of sun.security.ssl.ServerHello
private final T12ServerHelloProducer = sun.security.ssl.ServerHello$T12ServerHelloProducer of sun.security.ssl.ServerHello
private final KeyExchangeProperties = sun.security.ssl.ServerHello$T12ServerHelloProducer$KeyExchangeProperties of sun.security.ssl.ServerHello$T12ServerHelloProducer
final StaplingParameters = sun.security.ssl.StatusResponseManager$StaplingParameters of sun.security.ssl.StatusResponseManager