final class sun.security.ssl.ServerHello$T13ServerHelloProducer implements sun.security.ssl.HandshakeProducer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.ServerHello$T13ServerHelloProducer
  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$T13ServerHelloProducer this
         0: .line 495
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 497
            return
        end local 0 // sun.security.ssl.ServerHello$T13ServerHelloProducer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/ServerHello$T13ServerHelloProducer;

  public byte[] produce(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
    descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=26, args_size=3
        start local 0 // sun.security.ssl.ServerHello$T13ServerHelloProducer this
        start local 1 // sun.security.ssl.ConnectionContext context
        start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
         0: .line 503
            aload 1 /* context */
            checkcast sun.security.ssl.ServerHandshakeContext
            astore 3 /* shc */
        start local 3 // sun.security.ssl.ServerHandshakeContext shc
         1: .line 504
            aload 2 /* message */
            checkcast sun.security.ssl.ClientHello$ClientHelloMessage
            astore 4 /* clientHello */
        start local 4 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
         2: .line 507
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
         3: .line 506
            checkcast sun.security.ssl.SSLSessionContextImpl
            astore 5 /* sessionCache */
        start local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
         4: .line 512
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.isResumption:Z
            ifeq 5
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            ifnonnull 35
         5: .line 513
      StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionContextImpl
      StackMap stack:
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
            ifne 9
         6: .line 514
            new javax.net.ssl.SSLException
            dup
         7: .line 515
            ldc "Not resumption, and no new session is allowed"
         8: .line 514
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 518
      StackMap locals:
      StackMap stack:
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
            ifnonnull 15
        10: .line 519
            aload 3 /* shc */
        11: .line 521
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        12: .line 522
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.activeProtocols:Ljava/util/List;
        13: .line 520
            invokestatic sun.security.ssl.SignatureScheme.getSupportedAlgorithms:(Lsun/security/ssl/SSLConfiguration;Ljava/security/AlgorithmConstraints;Ljava/util/List;)Ljava/util/List;
        14: .line 519
            putfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
        15: .line 526
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.SSLSessionImpl
            dup
            aload 3 /* shc */
            getstatic sun.security.ssl.CipherSuite.C_NULL:Lsun/security/ssl/CipherSuite;
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/CipherSuite;)V
        16: .line 525
            astore 6 /* session */
        start local 6 // sun.security.ssl.SSLSessionImpl session
        17: .line 527
            aload 6 /* session */
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
            invokevirtual sun.security.ssl.SSLSessionImpl.setMaximumPacketSize:(I)V
        18: .line 528
            aload 3 /* shc */
            aload 6 /* session */
            putfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
        19: .line 532
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        20: .line 533
            getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
        21: .line 532
            invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Lsun/security/ssl/ProtocolVersion;)[Lsun/security/ssl/SSLExtension;
        22: .line 531
            astore 7 /* enabledExtensions */
        start local 7 // sun.security.ssl.SSLExtension[] enabledExtensions
        23: .line 534
            aload 4 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
            aload 3 /* shc */
            aload 7 /* enabledExtensions */
            invokevirtual sun.security.ssl.SSLExtensions.consumeOnTrade:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
        24: .line 537
            aload 3 /* shc */
            aload 4 /* clientHello */
            invokestatic sun.security.ssl.ServerHello$T13ServerHelloProducer.chooseCipherSuite:(Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/CipherSuite;
            astore 8 /* cipherSuite */
        start local 8 // sun.security.ssl.CipherSuite cipherSuite
        25: .line 538
            aload 8 /* cipherSuite */
            ifnonnull 29
        26: .line 539
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        27: .line 540
            ldc "no cipher suites in common"
        28: .line 539
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        29: .line 542
      StackMap locals: sun.security.ssl.SSLSessionImpl sun.security.ssl.SSLExtension[] sun.security.ssl.CipherSuite
      StackMap stack:
            aload 3 /* shc */
            aload 8 /* cipherSuite */
            putfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
        30: .line 543
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
            aload 8 /* cipherSuite */
            invokevirtual sun.security.ssl.SSLSessionImpl.setSuite:(Lsun/security/ssl/CipherSuite;)V
        31: .line 544
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
        32: .line 545
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
        33: .line 544
            invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
        end local 8 // sun.security.ssl.CipherSuite cipherSuite
        end local 7 // sun.security.ssl.SSLExtension[] enabledExtensions
        end local 6 // sun.security.ssl.SSLSessionImpl session
        34: .line 546
            goto 52
        35: .line 547
      StackMap locals:
      StackMap stack:
            aload 3 /* shc */
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            putfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
        36: .line 551
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        37: .line 552
            getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
        38: .line 551
            invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Lsun/security/ssl/ProtocolVersion;)[Lsun/security/ssl/SSLExtension;
        39: .line 550
            astore 6 /* enabledExtensions */
        start local 6 // sun.security.ssl.SSLExtension[] enabledExtensions
        40: .line 553
            aload 4 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
            aload 3 /* shc */
            aload 6 /* enabledExtensions */
            invokevirtual sun.security.ssl.SSLExtensions.consumeOnTrade:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
        41: .line 555
            aload 3 /* shc */
        42: .line 556
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
        43: .line 555
            putfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
        44: .line 557
            aload 3 /* shc */
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            putfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
        45: .line 558
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
        46: .line 559
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
        47: .line 558
            invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
        48: .line 561
            aload 3 /* shc */
        49: .line 562
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.consumePreSharedKey:()Ljavax/crypto/SecretKey;
        50: .line 561
            invokestatic sun.security.ssl.ServerHello.setUpPskKD:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
        51: .line 565
            aload 5 /* sessionCache */
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SSLSessionContextImpl.remove:(Lsun/security/ssl/SessionId;)V
        end local 6 // sun.security.ssl.SSLExtension[] enabledExtensions
        52: .line 569
      StackMap locals:
      StackMap stack:
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
            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;
        53: .line 570
            getstatic sun.security.ssl.SSLHandshake.ENCRYPTED_EXTENSIONS:Lsun/security/ssl/SSLHandshake;
        54: .line 569
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        55: .line 571
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeProducers:Ljava/util/HashMap;
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
        56: .line 572
            getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
        57: .line 571
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        58: .line 575
            new sun.security.ssl.ServerHello$ServerHelloMessage
            dup
            aload 3 /* shc */
        59: .line 576
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
        60: .line 577
            aload 4 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.sessionId:Lsun/security/ssl/SessionId;
        61: .line 578
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
        62: .line 579
            new sun.security.ssl.RandomCookie
            dup
            aload 3 /* shc */
            invokespecial sun.security.ssl.RandomCookie.<init>:(Lsun/security/ssl/HandshakeContext;)V
        63: .line 580
            aload 4 /* clientHello */
        64: .line 575
            invokespecial sun.security.ssl.ServerHello$ServerHelloMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/SessionId;Lsun/security/ssl/CipherSuite;Lsun/security/ssl/RandomCookie;Lsun/security/ssl/ClientHello$ClientHelloMessage;)V
            astore 6 /* shm */
        start local 6 // sun.security.ssl.ServerHello$ServerHelloMessage shm
        65: .line 581
            aload 3 /* shc */
            aload 6 /* shm */
            getfield sun.security.ssl.ServerHello$ServerHelloMessage.serverRandom:Lsun/security/ssl/RandomCookie;
            putfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
        66: .line 585
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        67: .line 586
            getstatic sun.security.ssl.SSLHandshake.SERVER_HELLO:Lsun/security/ssl/SSLHandshake;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
        68: .line 585
            invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Lsun/security/ssl/ProtocolVersion;)[Lsun/security/ssl/SSLExtension;
        69: .line 584
            astore 7 /* serverHelloExtensions */
        start local 7 // sun.security.ssl.SSLExtension[] serverHelloExtensions
        70: .line 587
            aload 6 /* shm */
            getfield sun.security.ssl.ServerHello$ServerHelloMessage.extensions:Lsun/security/ssl/SSLExtensions;
            aload 3 /* shc */
            aload 7 /* serverHelloExtensions */
            invokevirtual sun.security.ssl.SSLExtensions.produce:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
        71: .line 588
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 73
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 73
        72: .line 589
            ldc "Produced ServerHello handshake message"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* shm */
            aastore
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        73: .line 593
      StackMap locals: sun.security.ssl.ServerHello$ServerHelloMessage sun.security.ssl.SSLExtension[]
      StackMap stack:
            aload 6 /* shm */
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.ServerHello$ServerHelloMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
        74: .line 594
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
            invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
        75: .line 598
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
            invokevirtual sun.security.ssl.HandshakeHash.update:()V
        76: .line 601
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.handshakeKeyExchange:Lsun/security/ssl/SSLKeyExchange;
            astore 8 /* ke */
        start local 8 // sun.security.ssl.SSLKeyExchange ke
        77: .line 602
            aload 8 /* ke */
            ifnonnull 81
        78: .line 604
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        79: .line 605
            ldc "Not negotiated key shares"
        80: .line 604
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        81: .line 608
      StackMap locals: sun.security.ssl.SSLKeyExchange
      StackMap stack:
            aload 8 /* ke */
            aload 3 /* shc */
            invokevirtual sun.security.ssl.SSLKeyExchange.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
            astore 9 /* handshakeKD */
        start local 9 // sun.security.ssl.SSLKeyDerivation handshakeKD
        82: .line 609
            aload 9 /* handshakeKD */
        83: .line 610
            ldc "TlsHandshakeSecret"
            aconst_null
        84: .line 609
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 10 /* handshakeSecret */
        start local 10 // javax.crypto.SecretKey handshakeSecret
        85: .line 613
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokestatic sun.security.ssl.SSLTrafficKeyDerivation.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SSLTrafficKeyDerivation;
        86: .line 612
            astore 11 /* kdg */
        start local 11 // sun.security.ssl.SSLTrafficKeyDerivation kdg
        87: .line 614
            aload 11 /* kdg */
            ifnonnull 93
        88: .line 616
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        89: .line 617
            new java.lang.StringBuilder
            dup
            ldc "Not supported key derivation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        90: .line 618
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        91: .line 617
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        92: .line 616
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        93: .line 622
      StackMap locals: sun.security.ssl.SSLKeyDerivation javax.crypto.SecretKey sun.security.ssl.SSLTrafficKeyDerivation
      StackMap stack:
            new sun.security.ssl.SSLSecretDerivation
            dup
            aload 3 /* shc */
            aload 10 /* handshakeSecret */
            invokespecial sun.security.ssl.SSLSecretDerivation.<init>:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
        94: .line 621
            astore 12 /* kd */
        start local 12 // sun.security.ssl.SSLKeyDerivation kd
        95: .line 625
            aload 12 /* kd */
        96: .line 626
            ldc "TlsClientHandshakeTrafficSecret"
            aconst_null
        97: .line 625
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 13 /* readSecret */
        start local 13 // javax.crypto.SecretKey readSecret
        98: .line 628
            aload 11 /* kdg */
            aload 3 /* shc */
            aload 13 /* readSecret */
            invokevirtual sun.security.ssl.SSLTrafficKeyDerivation.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)Lsun/security/ssl/SSLKeyDerivation;
        99: .line 627
            astore 14 /* readKD */
        start local 14 // sun.security.ssl.SSLKeyDerivation readKD
       100: .line 629
            aload 14 /* readKD */
       101: .line 630
            ldc "TlsKey"
            aconst_null
       102: .line 629
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 15 /* readKey */
        start local 15 // javax.crypto.SecretKey readKey
       103: .line 631
            aload 14 /* readKD */
       104: .line 632
            ldc "TlsIv"
            aconst_null
       105: .line 631
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 16 /* readIvSecret */
        start local 16 // javax.crypto.SecretKey readIvSecret
       106: .line 634
            new javax.crypto.spec.IvParameterSpec
            dup
            aload 16 /* readIvSecret */
            invokeinterface javax.crypto.SecretKey.getEncoded:()[B
            invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
       107: .line 633
            astore 17 /* readIv */
        start local 17 // javax.crypto.spec.IvParameterSpec readIv
       108: .line 638
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
            getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
       109: .line 639
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/Authenticator;
       110: .line 640
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            aload 15 /* readKey */
            aload 17 /* readIv */
       111: .line 641
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       112: .line 638
            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;
       113: .line 637
            astore 18 /* readCipher */
        start local 18 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
       114: .line 642
            goto 119
        end local 18 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
      StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionContextImpl 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
       115: astore 19 /* gse */
        start local 19 // java.security.GeneralSecurityException gse
       116: .line 644
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
       117: .line 645
            ldc "Missing cipher algorithm"
            aload 19 /* gse */
       118: .line 644
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 19 // java.security.GeneralSecurityException gse
        start local 18 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
       119: .line 648
      StackMap locals: sun.security.ssl.SSLCipher$SSLReadCipher
      StackMap stack:
            aload 18 /* readCipher */
            ifnonnull 126
       120: .line 649
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
       121: .line 650
            new java.lang.StringBuilder
            dup
            ldc "Illegal cipher suite ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       122: .line 651
            ldc ") and protocol version ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       123: .line 652
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       124: .line 650
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       125: .line 649
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
       126: .line 655
      StackMap locals:
      StackMap stack:
            aload 3 /* shc */
            aload 13 /* readSecret */
            putfield sun.security.ssl.ServerHandshakeContext.baseReadSecret:Ljavax/crypto/SecretKey;
       127: .line 656
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 18 /* readCipher */
            invokevirtual sun.security.ssl.InputRecord.changeReadCiphers:(Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
       128: .line 659
            aload 12 /* kd */
       129: .line 660
            ldc "TlsServerHandshakeTrafficSecret"
            aconst_null
       130: .line 659
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 19 /* writeSecret */
        start local 19 // javax.crypto.SecretKey writeSecret
       131: .line 662
            aload 11 /* kdg */
            aload 3 /* shc */
            aload 19 /* writeSecret */
            invokevirtual sun.security.ssl.SSLTrafficKeyDerivation.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)Lsun/security/ssl/SSLKeyDerivation;
       132: .line 661
            astore 20 /* writeKD */
        start local 20 // sun.security.ssl.SSLKeyDerivation writeKD
       133: .line 663
            aload 20 /* writeKD */
       134: .line 664
            ldc "TlsKey"
            aconst_null
       135: .line 663
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 21 /* writeKey */
        start local 21 // javax.crypto.SecretKey writeKey
       136: .line 665
            aload 20 /* writeKD */
       137: .line 666
            ldc "TlsIv"
            aconst_null
       138: .line 665
            invokeinterface sun.security.ssl.SSLKeyDerivation.deriveKey:(Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
            astore 22 /* writeIvSecret */
        start local 22 // javax.crypto.SecretKey writeIvSecret
       139: .line 668
            new javax.crypto.spec.IvParameterSpec
            dup
            aload 22 /* writeIvSecret */
            invokeinterface javax.crypto.SecretKey.getEncoded:()[B
            invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
       140: .line 667
            astore 23 /* writeIv */
        start local 23 // javax.crypto.spec.IvParameterSpec writeIv
       141: .line 672
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
            getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
       142: .line 673
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/Authenticator;
       143: .line 674
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            aload 21 /* writeKey */
            aload 23 /* writeIv */
       144: .line 675
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
       145: .line 672
            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;
       146: .line 671
            astore 24 /* writeCipher */
        start local 24 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
       147: .line 676
            goto 152
        end local 24 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
      StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionContextImpl 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
       148: astore 25 /* gse */
        start local 25 // java.security.GeneralSecurityException gse
       149: .line 678
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
       150: .line 679
            ldc "Missing cipher algorithm"
            aload 25 /* gse */
       151: .line 678
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 25 // java.security.GeneralSecurityException gse
        start local 24 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
       152: .line 682
      StackMap locals: sun.security.ssl.SSLCipher$SSLWriteCipher
      StackMap stack:
            aload 24 /* writeCipher */
            ifnonnull 159
       153: .line 683
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
       154: .line 684
            new java.lang.StringBuilder
            dup
            ldc "Illegal cipher suite ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       155: .line 685
            ldc ") and protocol version ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       156: .line 686
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       157: .line 684
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       158: .line 683
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
       159: .line 689
      StackMap locals:
      StackMap stack:
            aload 3 /* shc */
            aload 19 /* writeSecret */
            putfield sun.security.ssl.ServerHandshakeContext.baseWriteSecret:Ljavax/crypto/SecretKey;
       160: .line 690
            aload 3 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
       161: .line 691
            aload 24 /* writeCipher */
            aload 4 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.sessionId:Lsun/security/ssl/SessionId;
            invokevirtual sun.security.ssl.SessionId.length:()I
            ifeq 162
            iconst_1
            goto 163
      StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionContextImpl 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
       162: iconst_0
       163: .line 690
      StackMap locals: sun.security.ssl.ServerHello$T13ServerHelloProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLSessionContextImpl 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
       164: .line 694
            aload 3 /* shc */
            aload 12 /* kd */
            putfield sun.security.ssl.ServerHandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
       165: .line 697
            aload 5 /* sessionCache */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.statelessEnabled:()Z
            ifeq 167
       166: .line 698
            aload 3 /* shc */
            iconst_1
            putfield sun.security.ssl.ServerHandshakeContext.statelessResumption:Z
       167: .line 702
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 24 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
        end local 23 // javax.crypto.spec.IvParameterSpec writeIv
        end local 22 // javax.crypto.SecretKey writeIvSecret
        end local 21 // javax.crypto.SecretKey writeKey
        end local 20 // sun.security.ssl.SSLKeyDerivation writeKD
        end local 19 // javax.crypto.SecretKey writeSecret
        end local 18 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
        end local 17 // javax.crypto.spec.IvParameterSpec readIv
        end local 16 // javax.crypto.SecretKey readIvSecret
        end local 15 // javax.crypto.SecretKey readKey
        end local 14 // sun.security.ssl.SSLKeyDerivation readKD
        end local 13 // javax.crypto.SecretKey readSecret
        end local 12 // sun.security.ssl.SSLKeyDerivation kd
        end local 11 // sun.security.ssl.SSLTrafficKeyDerivation kdg
        end local 10 // javax.crypto.SecretKey handshakeSecret
        end local 9 // sun.security.ssl.SSLKeyDerivation handshakeKD
        end local 8 // sun.security.ssl.SSLKeyExchange ke
        end local 7 // sun.security.ssl.SSLExtension[] serverHelloExtensions
        end local 6 // sun.security.ssl.ServerHello$ServerHelloMessage shm
        end local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
        end local 4 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
        end local 3 // sun.security.ssl.ServerHandshakeContext shc
        end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
        end local 1 // sun.security.ssl.ConnectionContext context
        end local 0 // sun.security.ssl.ServerHello$T13ServerHelloProducer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  168     0                   this  Lsun/security/ssl/ServerHello$T13ServerHelloProducer;
            0  168     1                context  Lsun/security/ssl/ConnectionContext;
            0  168     2                message  Lsun/security/ssl/SSLHandshake$HandshakeMessage;
            1  168     3                    shc  Lsun/security/ssl/ServerHandshakeContext;
            2  168     4            clientHello  Lsun/security/ssl/ClientHello$ClientHelloMessage;
            4  168     5           sessionCache  Lsun/security/ssl/SSLSessionContextImpl;
           17   34     6                session  Lsun/security/ssl/SSLSessionImpl;
           23   34     7      enabledExtensions  [Lsun/security/ssl/SSLExtension;
           25   34     8            cipherSuite  Lsun/security/ssl/CipherSuite;
           40   52     6      enabledExtensions  [Lsun/security/ssl/SSLExtension;
           65  168     6                    shm  Lsun/security/ssl/ServerHello$ServerHelloMessage;
           70  168     7  serverHelloExtensions  [Lsun/security/ssl/SSLExtension;
           77  168     8                     ke  Lsun/security/ssl/SSLKeyExchange;
           82  168     9            handshakeKD  Lsun/security/ssl/SSLKeyDerivation;
           85  168    10        handshakeSecret  Ljavax/crypto/SecretKey;
           87  168    11                    kdg  Lsun/security/ssl/SSLTrafficKeyDerivation;
           95  168    12                     kd  Lsun/security/ssl/SSLKeyDerivation;
           98  168    13             readSecret  Ljavax/crypto/SecretKey;
          100  168    14                 readKD  Lsun/security/ssl/SSLKeyDerivation;
          103  168    15                readKey  Ljavax/crypto/SecretKey;
          106  168    16           readIvSecret  Ljavax/crypto/SecretKey;
          108  168    17                 readIv  Ljavax/crypto/spec/IvParameterSpec;
          114  115    18             readCipher  Lsun/security/ssl/SSLCipher$SSLReadCipher;
          119  168    18             readCipher  Lsun/security/ssl/SSLCipher$SSLReadCipher;
          116  119    19                    gse  Ljava/security/GeneralSecurityException;
          131  168    19            writeSecret  Ljavax/crypto/SecretKey;
          133  168    20                writeKD  Lsun/security/ssl/SSLKeyDerivation;
          136  168    21               writeKey  Ljavax/crypto/SecretKey;
          139  168    22          writeIvSecret  Ljavax/crypto/SecretKey;
          141  168    23                writeIv  Ljavax/crypto/spec/IvParameterSpec;
          147  148    24            writeCipher  Lsun/security/ssl/SSLCipher$SSLWriteCipher;
          152  168    24            writeCipher  Lsun/security/ssl/SSLCipher$SSLWriteCipher;
          149  152    25                    gse  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
         108   114     115  Class java.security.GeneralSecurityException
         141   147     148  Class java.security.GeneralSecurityException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      message  

  private static sun.security.ssl.CipherSuite chooseCipherSuite(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage);
    descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/CipherSuite;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // sun.security.ssl.ServerHandshakeContext shc
        start local 1 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
         0: .line 710
            aload 0 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.preferLocalCipherSuites:Z
            ifeq 4
         1: .line 711
            aload 0 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.activeCipherSuites:Ljava/util/List;
            astore 2 /* preferred */
        start local 2 // java.util.List preferred
         2: .line 712
            aload 1 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.cipherSuites:Ljava/util/List;
            astore 3 /* proposed */
        start local 3 // java.util.List proposed
         3: .line 713
            goto 6
        end local 3 // java.util.List proposed
        end local 2 // java.util.List preferred
         4: .line 714
      StackMap locals:
      StackMap stack:
            aload 1 /* clientHello */
            getfield sun.security.ssl.ClientHello$ClientHelloMessage.cipherSuites:Ljava/util/List;
            astore 2 /* preferred */
        start local 2 // java.util.List preferred
         5: .line 715
            aload 0 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.activeCipherSuites:Ljava/util/List;
            astore 3 /* proposed */
        start local 3 // java.util.List proposed
         6: .line 718
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            aconst_null
            astore 4 /* legacySuite */
        start local 4 // sun.security.ssl.CipherSuite legacySuite
         7: .line 720
            getstatic sun.security.ssl.ServerHandshakeContext.legacyAlgorithmConstraints:Ljava/security/AlgorithmConstraints;
         8: .line 719
            astore 5 /* legacyConstraints */
        start local 5 // java.security.AlgorithmConstraints legacyConstraints
         9: .line 721
            aload 2 /* preferred */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 26
      StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List sun.security.ssl.CipherSuite java.security.AlgorithmConstraints top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.CipherSuite
            astore 6 /* cs */
        start local 6 // sun.security.ssl.CipherSuite cs
        11: .line 723
            aload 3 /* proposed */
            aload 0 /* shc */
            getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            aload 6 /* cs */
        12: .line 722
            invokestatic sun.security.ssl.HandshakeContext.isNegotiable:(Ljava/util/List;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)Z
        13: .line 723
            ifne 15
        14: .line 724
            goto 26
        15: .line 727
      StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List sun.security.ssl.CipherSuite java.security.AlgorithmConstraints sun.security.ssl.CipherSuite java.util.Iterator
      StackMap stack:
            aload 4 /* legacySuite */
            ifnonnull 23
        16: .line 728
            aload 5 /* legacyConstraints */
        17: .line 729
            getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
        18: .line 730
            aload 6 /* cs */
            getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
            aconst_null
        19: .line 728
            invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
        20: .line 730
            ifne 23
        21: .line 731
            aload 6 /* cs */
            astore 4 /* legacySuite */
        22: .line 732
            goto 26
        23: .line 736
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 25
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 25
        24: .line 737
            new java.lang.StringBuilder
            dup
            ldc "use cipher suite "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* cs */
            getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        25: .line 739
      StackMap locals:
      StackMap stack:
            aload 6 /* cs */
            areturn
        end local 6 // sun.security.ssl.CipherSuite cs
        26: .line 721
      StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List sun.security.ssl.CipherSuite java.security.AlgorithmConstraints top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        27: .line 742
            aload 4 /* legacySuite */
            ifnull 32
        28: .line 743
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 31
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 31
        29: .line 745
            new java.lang.StringBuilder
            dup
            ldc "use legacy cipher suite "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* legacySuite */
            getfield sun.security.ssl.CipherSuite.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
        30: .line 744
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        31: .line 747
      StackMap locals: sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.List java.util.List sun.security.ssl.CipherSuite java.security.AlgorithmConstraints
      StackMap stack:
            aload 4 /* legacySuite */
            areturn
        32: .line 751
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.security.AlgorithmConstraints legacyConstraints
        end local 4 // sun.security.ssl.CipherSuite legacySuite
        end local 3 // java.util.List proposed
        end local 2 // java.util.List preferred
        end local 1 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
        end local 0 // sun.security.ssl.ServerHandshakeContext shc
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   33     0                shc  Lsun/security/ssl/ServerHandshakeContext;
            0   33     1        clientHello  Lsun/security/ssl/ClientHello$ClientHelloMessage;
            2    4     2          preferred  Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
            5   33     2          preferred  Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
            3    4     3           proposed  Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
            6   33     3           proposed  Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
            7   33     4        legacySuite  Lsun/security/ssl/CipherSuite;
            9   33     5  legacyConstraints  Ljava/security/AlgorithmConstraints;
           11   26     6                 cs  Lsun/security/ssl/CipherSuite;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      shc          
      clientHello  
}
SourceFile: "ServerHello.java"
NestHost: sun.security.ssl.ServerHello
InnerClasses:
  final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
  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 T13ServerHelloProducer = sun.security.ssl.ServerHello$T13ServerHelloProducer of sun.security.ssl.ServerHello