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 1217
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1219
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 1225
aload 1 /* context */
checkcast sun.security.ssl.ClientHandshakeContext
astore 3 /* chc */
start local 3 // sun.security.ssl.ClientHandshakeContext chc
1: .line 1226
aload 2 /* message */
checkcast sun.security.ssl.ServerHello$ServerHelloMessage
astore 4 /* serverHello */
start local 4 // sun.security.ssl.ServerHello$ServerHelloMessage serverHello
2: .line 1227
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 1228
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 1229
ldc "The ServerHello.legacy_version field is not TLS 1.2"
5: .line 1228
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
6: .line 1232
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 1233
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
8: .line 1234
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 1233
invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
10: .line 1235
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 1242
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
12: .line 1243
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
13: .line 1242
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 1244
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 1245
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.isResumption:Z
ifne 31
16: .line 1246
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 19
17: .line 1248
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
18: .line 1249
aload 3 /* chc */
aconst_null
putfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
19: .line 1252
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 1253
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 1254
ldc "New session creation is disabled"
22: .line 1253
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
23: .line 1256
StackMap locals:
StackMap stack:
aload 3 /* chc */
new sun.security.ssl.SSLSessionImpl
dup
aload 3 /* chc */
24: .line 1257
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
25: .line 1258
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 1256
putfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
27: .line 1259
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
28: .line 1260
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
29: .line 1259
invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
30: .line 1261
goto 39
31: .line 1264
StackMap locals:
StackMap stack:
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.consumePreSharedKey:()Ljavax/crypto/SecretKey;
32: .line 1263
astore 6 /* psk */
start local 6 // javax.crypto.SecretKey psk
33: .line 1265
aload 6 /* psk */
ifnonnull 37
34: .line 1266
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 1267
ldc "No PSK available. Unable to resume."
36: .line 1266
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
37: .line 1270
StackMap locals: javax.crypto.SecretKey
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 1272
aload 3 /* chc */
aload 6 /* psk */
invokestatic sun.security.ssl.ServerHello.setUpPskKD:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
end local 6 // javax.crypto.SecretKey psk
39: .line 1278
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 1282
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.update:()V
41: .line 1284
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 1285
aload 6 /* ke */
ifnonnull 46
43: .line 1287
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 1288
ldc "Not negotiated key shares"
45: .line 1287
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
46: .line 1291
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 1292
aload 7 /* handshakeKD */
48: .line 1293
ldc "TlsHandshakeSecret"
aconst_null
49: .line 1292
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 1295
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 1294
astore 9 /* kdg */
start local 9 // sun.security.ssl.SSLTrafficKeyDerivation kdg
52: .line 1296
aload 9 /* kdg */
ifnonnull 58
53: .line 1298
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 1299
new java.lang.StringBuilder
dup
ldc "Not supported key derivation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
55: .line 1300
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 1299
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: .line 1298
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
58: .line 1304
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 1303
astore 10 /* secretKD */
start local 10 // sun.security.ssl.SSLKeyDerivation secretKD
60: .line 1307
aload 10 /* secretKD */
61: .line 1308
ldc "TlsServerHandshakeTrafficSecret"
aconst_null
62: .line 1307
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 1311
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 1310
astore 12 /* readKD */
start local 12 // sun.security.ssl.SSLKeyDerivation readKD
65: .line 1312
aload 12 /* readKD */
66: .line 1313
ldc "TlsKey"
aconst_null
67: .line 1312
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 1314
aload 12 /* readKD */
69: .line 1315
ldc "TlsIv"
aconst_null
70: .line 1314
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 1317
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 1316
astore 15 /* readIv */
start local 15 // javax.crypto.spec.IvParameterSpec readIv
73: .line 1321
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 1322
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 1323
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 13 /* readKey */
aload 15 /* readIv */
76: .line 1324
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
77: .line 1321
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 1320
astore 16 /* readCipher */
start local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
79: .line 1325
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 1327
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 1328
ldc "Missing cipher algorithm"
aload 17 /* gse */
83: .line 1327
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 1331
StackMap locals: sun.security.ssl.SSLCipher$SSLReadCipher
StackMap stack:
aload 16 /* readCipher */
ifnonnull 91
85: .line 1332
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 1333
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 1334
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 1335
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
89: .line 1333
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
90: .line 1332
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
91: .line 1338
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 11 /* readSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseReadSecret:Ljavax/crypto/SecretKey;
92: .line 1339
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 1342
aload 10 /* secretKD */
94: .line 1343
ldc "TlsClientHandshakeTrafficSecret"
aconst_null
95: .line 1342
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 1345
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 1344
astore 18 /* writeKD */
start local 18 // sun.security.ssl.SSLKeyDerivation writeKD
98: .line 1346
aload 18 /* writeKD */
99: .line 1347
ldc "TlsKey"
aconst_null
100: .line 1346
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 1348
aload 18 /* writeKD */
102: .line 1349
ldc "TlsIv"
aconst_null
103: .line 1348
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 1351
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 1350
astore 21 /* writeIv */
start local 21 // javax.crypto.spec.IvParameterSpec writeIv
106: .line 1355
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 1356
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 1357
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 19 /* writeKey */
aload 21 /* writeIv */
109: .line 1358
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
110: .line 1355
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 1354
astore 22 /* writeCipher */
start local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
112: .line 1359
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 1361
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 1362
ldc "Missing cipher algorithm"
aload 23 /* gse */
116: .line 1361
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 1365
StackMap locals: sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack:
aload 22 /* writeCipher */
ifnonnull 124
118: .line 1366
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 1367
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 1368
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 1369
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
122: .line 1367
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
123: .line 1366
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
124: .line 1372
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 17 /* writeSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseWriteSecret:Ljavax/crypto/SecretKey;
125: .line 1373
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 1374
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 1373
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 1380
aload 3 /* chc */
aload 10 /* secretKD */
putfield sun.security.ssl.ClientHandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
130: .line 1387
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.consumers:Ljava/util/Map;
131: .line 1388
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 1389
getstatic sun.security.ssl.ChangeCipherSpec.t13Consumer:Lsun/security/ssl/SSLConsumer;
133: .line 1387
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
134: .line 1391
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
135: .line 1392
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 1393
getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
137: .line 1391
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
138: .line 1396
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
139: .line 1397
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 1398
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
141: .line 1396
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
142: .line 1399
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
143: .line 1400
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 1401
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
145: .line 1399
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
146: .line 1402
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
147: .line 1403
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 1404
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
149: .line 1402
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
150: .line 1406
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
151: .line 1407
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 1408
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
153: .line 1406
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
154: .line 1414
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 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