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