final class sun.security.ssl.ServerHello$T13ServerHelloConsumer implements sun.security.ssl.HandshakeConsumer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ServerHello$T13ServerHelloConsumer
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 // sun.security.ssl.ServerHello$T13ServerHelloConsumer this
0: .line 1180
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1182
return
end local 0 // sun.security.ssl.ServerHello$T13ServerHelloConsumer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ServerHello$T13ServerHelloConsumer;
public void consume(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=24, args_size=3
start local 0 // sun.security.ssl.ServerHello$T13ServerHelloConsumer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 1188
aload 1 /* context */
checkcast sun.security.ssl.ClientHandshakeContext
astore 3 /* chc */
start local 3 // sun.security.ssl.ClientHandshakeContext chc
1: .line 1189
aload 2 /* message */
checkcast sun.security.ssl.ServerHello$ServerHelloMessage
astore 4 /* serverHello */
start local 4 // sun.security.ssl.ServerHello$ServerHelloMessage serverHello
2: .line 1190
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.serverVersion:Lsun/security/ssl/ProtocolVersion;
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 6
3: .line 1191
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.PROTOCOL_VERSION:Lsun/security/ssl/Alert;
4: .line 1192
ldc "The ServerHello.legacy_version field is not TLS 1.2"
5: .line 1191
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
6: .line 1195
StackMap locals: sun.security.ssl.ClientHandshakeContext sun.security.ssl.ServerHello$ServerHelloMessage
StackMap stack:
aload 3 /* chc */
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.cipherSuite:Lsun/security/ssl/CipherSuite;
putfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
7: .line 1196
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
8: .line 1197
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
9: .line 1196
invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
10: .line 1198
aload 3 /* chc */
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.serverRandom:Lsun/security/ssl/RandomCookie;
putfield sun.security.ssl.ClientHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
11: .line 1205
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
12: .line 1206
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
13: .line 1205
invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;)[Lsun/security/ssl/SSLExtension;
astore 5 /* extTypes */
start local 5 // sun.security.ssl.SSLExtension[] extTypes
14: .line 1207
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
aload 3 /* chc */
aload 5 /* extTypes */
invokevirtual sun.security.ssl.SSLExtensions.consumeOnLoad:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
15: .line 1208
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.isResumption:Z
ifne 31
16: .line 1209
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 19
17: .line 1211
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
18: .line 1212
aload 3 /* chc */
aconst_null
putfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
19: .line 1215
StackMap locals: sun.security.ssl.SSLExtension[]
StackMap stack:
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
ifne 23
20: .line 1216
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.PROTOCOL_VERSION:Lsun/security/ssl/Alert;
21: .line 1217
ldc "New session creation is disabled"
22: .line 1216
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
23: .line 1219
StackMap locals:
StackMap stack:
aload 3 /* chc */
new sun.security.ssl.SSLSessionImpl
dup
aload 3 /* chc */
24: .line 1220
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
25: .line 1221
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.sessionId:Lsun/security/ssl/SessionId;
invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/CipherSuite;Lsun/security/ssl/SessionId;)V
26: .line 1219
putfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
27: .line 1222
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
28: .line 1223
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
29: .line 1222
invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
30: .line 1224
goto 39
31: .line 1227
StackMap locals:
StackMap stack:
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.consumePreSharedKey:()Ljava/util/Optional;
32: .line 1226
astore 6 /* psk */
start local 6 // java.util.Optional psk
33: .line 1228
aload 6 /* psk */
invokevirtual java.util.Optional.isPresent:()Z
ifne 37
34: .line 1229
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
35: .line 1230
ldc "No PSK available. Unable to resume."
36: .line 1229
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
37: .line 1233
StackMap locals: java.util.Optional
StackMap stack:
aload 3 /* chc */
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
putfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
38: .line 1235
aload 3 /* chc */
aload 6 /* psk */
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast javax.crypto.SecretKey
invokestatic sun.security.ssl.ServerHello.setUpPskKD:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
end local 6 // java.util.Optional psk
39: .line 1241
StackMap locals:
StackMap stack:
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
aload 3 /* chc */
aload 5 /* extTypes */
invokevirtual sun.security.ssl.SSLExtensions.consumeOnTrade:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
40: .line 1245
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.update:()V
41: .line 1247
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeKeyExchange:Lsun/security/ssl/SSLKeyExchange;
astore 6 /* ke */
start local 6 // sun.security.ssl.SSLKeyExchange ke
42: .line 1248
aload 6 /* ke */
ifnonnull 46
43: .line 1250
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
44: .line 1251
ldc "Not negotiated key shares"
45: .line 1250
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
46: .line 1254
StackMap locals: sun.security.ssl.SSLKeyExchange
StackMap stack:
aload 6 /* ke */
aload 3 /* chc */
invokevirtual sun.security.ssl.SSLKeyExchange.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
astore 7 /* handshakeKD */
start local 7 // sun.security.ssl.SSLKeyDerivation handshakeKD
47: .line 1255
aload 7 /* handshakeKD */
48: .line 1256
ldc "TlsHandshakeSecret"
aconst_null
49: .line 1255
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 8 /* handshakeSecret */
start local 8 // javax.crypto.SecretKey handshakeSecret
50: .line 1258
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokestatic sun.security.ssl.SSLTrafficKeyDerivation.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLTrafficKeyDerivation;
51: .line 1257
astore 9 /* kdg */
start local 9 // sun.security.ssl.SSLTrafficKeyDerivation kdg
52: .line 1259
aload 9 /* kdg */
ifnonnull 58
53: .line 1261
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
54: .line 1262
new java.lang.StringBuilder
dup
ldc "Not supported key derivation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
55: .line 1263
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
56: .line 1262
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: .line 1261
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
58: .line 1267
StackMap locals: sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation
StackMap stack:
new sun.security.ssl.SSLSecretDerivation
dup
aload 3 /* chc */
aload 8 /* handshakeSecret */
invokespecial sun.security.ssl.SSLSecretDerivation.<init>:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
59: .line 1266
astore 10 /* secretKD */
start local 10 // sun.security.ssl.SSLKeyDerivation secretKD
60: .line 1270
aload 10 /* secretKD */
61: .line 1271
ldc "TlsServerHandshakeTrafficSecret"
aconst_null
62: .line 1270
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 11 /* readSecret */
start local 11 // javax.crypto.SecretKey readSecret
63: .line 1274
aload 9 /* kdg */
aload 3 /* chc */
aload 11 /* readSecret */
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)Lsun/security/ssl/SSLKeyDerivation;
64: .line 1273
astore 12 /* readKD */
start local 12 // sun.security.ssl.SSLKeyDerivation readKD
65: .line 1275
aload 12 /* readKD */
66: .line 1276
ldc "TlsKey"
aconst_null
67: .line 1275
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 13 /* readKey */
start local 13 // javax.crypto.SecretKey readKey
68: .line 1277
aload 12 /* readKD */
69: .line 1278
ldc "TlsIv"
aconst_null
70: .line 1277
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 14 /* readIvSecret */
start local 14 // javax.crypto.SecretKey readIvSecret
71: .line 1280
new javax.crypto.spec.IvParameterSpec
dup
aload 14 /* readIvSecret */
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
72: .line 1279
astore 15 /* readIv */
start local 15 // javax.crypto.spec.IvParameterSpec readIv
73: .line 1284
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
74: .line 1285
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/Authenticator;
75: .line 1286
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 13 /* readKey */
aload 15 /* readIv */
76: .line 1287
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
77: .line 1284
invokevirtual sun.security.ssl.SSLCipher.createReadCipher:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/ProtocolVersion;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLCipher$SSLReadCipher;
78: .line 1283
astore 16 /* readCipher */
start local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
79: .line 1288
goto 84
end local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloConsumer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[] sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec
StackMap stack: java.security.GeneralSecurityException
80: astore 17 /* gse */
start local 17 // java.security.GeneralSecurityException gse
81: .line 1290
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
82: .line 1291
ldc "Missing cipher algorithm"
aload 17 /* gse */
83: .line 1290
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 17 // java.security.GeneralSecurityException gse
start local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
84: .line 1294
StackMap locals: sun.security.ssl.SSLCipher$SSLReadCipher
StackMap stack:
aload 16 /* readCipher */
ifnonnull 91
85: .line 1295
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
86: .line 1296
new java.lang.StringBuilder
dup
ldc "Illegal cipher suite ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
87: .line 1297
ldc ") and protocol version ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
88: .line 1298
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
89: .line 1296
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
90: .line 1295
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
91: .line 1301
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 11 /* readSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseReadSecret:Ljavax/crypto/SecretKey;
92: .line 1302
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
aload 16 /* readCipher */
invokevirtual sun.security.ssl.InputRecord.changeReadCiphers:(Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
93: .line 1305
aload 10 /* secretKD */
94: .line 1306
ldc "TlsClientHandshakeTrafficSecret"
aconst_null
95: .line 1305
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 17 /* writeSecret */
start local 17 // javax.crypto.SecretKey writeSecret
96: .line 1308
aload 9 /* kdg */
aload 3 /* chc */
aload 17 /* writeSecret */
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)Lsun/security/ssl/SSLKeyDerivation;
97: .line 1307
astore 18 /* writeKD */
start local 18 // sun.security.ssl.SSLKeyDerivation writeKD
98: .line 1309
aload 18 /* writeKD */
99: .line 1310
ldc "TlsKey"
aconst_null
100: .line 1309
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 19 /* writeKey */
start local 19 // javax.crypto.SecretKey writeKey
101: .line 1311
aload 18 /* writeKD */
102: .line 1312
ldc "TlsIv"
aconst_null
103: .line 1311
invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
astore 20 /* writeIvSecret */
start local 20 // javax.crypto.SecretKey writeIvSecret
104: .line 1314
new javax.crypto.spec.IvParameterSpec
dup
aload 20 /* writeIvSecret */
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
105: .line 1313
astore 21 /* writeIv */
start local 21 // javax.crypto.spec.IvParameterSpec writeIv
106: .line 1318
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
107: .line 1319
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/Authenticator;
108: .line 1320
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 19 /* writeKey */
aload 21 /* writeIv */
109: .line 1321
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
110: .line 1318
invokevirtual sun.security.ssl.SSLCipher.createWriteCipher:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/ProtocolVersion;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLCipher$SSLWriteCipher;
111: .line 1317
astore 22 /* writeCipher */
start local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
112: .line 1322
goto 117
end local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloConsumer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[] sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec sun.security.ssl.SSLCipher$SSLReadCipher javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec
StackMap stack: java.security.GeneralSecurityException
113: astore 23 /* gse */
start local 23 // java.security.GeneralSecurityException gse
114: .line 1324
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
115: .line 1325
ldc "Missing cipher algorithm"
aload 23 /* gse */
116: .line 1324
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 23 // java.security.GeneralSecurityException gse
start local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
117: .line 1328
StackMap locals: sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack:
aload 22 /* writeCipher */
ifnonnull 124
118: .line 1329
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
119: .line 1330
new java.lang.StringBuilder
dup
ldc "Illegal cipher suite ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
120: .line 1331
ldc ") and protocol version ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
121: .line 1332
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
122: .line 1330
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
123: .line 1329
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
124: .line 1335
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 17 /* writeSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseWriteSecret:Ljavax/crypto/SecretKey;
125: .line 1336
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
126: .line 1337
aload 22 /* writeCipher */
aload 4 /* serverHello */
getfield sun.security.ssl.ServerHello$ServerHelloMessage.sessionId:Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SessionId.length:()I
ifeq 127
iconst_1
goto 128
StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloConsumer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[] sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec sun.security.ssl.SSLCipher$SSLReadCipher javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack: sun.security.ssl.OutputRecord sun.security.ssl.SSLCipher$SSLWriteCipher
127: iconst_0
128: .line 1336
StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloConsumer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[] sun.security.ssl.SSLKeyExchange sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec sun.security.ssl.SSLCipher$SSLReadCipher javax.crypto.SecretKey sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack: sun.security.ssl.OutputRecord sun.security.ssl.SSLCipher$SSLWriteCipher int
invokevirtual sun.security.ssl.OutputRecord.changeWriteCiphers:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;Z)V
129: .line 1343
aload 3 /* chc */
aload 10 /* secretKD */
putfield sun.security.ssl.ClientHandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
130: .line 1350
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.consumers:Ljava/util/Map;
131: .line 1351
getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
132: .line 1352
getstatic sun.security.ssl.ChangeCipherSpec.t13Consumer:Lsun/security/ssl/SSLConsumer;
133: .line 1350
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
134: .line 1354
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
135: .line 1355
getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
136: .line 1356
getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
137: .line 1354
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
138: .line 1359
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
139: .line 1360
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;
140: .line 1361
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
141: .line 1359
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
142: .line 1362
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
143: .line 1363
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
144: .line 1364
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
145: .line 1362
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
146: .line 1365
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
147: .line 1366
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
148: .line 1367
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
149: .line 1365
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
150: .line 1369
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
151: .line 1370
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;
152: .line 1371
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
153: .line 1369
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
154: .line 1377
return
end local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
end local 21 // javax.crypto.spec.IvParameterSpec writeIv
end local 20 // javax.crypto.SecretKey writeIvSecret
end local 19 // javax.crypto.SecretKey writeKey
end local 18 // sun.security.ssl.SSLKeyDerivation writeKD
end local 17 // javax.crypto.SecretKey writeSecret
end local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
end local 15 // javax.crypto.spec.IvParameterSpec readIv
end local 14 // javax.crypto.SecretKey readIvSecret
end local 13 // javax.crypto.SecretKey readKey
end local 12 // sun.security.ssl.SSLKeyDerivation readKD
end local 11 // javax.crypto.SecretKey readSecret
end local 10 // sun.security.ssl.SSLKeyDerivation secretKD
end local 9 // sun.security.ssl.SSLTrafficKeyDerivation kdg
end local 8 // javax.crypto.SecretKey handshakeSecret
end local 7 // sun.security.ssl.SSLKeyDerivation handshakeKD
end local 6 // sun.security.ssl.SSLKeyExchange ke
end local 5 // sun.security.ssl.SSLExtension[] extTypes
end local 4 // sun.security.ssl.ServerHello$ServerHelloMessage serverHello
end local 3 // sun.security.ssl.ClientHandshakeContext chc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.ServerHello$T13ServerHelloConsumer this
LocalVariableTable:
Start End Slot Name Signature
0 155 0 this Lsun/security/ssl/ServerHello$T13ServerHelloConsumer;
0 155 1 context Lsun/security/ssl/ConnectionContext;
0 155 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 155 3 chc Lsun/security/ssl/ClientHandshakeContext;
2 155 4 serverHello Lsun/security/ssl/ServerHello$ServerHelloMessage;
14 155 5 extTypes [Lsun/security/ssl/SSLExtension;
33 39 6 psk Ljava/util/Optional<Ljavax/crypto/SecretKey;>;
42 155 6 ke Lsun/security/ssl/SSLKeyExchange;
47 155 7 handshakeKD Lsun/security/ssl/SSLKeyDerivation;
50 155 8 handshakeSecret Ljavax/crypto/SecretKey;
52 155 9 kdg Lsun/security/ssl/SSLTrafficKeyDerivation;
60 155 10 secretKD Lsun/security/ssl/SSLKeyDerivation;
63 155 11 readSecret Ljavax/crypto/SecretKey;
65 155 12 readKD Lsun/security/ssl/SSLKeyDerivation;
68 155 13 readKey Ljavax/crypto/SecretKey;
71 155 14 readIvSecret Ljavax/crypto/SecretKey;
73 155 15 readIv Ljavax/crypto/spec/IvParameterSpec;
79 80 16 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
84 155 16 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
81 84 17 gse Ljava/security/GeneralSecurityException;
96 155 17 writeSecret Ljavax/crypto/SecretKey;
98 155 18 writeKD Lsun/security/ssl/SSLKeyDerivation;
101 155 19 writeKey Ljavax/crypto/SecretKey;
104 155 20 writeIvSecret Ljavax/crypto/SecretKey;
106 155 21 writeIv Ljavax/crypto/spec/IvParameterSpec;
112 113 22 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
117 155 22 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
114 117 23 gse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
73 79 80 Class java.security.GeneralSecurityException
106 112 113 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "ServerHello.java"
NestHost: sun.security.ssl.ServerHello
InnerClasses:
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
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 T13ServerHelloConsumer = sun.security.ssl.ServerHello$T13ServerHelloConsumer of sun.security.ssl.ServerHello