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

  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$NewSessionTicketConsumer this
        start local 1 // sun.security.ssl.ConnectionContext context
        start local 2 // java.nio.ByteBuffer message
         0: .line 325
            aload 1 /* context */
            checkcast sun.security.ssl.HandshakeContext
            astore 3 /* hc */
        start local 3 // sun.security.ssl.HandshakeContext hc
         1: .line 327
            new sun.security.ssl.NewSessionTicket$NewSessionTicketMessage
            dup
            aload 3 /* hc */
            aload 2 /* message */
            invokespecial sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
         2: .line 326
            astore 4 /* nstm */
        start local 4 // sun.security.ssl.NewSessionTicket$NewSessionTicketMessage nstm
         3: .line 328
            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 330
            ldc "Consuming NewSessionTicket message"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* nstm */
            aastore
         5: .line 329
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 334
      StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.NewSessionTicket$NewSessionTicketMessage
      StackMap stack:
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ifle 8
         7: .line 335
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            ldc 604800
            if_icmple 15
         8: .line 336
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 14
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 14
         9: .line 338
            new java.lang.StringBuilder
            dup
            ldc "Discarding NewSessionTicket with lifetime "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 339
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        11: .line 338
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 339
            aload 4 /* nstm */
            aastore
        13: .line 337
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 341
      StackMap locals:
      StackMap stack:
            return
        15: .line 345
      StackMap locals:
      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;
        16: .line 344
            checkcast sun.security.ssl.SSLSessionContextImpl
            astore 5 /* sessionCache */
        start local 5 // sun.security.ssl.SSLSessionContextImpl sessionCache
        17: .line 347
            aload 5 /* sessionCache */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.getSessionTimeout:()I
            ldc 604800
            if_icmple 22
        18: .line 348
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 21
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 21
        19: .line 350
            ldc "Session cache lifetime is too long. Discarding ticket."
            iconst_0
            anewarray java.lang.Object
        20: .line 349
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        21: .line 352
      StackMap locals: sun.security.ssl.SSLSessionContextImpl
      StackMap stack:
            return
        22: .line 355
      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
        23: .line 358
            aload 6 /* sessionToSave */
            invokevirtual sun.security.ssl.SSLSessionImpl.getResumptionMasterSecret:()Ljava/util/Optional;
        24: .line 357
            astore 7 /* resumptionMasterSecret */
        start local 7 // java.util.Optional resumptionMasterSecret
        25: .line 359
            aload 7 /* resumptionMasterSecret */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 30
        26: .line 360
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 29
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 29
        27: .line 362
            ldc "Session has no resumption master secret. Ignoring ticket."
            iconst_0
            anewarray java.lang.Object
        28: .line 361
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        29: .line 364
      StackMap locals: sun.security.ssl.SSLSessionImpl java.util.Optional
      StackMap stack:
            return
        30: .line 369
      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;
            aload 7 /* resumptionMasterSecret */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast javax.crypto.SecretKey
        31: .line 370
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketNonce:[B
        32: .line 368
            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
        33: .line 376
            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
        34: .line 375
            astore 9 /* newId */
        start local 9 // sun.security.ssl.SessionId newId
        35: .line 377
            new sun.security.ssl.SSLSessionImpl
            dup
            aload 6 /* sessionToSave */
        36: .line 378
            aload 9 /* newId */
        37: .line 377
            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
        38: .line 379
            aload 6 /* sessionToSave */
            aload 10 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionImpl.addChild:(Lsun/security/ssl/SSLSessionImpl;)V
        39: .line 380
            aload 10 /* sessionCopy */
            aload 8 /* psk */
            invokevirtual sun.security.ssl.SSLSessionImpl.setPreSharedKey:(Ljavax/crypto/SecretKey;)V
        40: .line 381
            aload 10 /* sessionCopy */
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketAgeAdd:I
            invokevirtual sun.security.ssl.SSLSessionImpl.setTicketAgeAdd:(I)V
        41: .line 382
            aload 10 /* sessionCopy */
            aload 4 /* nstm */
            getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticket:[B
            invokevirtual sun.security.ssl.SSLSessionImpl.setPskIdentity:([B)V
        42: .line 383
            aload 5 /* sessionCache */
            aload 10 /* sessionCopy */
            invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
        43: .line 386
            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
        44: .line 387
            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 // java.util.Optional 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$NewSessionTicketConsumer this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   45     0                    this  Lsun/security/ssl/NewSessionTicket$NewSessionTicketConsumer;
            0   45     1                 context  Lsun/security/ssl/ConnectionContext;
            0   45     2                 message  Ljava/nio/ByteBuffer;
            1   45     3                      hc  Lsun/security/ssl/HandshakeContext;
            3   45     4                    nstm  Lsun/security/ssl/NewSessionTicket$NewSessionTicketMessage;
           17   45     5            sessionCache  Lsun/security/ssl/SSLSessionContextImpl;
           23   45     6           sessionToSave  Lsun/security/ssl/SSLSessionImpl;
           25   45     7  resumptionMasterSecret  Ljava/util/Optional<Ljavax/crypto/SecretKey;>;
           33   45     8                     psk  Ljavax/crypto/SecretKey;
           35   45     9                   newId  Lsun/security/ssl/SessionId;
           38   45    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
  private final NewSessionTicketConsumer = sun.security.ssl.NewSessionTicket$NewSessionTicketConsumer of sun.security.ssl.NewSessionTicket
  final NewSessionTicketMessage = sun.security.ssl.NewSessionTicket$NewSessionTicketMessage of sun.security.ssl.NewSessionTicket