final class sun.security.ssl.NewSessionTicket$T13NewSessionTicketProducer implements sun.security.ssl.SSLProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.NewSessionTicket$T13NewSessionTicketProducer
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$T13NewSessionTicketProducer;
public byte[] produce(sun.security.ssl.ConnectionContext);
descriptor: (Lsun/security/ssl/ConnectionContext;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=12, args_size=2
start local 0 start local 1 0: aload 1
checkcast sun.security.ssl.HandshakeContext
astore 2
start local 2 1: aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.hasDelegatedFinished:Z
ifeq 4
2: aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
iconst_0
putfield sun.security.ssl.TransportContext.hasDelegatedFinished:Z
3: aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
iconst_1
putfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
4: StackMap locals: sun.security.ssl.HandshakeContext
StackMap stack:
aload 2
instanceof sun.security.ssl.ServerHandshakeContext
ifeq 20
5: aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifne 10
6: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 9
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 9
7: ldc "No session ticket produced: session is not resumable"
iconst_0
anewarray java.lang.Object
8: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeExtensions:Ljava/util/Map;
11: getstatic sun.security.ssl.SSLExtension.PSK_KEY_EXCHANGE_MODES:Lsun/security/ssl/SSLExtension;
12: invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeModesSpec
13: astore 3
start local 3 14: aload 3
ifnull 16
15: aload 3
getstatic sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeMode.PSK_DHE_KE:Lsun/security/ssl/PskKeyExchangeModesExtension$PskKeyExchangeMode;
invokevirtual sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeModesSpec.contains:(Lsun/security/ssl/PskKeyExchangeModesExtension$PskKeyExchangeMode;)Z
ifne 25
16: StackMap locals: sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeModesSpec
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 19
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 19
17: ldc "No session ticket produced: client does not support psk_dhe_ke"
iconst_0
anewarray java.lang.Object
18: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 20: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isPSKable:()Z
ifne 25
21: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 24
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 24
22: ldc "No session ticket produced: No session ticket allowed in this session"
iconst_0
anewarray java.lang.Object
23: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals:
StackMap stack:
aconst_null
areturn
25: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.engineGetServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
26: checkcast sun.security.ssl.SSLSessionContextImpl
astore 3
start local 3 27: new sun.security.ssl.SessionId
dup
iconst_1
28: aload 2
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
29: invokespecial sun.security.ssl.SessionId.<init>:(ZLjava/security/SecureRandom;)V
astore 4
start local 4 30: aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getResumptionMasterSecret:()Ljavax/crypto/SecretKey;
31: astore 5
start local 5 32: aload 5
ifnonnull 37
33: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 36
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 36
34: ldc "No session ticket produced: no resumption secret"
iconst_0
anewarray java.lang.Object
35: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
36: StackMap locals: sun.security.ssl.SSLSessionContextImpl sun.security.ssl.SessionId javax.crypto.SecretKey
StackMap stack:
aconst_null
areturn
37: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.incrTicketNonceCounter:()Ljava/math/BigInteger;
astore 6
start local 6 38: aload 6
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 7
start local 7 39: aload 2
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
40: aload 5
aload 7
41: invokestatic sun.security.ssl.NewSessionTicket.derivePreSharedKey:(Lsun/security/ssl/CipherSuite$HashAlg;Ljavax/crypto/SecretKey;[B)Ljavax/crypto/SecretKey;
astore 8
start local 8 42: aload 3
invokevirtual sun.security.ssl.SSLSessionContextImpl.getSessionTimeout:()I
istore 9
start local 9 43: iload 9
ldc 604800
if_icmple 48
44: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 47
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 47
45: ldc "No session ticket produced: session timeout"
iconst_0
anewarray java.lang.Object
46: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
47: StackMap locals: sun.security.ssl.NewSessionTicket$T13NewSessionTicketProducer sun.security.ssl.ConnectionContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLSessionContextImpl sun.security.ssl.SessionId javax.crypto.SecretKey java.math.BigInteger byte[] javax.crypto.SecretKey int
StackMap stack:
aconst_null
areturn
48: StackMap locals:
StackMap stack:
aconst_null
astore 10
start local 10 49: new sun.security.ssl.SSLSessionImpl
dup
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 4
invokespecial sun.security.ssl.SSLSessionImpl.<init>:(Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/SessionId;)V
50: astore 11
start local 11 51: aload 11
aload 8
invokevirtual sun.security.ssl.SSLSessionImpl.setPreSharedKey:(Ljavax/crypto/SecretKey;)V
52: aload 11
aload 4
invokevirtual sun.security.ssl.SessionId.getId:()[B
invokevirtual sun.security.ssl.SSLSessionImpl.setPskIdentity:([B)V
53: aload 2
getfield sun.security.ssl.HandshakeContext.statelessResumption:Z
ifeq 68
54: aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isStatelessable:()Z
ifeq 68
55: new sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage
dup
aload 2
56: iload 9
57: aload 2
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
58: aload 7
59: new sun.security.ssl.SessionTicketExtension$SessionTicketSpec
dup
invokespecial sun.security.ssl.SessionTicketExtension$SessionTicketSpec.<init>:()V
aload 2
aload 11
invokevirtual sun.security.ssl.SessionTicketExtension$SessionTicketSpec.encrypt:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/SSLSessionImpl;)[B
60: invokespecial sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage.<init>:(Lsun/security/ssl/HandshakeContext;ILjava/security/SecureRandom;[B[B)V
astore 10
61: aload 10
invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.isValid:()Z
ifne 64
62: aload 2
iconst_0
putfield sun.security.ssl.HandshakeContext.statelessResumption:Z
63: goto 68
64: StackMap locals: sun.security.ssl.NewSessionTicket$NewSessionTicketMessage sun.security.ssl.SSLSessionImpl
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 68
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 68
65: ldc "Produced NewSessionTicket stateless post-handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
66: aload 10
aastore
67: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
68: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.statelessResumption:Z
ifeq 70
69: aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.isStatelessable:()Z
ifne 81
70: StackMap locals:
StackMap stack:
new sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage
dup
aload 2
iload 9
71: aload 2
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
aload 7
72: aload 4
invokevirtual sun.security.ssl.SessionId.getId:()[B
73: invokespecial sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage.<init>:(Lsun/security/ssl/HandshakeContext;ILjava/security/SecureRandom;[B[B)V
astore 10
74: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 78
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 78
75: ldc "Produced NewSessionTicket post-handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
76: aload 10
aastore
77: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
78: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 11
invokevirtual sun.security.ssl.SSLSessionImpl.addChild:(Lsun/security/ssl/SSLSessionImpl;)V
79: aload 11
aload 10
invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.getTicketAgeAdd:()I
invokevirtual sun.security.ssl.SSLSessionImpl.setTicketAgeAdd:(I)V
80: aload 3
aload 11
invokevirtual sun.security.ssl.SSLSessionContextImpl.put:(Lsun/security/ssl/SSLSessionImpl;)V
81: StackMap locals:
StackMap stack:
aload 10
ifnull 86
82: aload 10
aload 2
getfield sun.security.ssl.HandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.NewSessionTicket$NewSessionTicketMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
83: aload 2
getfield sun.security.ssl.HandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
84: aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
ifeq 86
85: aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
iconst_0
putfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
86: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.finishPostHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
pop
87: aconst_null
areturn
end local 11 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 88 0 this Lsun/security/ssl/NewSessionTicket$T13NewSessionTicketProducer;
0 88 1 context Lsun/security/ssl/ConnectionContext;
1 88 2 hc Lsun/security/ssl/HandshakeContext;
14 20 3 pkemSpec Lsun/security/ssl/PskKeyExchangeModesExtension$PskKeyExchangeModesSpec;
27 88 3 sessionCache Lsun/security/ssl/SSLSessionContextImpl;
30 88 4 newId Lsun/security/ssl/SessionId;
32 88 5 resumptionMasterSecret Ljavax/crypto/SecretKey;
38 88 6 nonce Ljava/math/BigInteger;
39 88 7 nonceArr [B
42 88 8 psk Ljavax/crypto/SecretKey;
43 88 9 sessionTimeoutSeconds I
49 88 10 nstm Lsun/security/ssl/NewSessionTicket$NewSessionTicketMessage;
51 88 11 sessionCopy Lsun/security/ssl/SSLSessionImpl;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
}
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
final T13NewSessionTicketMessage = sun.security.ssl.NewSessionTicket$T13NewSessionTicketMessage of sun.security.ssl.NewSessionTicket
private final T13NewSessionTicketProducer = sun.security.ssl.NewSessionTicket$T13NewSessionTicketProducer of sun.security.ssl.NewSessionTicket
final PskKeyExchangeMode = sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeMode of sun.security.ssl.PskKeyExchangeModesExtension
final PskKeyExchangeModesSpec = sun.security.ssl.PskKeyExchangeModesExtension$PskKeyExchangeModesSpec of sun.security.ssl.PskKeyExchangeModesExtension
final SessionTicketSpec = sun.security.ssl.SessionTicketExtension$SessionTicketSpec of sun.security.ssl.SessionTicketExtension