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 1205
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1207
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 1213
aload 1 /* context */
checkcast sun.security.ssl.ClientHandshakeContext
astore 3 /* chc */
start local 3 // sun.security.ssl.ClientHandshakeContext chc
1: .line 1214
aload 2 /* message */
checkcast sun.security.ssl.ServerHello$ServerHelloMessage
astore 4 /* serverHello */
start local 4 // sun.security.ssl.ServerHello$ServerHelloMessage serverHello
2: .line 1215
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 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;
4: .line 1217
ldc "The ServerHello.legacy_version field is not TLS 1.2"
5: .line 1216
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
6: .line 1220
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 1221
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
8: .line 1222
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 1221
invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
10: .line 1223
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 1230
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
12: .line 1231
getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
13: .line 1230
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 1232
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 1233
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.isResumption:Z
ifne 31
16: .line 1234
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnull 19
17: .line 1236
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
18: .line 1237
aload 3 /* chc */
aconst_null
putfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
19: .line 1240
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 1241
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 1242
ldc "New session creation is disabled"
22: .line 1241
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
23: .line 1244
StackMap locals:
StackMap stack:
aload 3 /* chc */
new sun.security.ssl.SSLSessionImpl
dup
aload 3 /* chc */
24: .line 1245
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
25: .line 1246
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 1244
putfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
27: .line 1247
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
28: .line 1248
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
29: .line 1247
invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
30: .line 1249
goto 39
31: .line 1252
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 1251
astore 6 /* psk */
start local 6 // javax.crypto.SecretKey psk
33: .line 1253
aload 6 /* psk */
ifnonnull 37
34: .line 1254
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 1255
ldc "No PSK available. Unable to resume."
36: .line 1254
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
37: .line 1258
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 1260
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 1266
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 1270
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.update:()V
41: .line 1272
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 1273
aload 6 /* ke */
ifnonnull 46
43: .line 1275
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 1276
ldc "Not negotiated key shares"
45: .line 1275
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
46: .line 1279
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 1280
aload 7 /* handshakeKD */
48: .line 1281
ldc "TlsHandshakeSecret"
aconst_null
49: .line 1280
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 1283
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 1282
astore 9 /* kdg */
start local 9 // sun.security.ssl.SSLTrafficKeyDerivation kdg
52: .line 1284
aload 9 /* kdg */
ifnonnull 58
53: .line 1286
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 1287
new java.lang.StringBuilder
dup
ldc "Not supported key derivation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
55: .line 1288
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 1287
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: .line 1286
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
58: .line 1292
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 1291
astore 10 /* secretKD */
start local 10 // sun.security.ssl.SSLKeyDerivation secretKD
60: .line 1295
aload 10 /* secretKD */
61: .line 1296
ldc "TlsServerHandshakeTrafficSecret"
aconst_null
62: .line 1295
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 1299
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 1298
astore 12 /* readKD */
start local 12 // sun.security.ssl.SSLKeyDerivation readKD
65: .line 1300
aload 12 /* readKD */
66: .line 1301
ldc "TlsKey"
aconst_null
67: .line 1300
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 1302
aload 12 /* readKD */
69: .line 1303
ldc "TlsIv"
aconst_null
70: .line 1302
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 1305
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 1304
astore 15 /* readIv */
start local 15 // javax.crypto.spec.IvParameterSpec readIv
73: .line 1309
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 1310
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 1311
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 13 /* readKey */
aload 15 /* readIv */
76: .line 1312
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
77: .line 1309
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 1308
astore 16 /* readCipher */
start local 16 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
79: .line 1313
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 1315
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 1316
ldc "Missing cipher algorithm"
aload 17 /* gse */
83: .line 1315
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 1319
StackMap locals: sun.security.ssl.SSLCipher$SSLReadCipher
StackMap stack:
aload 16 /* readCipher */
ifnonnull 91
85: .line 1320
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 1321
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 1322
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 1323
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
89: .line 1321
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
90: .line 1320
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
91: .line 1326
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 11 /* readSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseReadSecret:Ljavax/crypto/SecretKey;
92: .line 1327
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 1330
aload 10 /* secretKD */
94: .line 1331
ldc "TlsClientHandshakeTrafficSecret"
aconst_null
95: .line 1330
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 1333
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 1332
astore 18 /* writeKD */
start local 18 // sun.security.ssl.SSLKeyDerivation writeKD
98: .line 1334
aload 18 /* writeKD */
99: .line 1335
ldc "TlsKey"
aconst_null
100: .line 1334
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 1336
aload 18 /* writeKD */
102: .line 1337
ldc "TlsIv"
aconst_null
103: .line 1336
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 1339
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 1338
astore 21 /* writeIv */
start local 21 // javax.crypto.spec.IvParameterSpec writeIv
106: .line 1343
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 1344
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 1345
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 19 /* writeKey */
aload 21 /* writeIv */
109: .line 1346
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
110: .line 1343
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 1342
astore 22 /* writeCipher */
start local 22 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
112: .line 1347
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 1349
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 1350
ldc "Missing cipher algorithm"
aload 23 /* gse */
116: .line 1349
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 1353
StackMap locals: sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack:
aload 22 /* writeCipher */
ifnonnull 124
118: .line 1354
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 1355
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 1356
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 1357
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
122: .line 1355
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
123: .line 1354
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
124: .line 1360
StackMap locals:
StackMap stack:
aload 3 /* chc */
aload 17 /* writeSecret */
putfield sun.security.ssl.ClientHandshakeContext.baseWriteSecret:Ljavax/crypto/SecretKey;
125: .line 1361
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 1362
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 1361
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 1368
aload 3 /* chc */
aload 10 /* secretKD */
putfield sun.security.ssl.ClientHandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
130: .line 1375
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.consumers:Ljava/util/Map;
131: .line 1376
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 1377
getstatic sun.security.ssl.ChangeCipherSpec.t13Consumer:Lsun/security/ssl/SSLConsumer;
133: .line 1375
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
134: .line 1379
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
135: .line 1380
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 1381
getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
137: .line 1379
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
138: .line 1384
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
139: .line 1385
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 1386
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
141: .line 1384
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
142: .line 1387
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
143: .line 1388
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 1389
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
145: .line 1387
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
146: .line 1390
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
147: .line 1391
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 1392
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
149: .line 1390
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
150: .line 1394
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
151: .line 1395
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 1396
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
153: .line 1394
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
154: .line 1402
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