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 501
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 503
            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=10, 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 519
            aload 1 /* context */
            checkcast sun.security.ssl.HandshakeContext
            astore 3 /* hc */
        start local 3 // sun.security.ssl.HandshakeContext hc
         1: .line 521
            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 520
            astore 4 /* nstm */
        start local 4 // sun.security.ssl.NewSessionTicket$NewSessionTicketMessage nstm
         3: .line 522
            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 524
            ldc "Consuming NewSessionTicket message"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* nstm */
            aastore
         5: .line 523
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 528
      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 527
            checkcast sun.security.ssl.SSLSessionContextImpl
            astore 5 /* sessionCache */
        start local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
         8: .line 531
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ifle 10
         9: .line 532
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ldc 604800
            if_icmple 18
        10: .line 533
      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 535
            new java.lang.StringBuilder
            dup
            ldc "Discarding NewSessionTicket with lifetime "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 536
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 535
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 536
            aload 4 /* nstm */
            aastore
        15: .line 534
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 538
      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 539
            return
        18: .line 542
      StackMap locals:
      StackMap stack:
            aload 5 /* sessionCache */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.getSessionTimeout:()I
            ldc 604800
            if_icmple 23
        19: .line 543
            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 545
            ldc "Session cache lifetime is too long. Discarding ticket."
            iconst_0
            anewarray java.lang.Object
        21: .line 544
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 547
      StackMap locals:
      StackMap stack:
            return
        23: .line 550
      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 551
            aconst_null
            astore 7 /* psk */
        start local 7 // javax.crypto.SecretKey psk
        25: .line 552
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifeq 36
        26: .line 554
            aload 6 /* sessionToSave */
            invokevirtual sun.security.ssl.SSLSessionImpl.getResumptionMasterSecret:()Ljavax/crypto/SecretKey;
        27: .line 553
            astore 8 /* resumptionMasterSecret */
        start local 8 // javax.crypto.SecretKey resumptionMasterSecret
        28: .line 555
            aload 8 /* resumptionMasterSecret */
            ifnonnull 33
        29: .line 556
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 32
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 32
        30: .line 558
            ldc "Session has no resumption master secret. Ignoring ticket."
            iconst_0
            anewarray java.lang.Object
        31: .line 557
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        32: .line 561
      StackMap locals: sun.security.ssl.SSLSessionImpl javax.crypto.SecretKey javax.crypto.SecretKey
      StackMap stack:
            return
        33: .line 566
      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;
        34: .line 567
            aload 8 /* resumptionMasterSecret */
            aload 4 /* nstm */
            invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.getTicketNonce:()[B
        35: .line 565
            invokestatic sun.security.ssl.NewSessionTicket.derivePreSharedKey:(Lsun/security/ssl/CipherSuite$HashAlg;Ljavax/crypto/SecretKey;[B)Ljavax/crypto/SecretKey;
            astore 7 /* psk */
        end local 8 // javax.crypto.SecretKey resumptionMasterSecret
        36: .line 574
      StackMap locals:
      StackMap stack:
            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
        37: .line 573
            astore 8 /* newId */
        start local 8 // sun.security.ssl.SessionId newId
        38: .line 575
            new sun.security.ssl.SSLSessionImpl
            dup
            aload 6 /* sessionToSave */
        39: .line 576
            aload 8 /* newId */
        40: .line 575
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/SessionId;)V
            astore 9 /* sessionCopy */
        start local 9 // sun.security.ssl.SSLSessionImpl sessionCopy
        41: .line 577
            aload 6 /* sessionToSave */
            aload 9 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionImpl.addChild:(Lsun/security/ssl/SSLSessionImpl;)V
        42: .line 578
            aload 9 /* sessionCopy */
            aload 7 /* psk */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPreSharedKey:(Ljavax/crypto/SecretKey;)V
        43: .line 579
            aload 9 /* sessionCopy */
            aload 4 /* nstm */
            invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.getTicketAgeAdd:()I
            invokevirtual sun.security.ssl.SSLSessionImpl.setTicketAgeAdd:(I)V
        44: .line 580
            aload 9 /* sessionCopy */
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticket:[B
            invokevirtual sun.security.ssl.SSLSessionImpl.setPskIdentity:([B)V
        45: .line 581
            aload 5 /* sessionCache */
            aload 9 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        46: .line 584
            aload 3 /* hc */
            getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifeq 48
        47: .line 585
            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
        48: .line 587
      StackMap locals: sun.security.ssl.SessionId sun.security.ssl.SSLSessionImpl
      StackMap stack:
            return
        end local 9 // sun.security.ssl.SSLSessionImpl sessionCopy
        end local 8 // sun.security.ssl.SessionId newId
        end local 7 // javax.crypto.SecretKey psk
        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   49     0                    this  Lsun/security/ssl/NewSessionTicket$T13NewSessionTicketConsumer;
            0   49     1                 context  Lsun/security/ssl/ConnectionContext;
            0   49     2                 message  Ljava/nio/ByteBuffer;
            1   49     3                      hc  Lsun/security/ssl/HandshakeContext;
            3   49     4                    nstm  Lsun/security/ssl/NewSessionTicket$NewSessionTicketMessage;
            8   49     5            sessionCache  Lsun/security/ssl/SSLSessionContextImpl;
           24   49     6           sessionToSave  Lsun/security/ssl/SSLSessionImpl;
           25   49     7                     psk  Ljavax/crypto/SecretKey;
           28   36     8  resumptionMasterSecret  Ljavax/crypto/SecretKey;
           38   49     8                   newId  Lsun/security/ssl/SessionId;
           41   49     9             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