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

  public void consume(sun.security.ssl.ConnectionContext, java.nio.ByteBuffer);
    descriptor: (Lsun/security/ssl/ConnectionContext;Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // sun.security.ssl.NewSessionTicket$T13NewSessionTicketConsumer this
        start local 1 // sun.security.ssl.ConnectionContext context
        start local 2 // java.nio.ByteBuffer message
         0: .line 563
            aload 1 /* context */
            checkcast sun.security.ssl.HandshakeContext
            astore 3 /* hc */
        start local 3 // sun.security.ssl.HandshakeContext hc
         1: .line 565
            new sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage
            dup
            aload 3 /* hc */
            aload 2 /* message */
            invokespecial sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
         2: .line 564
            astore 4 /* nstm */
        start local 4 // sun.security.ssl.NewSessionTicket$NewSessionTicketMessage nstm
         3: .line 566
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 568
            ldc "Consuming NewSessionTicket message"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* nstm */
            aastore
         5: .line 567
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 572
      StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.NewSessionTicket$NewSessionTicketMessage
      StackMap stack:
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
         7: .line 571
            checkcast sun.security.ssl.SSLSessionContextImpl
            astore 5 /* sessionCache */
        start local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
         8: .line 575
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ifle 10
         9: .line 576
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ldc 604800
            if_icmple 18
        10: .line 577
      StackMap locals: sun.security.ssl.SSLSessionContextImpl
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 16
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 16
        11: .line 579
            new java.lang.StringBuilder
            dup
            ldc "Discarding NewSessionTicket with lifetime "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 580
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 579
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 580
            aload 4 /* nstm */
            aastore
        15: .line 578
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 582
      StackMap locals:
      StackMap stack:
            aload 5 /* sessionCache */
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.handshakeSession: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
        17: .line 583
            return
        18: .line 586
      StackMap locals:
      StackMap stack:
            aload 5 /* sessionCache */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.getSessionTimeout:()I
            ldc 604800
            if_icmple 23
        19: .line 587
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 22
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 22
        20: .line 589
            ldc "Session cache lifetime is too long. Discarding ticket."
            iconst_0
            anewarray java.lang.Object
        21: .line 588
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 592
      StackMap locals:
      StackMap stack:
            return
        23: .line 595
      StackMap locals:
      StackMap stack:
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            astore 6 /* sessionToSave */
        start local 6 // sun.security.ssl.SSLSessionImpl sessionToSave
        24: .line 597
            aload 6 /* sessionToSave */
            invokevirtual sun.security.ssl.SSLSessionImpl.getResumptionMasterSecret:()Ljavax/crypto/SecretKey;
        25: .line 596
            astore 7 /* resumptionMasterSecret */
        start local 7 // javax.crypto.SecretKey resumptionMasterSecret
        26: .line 598
            aload 7 /* resumptionMasterSecret */
            ifnonnull 31
        27: .line 599
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 30
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 30
        28: .line 601
            ldc "Session has no resumption master secret. Ignoring ticket."
            iconst_0
            anewarray java.lang.Object
        29: .line 600
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 604
      StackMap locals: sun.security.ssl.SSLSessionImpl javax.crypto.SecretKey
      StackMap stack:
            return
        31: .line 609
      StackMap locals:
      StackMap stack:
            aload 6 /* sessionToSave */
            invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
            getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
        32: .line 610
            aload 7 /* resumptionMasterSecret */
            aload 4 /* nstm */
            invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.getTicketNonce:()[B
        33: .line 608
            invokestatic sun.security.ssl.NewSessionTicket.derivePreSharedKey:(Lsun/security/ssl/CipherSuite$HashAlg;Ljavax/crypto/SecretKey;[B)Ljavax/crypto/SecretKey;
            astore 8 /* psk */
        start local 8 // javax.crypto.SecretKey psk
        34: .line 616
            new sun.security.ssl.SessionId
            dup
            iconst_1
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
            invokespecial sun.security.ssl.SessionId.<init>:(ZLjava/security/SecureRandom;)V
        35: .line 615
            astore 9 /* newId */
        start local 9 // sun.security.ssl.SessionId newId
        36: .line 617
            new sun.security.ssl.SSLSessionImpl
            dup
            aload 6 /* sessionToSave */
        37: .line 618
            aload 9 /* newId */
        38: .line 617
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/SessionId;)V
            astore 10 /* sessionCopy */
        start local 10 // sun.security.ssl.SSLSessionImpl sessionCopy
        39: .line 619
            aload 6 /* sessionToSave */
            aload 10 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionImpl.addChild:(Lsun/security/ssl/SSLSessionImpl;)V
        40: .line 620
            aload 10 /* sessionCopy */
            aload 8 /* psk */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPreSharedKey:(Ljavax/crypto/SecretKey;)V
        41: .line 621
            aload 10 /* sessionCopy */
            aload 4 /* nstm */
            invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.getTicketAgeAdd:()I
            invokevirtual sun.security.ssl.SSLSessionImpl.setTicketAgeAdd:(I)V
        42: .line 622
            aload 10 /* sessionCopy */
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticket:[B
            invokevirtual sun.security.ssl.SSLSessionImpl.setPskIdentity:([B)V
        43: .line 623
            aload 5 /* sessionCache */
            aload 10 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        44: .line 626
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.finishPostHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            pop
        45: .line 627
            return
        end local 10 // sun.security.ssl.SSLSessionImpl sessionCopy
        end local 9 // sun.security.ssl.SessionId newId
        end local 8 // javax.crypto.SecretKey psk
        end local 7 // javax.crypto.SecretKey resumptionMasterSecret
        end local 6 // sun.security.ssl.SSLSessionImpl sessionToSave
        end local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
        end local 4 // sun.security.ssl.NewSessionTicket$NewSessionTicketMessage nstm
        end local 3 // sun.security.ssl.HandshakeContext hc
        end local 2 // java.nio.ByteBuffer message
        end local 1 // sun.security.ssl.ConnectionContext context
        end local 0 // sun.security.ssl.NewSessionTicket$T13NewSessionTicketConsumer this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   46     0                    this  Lsun/security/ssl/NewSessionTicket$T13NewSessionTicketConsumer;
            0   46     1                 context  Lsun/security/ssl/ConnectionContext;
            0   46     2                 message  Ljava/nio/ByteBuffer;
            1   46     3                      hc  Lsun/security/ssl/HandshakeContext;
            3   46     4                    nstm  Lsun/security/ssl/NewSessionTicket$NewSessionTicketMessage;
            8   46     5            sessionCache  Lsun/security/ssl/SSLSessionContextImpl;
           24   46     6           sessionToSave  Lsun/security/ssl/SSLSessionImpl;
           26   46     7  resumptionMasterSecret  Ljavax/crypto/SecretKey;
           34   46     8                     psk  Ljavax/crypto/SecretKey;
           36   46     9                   newId  Lsun/security/ssl/SessionId;
           39   46    10             sessionCopy  Lsun/security/ssl/SSLSessionImpl;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      message  
}
SourceFile: "NewSessionTicket.java"
NestHost: sun.security.ssl.NewSessionTicket
InnerClasses:
  public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
  final HashAlg = sun.security.ssl.CipherSuite$HashAlg of sun.security.ssl.CipherSuite
  abstract NewSessionTicketMessage = sun.security.ssl.NewSessionTicket$NewSessionTicketMessage of sun.security.ssl.NewSessionTicket
  private final T13NewSessionTicketConsumer = sun.security.ssl.NewSessionTicket$T13NewSessionTicketConsumer of sun.security.ssl.NewSessionTicket
  final T13NewSessionTicketMessage = sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage of sun.security.ssl.NewSessionTicket