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 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 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 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.HandshakeContext
astore 3
start local 3 1: new sun.security.ssl.NewSessionTicket$NewSessionTicketMessage
dup
aload 3
aload 2
invokespecial sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
2: astore 4
start local 4 3: 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: ldc "Consuming NewSessionTicket message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
5: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.NewSessionTicket$NewSessionTicketMessage
StackMap stack:
aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
ifle 8
7: aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
ldc 604800
if_icmple 15
8: 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: new java.lang.StringBuilder
dup
ldc "Discarding NewSessionTicket with lifetime "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketLifetime:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
12: aload 4
aastore
13: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
return
15: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
16: checkcast sun.security.ssl.SSLSessionContextImpl
astore 5
start local 5 17: aload 5
invokevirtual sun.security.ssl.SSLSessionContextImpl.getSessionTimeout:()I
ldc 604800
if_icmple 22
18: 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: ldc "Session cache lifetime is too long. Discarding ticket."
iconst_0
anewarray java.lang.Object
20: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
21: StackMap locals: sun.security.ssl.SSLSessionContextImpl
StackMap stack:
return
22: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
astore 6
start local 6 23: aload 6
invokevirtual sun.security.ssl.SSLSessionImpl.getResumptionMasterSecret:()Ljavax/crypto/SecretKey;
24: astore 7
start local 7 25: aload 7
ifnonnull 30
26: 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: ldc "Session has no resumption master secret. Ignoring ticket."
iconst_0
anewarray java.lang.Object
28: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals: sun.security.ssl.SSLSessionImpl javax.crypto.SecretKey
StackMap stack:
return
30: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
aload 7
31: aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketNonce:[B
32: invokestatic sun.security.ssl.NewSessionTicket.derivePreSharedKey:(Lsun/security/ssl/CipherSuite$HashAlg;Ljavax/crypto/SecretKey;[B)Ljavax/crypto/SecretKey;
astore 8
start local 8 33: new sun.security.ssl.SessionId
dup
iconst_1
aload 3
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: astore 9
start local 9 35: new sun.security.ssl.SSLSessionImpl
dup
aload 6
36: aload 9
37: invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/SessionId;)V
astore 10
start local 10 38: aload 6
aload 10
invokevirtual sun.security.ssl.SSLSessionImpl.addChild:(Lsun/security/ssl/SSLSessionImpl;)V
39: aload 10
aload 8
invokevirtual sun.security.ssl.SSLSessionImpl.setPreSharedKey:(Ljavax/crypto/SecretKey;)V
40: aload 10
aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticketAgeAdd:I
invokevirtual sun.security.ssl.SSLSessionImpl.setTicketAgeAdd:(I)V
41: aload 10
aload 4
getfield sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.ticket:[B
invokevirtual sun.security.ssl.SSLSessionImpl.setPskIdentity:([B)V
42: aload 5
aload 10
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
43: aload 3
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.finishPostHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
pop
44: return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 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