final class sun.security.ssl.SSLEngineImpl extends javax.net.ssl.SSLEngine implements sun.security.ssl.SSLTransport
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLEngineImpl
super_class: javax.net.ssl.SSLEngine
{
private final sun.security.ssl.SSLContextImpl sslContext;
descriptor: Lsun/security/ssl/SSLContextImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.security.ssl.TransportContext conContext;
descriptor: Lsun/security/ssl/TransportContext;
flags: (0x0010) ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock engineLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(sun.security.ssl.SSLContextImpl);
descriptor: (Lsun/security/ssl/SSLContextImpl;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
iconst_m1
invokespecial sun.security.ssl.SSLEngineImpl.<init>:(Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SSLEngineImpl;
0 2 1 sslContext Lsun/security/ssl/SSLContextImpl;
MethodParameters:
Name Flags
sslContext
void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=9, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
iload 3
invokespecial javax.net.ssl.SSLEngine.<init>:(Ljava/lang/String;I)V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
aload 1
putfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
3: new sun.security.ssl.HandshakeHash
dup
invokespecial sun.security.ssl.HandshakeHash.<init>:()V
astore 4
start local 4 4: aload 1
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 10
5: aload 0
new sun.security.ssl.TransportContext
dup
aload 1
aload 0
6: new sun.security.ssl.DTLSInputRecord
dup
aload 4
invokespecial sun.security.ssl.DTLSInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
7: new sun.security.ssl.DTLSOutputRecord
dup
aload 4
invokespecial sun.security.ssl.DTLSOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
8: putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
9: goto 14
10: StackMap locals: sun.security.ssl.SSLEngineImpl sun.security.ssl.SSLContextImpl java.lang.String int sun.security.ssl.HandshakeHash
StackMap stack:
aload 0
new sun.security.ssl.TransportContext
dup
aload 1
aload 0
11: new sun.security.ssl.SSLEngineInputRecord
dup
aload 4
invokespecial sun.security.ssl.SSLEngineInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
12: new sun.security.ssl.SSLEngineOutputRecord
dup
aload 4
invokespecial sun.security.ssl.SSLEngineOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
13: putfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
14: StackMap locals:
StackMap stack:
aload 2
ifnull 19
15: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
16: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
aload 2
17: invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
18: putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
19: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/ssl/SSLEngineImpl;
0 20 1 sslContext Lsun/security/ssl/SSLContextImpl;
0 20 2 host Ljava/lang/String;
0 20 3 port I
4 20 4 handshakeHash Lsun/security/ssl/HandshakeHash;
MethodParameters:
Name Flags
sslContext
host
port
public void beginHandshake();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isUnsureMode:Z
ifeq 5
2: new java.lang.IllegalStateException
dup
3: ldc "Client/Server mode has not yet been set."
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.kickstart:()V
6: goto 18
StackMap locals:
StackMap stack: java.io.IOException
7: astore 1
start local 1 8: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
9: ldc "Couldn't kickstart handshaking"
aload 1
10: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 1 11: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 12: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
13: ldc "Fail to begin handshake"
aload 1
14: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 1 15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
16: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: aload 2
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/ssl/SSLEngineImpl;
8 11 1 ioe Ljava/io/IOException;
12 15 1 ex Ljava/lang/Exception;
Exception table:
from to target type
5 6 7 Class java.io.IOException
5 6 11 Class java.lang.Exception
1 15 15 any
Exceptions:
throws javax.net.ssl.SSLException
public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
iload 3
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 4
aastore
iconst_0
iconst_1
invokevirtual sun.security.ssl.SSLEngineImpl.wrap:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/SSLEngineImpl;
0 1 1 appData [Ljava/nio/ByteBuffer;
0 1 2 offset I
0 1 3 length I
0 1 4 netData Ljava/nio/ByteBuffer;
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
appData
offset
length
netData
public javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isUnsureMode:Z
ifeq 5
2: new java.lang.IllegalStateException
dup
3: ldc "Client/Server mode has not yet been set."
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
6: aload 1
iload 2
iload 3
7: aload 4
iload 5
iload 6
8: invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
9: aload 0
10: aload 1
iload 2
iload 3
aload 4
iload 5
iload 6
11: invokevirtual sun.security.ssl.SSLEngineImpl.writeRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
astore 9
12: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: aload 9
areturn
14: StackMap locals:
StackMap stack: javax.net.ssl.SSLProtocolException
astore 7
start local 7 15: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
aload 7
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 16: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 17: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
18: ldc "problem wrapping app data"
aload 7
19: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 20: StackMap locals:
StackMap stack: java.lang.Exception
astore 7
start local 7 21: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
22: ldc "Fail to wrap application data"
aload 7
23: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 24: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
25: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: aload 8
athrow
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 27 0 this Lsun/security/ssl/SSLEngineImpl;
0 27 1 srcs [Ljava/nio/ByteBuffer;
0 27 2 srcsOffset I
0 27 3 srcsLength I
0 27 4 dsts [Ljava/nio/ByteBuffer;
0 27 5 dstsOffset I
0 27 6 dstsLength I
15 16 7 spe Ljavax/net/ssl/SSLProtocolException;
17 20 7 ioe Ljava/io/IOException;
21 24 7 ex Ljava/lang/Exception;
Exception table:
from to target type
9 12 14 Class javax.net.ssl.SSLProtocolException
9 12 16 Class java.io.IOException
9 12 20 Class java.lang.Exception
1 12 24 any
14 24 24 any
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
private javax.net.ssl.SSLEngineResult writeRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
ifeq 5
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
iconst_0
putfield sun.security.ssl.TransportContext.needHandshakeFinishedStatus:Z
2: new javax.net.ssl.SSLEngineResult
dup
3: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_0
iconst_0
4: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
ifeq 9
6: new javax.net.ssl.SSLEngineResult
dup
7: getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_0
iconst_0
8: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
astore 7
start local 7 10: aconst_null
astore 8
start local 8 11: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 21
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 21
12: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 21
13: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 21
14: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.kickstart:()V
15: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 8
16: aload 8
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 21
17: aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 20
aload 7
ifnull 20
18: aload 7
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
ifeq 20
19: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
getfield sun.security.ssl.OutputRecord.firstMessage:Z
ifeq 21
20: StackMap locals: sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
new javax.net.ssl.SSLEngineResult
dup
getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
aload 8
iconst_0
iconst_0
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
21: StackMap locals:
StackMap stack:
aload 8
ifnonnull 23
22: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 8
23: StackMap locals:
StackMap stack:
aload 8
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 25
24: new javax.net.ssl.SSLEngineResult
dup
getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
aload 8
iconst_0
iconst_0
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
25: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 26: iload 5
istore 10
start local 10 27: goto 30
28: StackMap locals: int int
StackMap stack:
iload 9
aload 4
iload 10
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 9
29: iinc 10 1
StackMap locals:
StackMap stack:
30: iload 10
iload 5
iload 6
iadd
if_icmplt 28
end local 10 31: iload 9
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
if_icmpge 35
32: new javax.net.ssl.SSLEngineResult
dup
33: getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_0
iconst_0
34: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
35: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 36: iload 2
istore 11
start local 11 37: goto 40
38: StackMap locals: int int
StackMap stack:
iload 10
aload 1
iload 11
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 10
39: iinc 11 1
StackMap locals:
StackMap stack:
40: iload 11
iload 2
iload 3
iadd
if_icmplt 38
end local 11 41: aconst_null
astore 11
start local 11 42: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
ifeq 46
aload 7
ifnull 49
43: aload 7
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
ifeq 49
44: aload 7
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 49
45: aload 8
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 49
46: StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext
StackMap stack:
aload 0
aconst_null
iconst_0
iconst_0
47: aload 4
iload 5
iload 6
48: invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
astore 11
49: StackMap locals:
StackMap stack:
aload 11
ifnonnull 58
iload 10
ifeq 58
50: aload 0
aload 1
iload 2
iload 3
51: aload 4
iload 5
iload 6
52: invokevirtual sun.security.ssl.SSLEngineImpl.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
astore 11
53: goto 58
StackMap locals:
StackMap stack: java.io.IOException
54: astore 12
start local 12 55: aload 12
instanceof javax.net.ssl.SSLException
ifeq 57
56: aload 12
athrow
57: StackMap locals: java.io.IOException
StackMap stack:
new javax.net.ssl.SSLException
dup
ldc "Write problems"
aload 12
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 58: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isOutboundDone:()Z
ifeq 59
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
goto 60
StackMap locals:
StackMap stack:
59: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngineResult$Status
60: astore 12
start local 12 61: aload 11
ifnull 64
aload 11
getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
ifnull 64
62: aload 11
getfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 8
63: goto 69
64: StackMap locals: javax.net.ssl.SSLEngineResult$Status
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 8
65: aload 11
ifnonnull 69
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 69
66: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifeq 69
67: aload 8
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 69
68: getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
astore 12
69: StackMap locals:
StackMap stack:
iload 10
istore 13
start local 13 70: iload 2
istore 14
start local 14 71: goto 74
72: StackMap locals: int int
StackMap stack:
iload 13
aload 1
iload 14
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 13
73: iinc 14 1
StackMap locals:
StackMap stack:
74: iload 14
iload 2
iload 3
iadd
if_icmplt 72
end local 14 75: iload 9
istore 14
start local 14 76: iload 5
istore 15
start local 15 77: goto 80
78: StackMap locals: int
StackMap stack:
iload 14
aload 4
iload 15
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 14
79: iinc 15 1
StackMap locals:
StackMap stack:
80: iload 15
iload 5
iload 6
iadd
if_icmplt 78
end local 15 81: new javax.net.ssl.SSLEngineResult
dup
aload 12
aload 8
iload 13
iload 14
82: aload 11
ifnull 83
aload 11
getfield sun.security.ssl.Ciphertext.recordSN:J
goto 84
StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext javax.net.ssl.SSLEngineResult$Status int int
StackMap stack: new 81 new 81 javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int
83: ldc -1
84: StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.HandshakeContext javax.net.ssl.SSLEngineResult$HandshakeStatus int int sun.security.ssl.Ciphertext javax.net.ssl.SSLEngineResult$Status int int
StackMap stack: new 81 new 81 javax.net.ssl.SSLEngineResult$Status javax.net.ssl.SSLEngineResult$HandshakeStatus int int long
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
areturn
end local 14 end local 13 end local 12 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 85 0 this Lsun/security/ssl/SSLEngineImpl;
0 85 1 srcs [Ljava/nio/ByteBuffer;
0 85 2 srcsOffset I
0 85 3 srcsLength I
0 85 4 dsts [Ljava/nio/ByteBuffer;
0 85 5 dstsOffset I
0 85 6 dstsLength I
10 85 7 hc Lsun/security/ssl/HandshakeContext;
11 85 8 hsStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
26 85 9 dstsRemains I
27 31 10 i I
36 85 10 srcsRemains I
37 41 11 i I
42 85 11 ciphertext Lsun/security/ssl/Ciphertext;
55 58 12 ioe Ljava/io/IOException;
61 85 12 status Ljavax/net/ssl/SSLEngineResult$Status;
70 85 13 deltaSrcs I
71 75 14 i I
76 85 14 deltaDsts I
77 81 15 i I
Exception table:
from to target type
42 53 54 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
private sun.security.ssl.Ciphertext encode(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aconst_null
astore 7
start local 7 1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
2: aload 1
iload 2
iload 3
aload 4
iload 5
iload 6
3: invokevirtual sun.security.ssl.OutputRecord.encode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Ciphertext;
astore 7
4: goto 9
StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Ciphertext
StackMap stack: javax.net.ssl.SSLHandshakeException
5: astore 8
start local 8 6: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
aload 8
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 7: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 8: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
aload 8
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 9: StackMap locals:
StackMap stack:
aload 7
ifnonnull 11
10: aconst_null
areturn
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 15
12: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnull 15
13: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableRetransmissions:Z
ifeq 15
14: iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 8
start local 8 17: aload 0
aload 7
getfield sun.security.ssl.Ciphertext.contentType:B
invokevirtual sun.security.ssl.SSLEngineImpl.tryToFinishHandshake:(B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
18: astore 9
start local 9 19: iload 8
ifeq 27
20: aload 9
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 27
21: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 27
22: aload 7
getfield sun.security.ssl.Ciphertext.handshakeType:B
getstatic sun.security.ssl.SSLHandshake.FINISHED:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
if_icmpne 27
23: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 25
ldc "ssl,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 25
24: ldc "retransmit the last flight messages"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
25: StackMap locals: int javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
invokevirtual sun.security.ssl.OutputRecord.launchRetransmission:()V
26: getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 9
27: StackMap locals:
StackMap stack:
aload 9
ifnonnull 29
28: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 9
29: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
invokevirtual sun.security.ssl.OutputRecord.seqNumIsHuge:()Z
ifne 31
30: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.atKeyLimit:()Z
ifeq 32
31: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual sun.security.ssl.SSLEngineImpl.tryKeyUpdate:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 9
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
getfield sun.security.ssl.SSLSessionImpl.updateNST:Z
ifeq 35
33: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifne 35
34: aload 0
aload 9
invokevirtual sun.security.ssl.SSLEngineImpl.tryNewSessionTicket:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 9
35: StackMap locals:
StackMap stack:
aload 7
aload 9
putfield sun.security.ssl.Ciphertext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
36: aload 7
areturn
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 37 0 this Lsun/security/ssl/SSLEngineImpl;
0 37 1 srcs [Ljava/nio/ByteBuffer;
0 37 2 srcsOffset I
0 37 3 srcsLength I
0 37 4 dsts [Ljava/nio/ByteBuffer;
0 37 5 dstsOffset I
0 37 6 dstsLength I
1 37 7 ciphertext Lsun/security/ssl/Ciphertext;
6 7 8 she Ljavax/net/ssl/SSLHandshakeException;
8 9 8 e Ljava/io/IOException;
17 37 8 needRetransmission Z
19 37 9 hsStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
Exception table:
from to target type
1 4 5 Class javax.net.ssl.SSLHandshakeException
1 4 7 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
private javax.net.ssl.SSLEngineResult$HandshakeStatus tryToFinishHandshake(byte);
descriptor: (B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iload 1
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 11
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
invokevirtual sun.security.ssl.OutputRecord.isEmpty:()Z
ifeq 11
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 6
4: getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
5: goto 11
StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isPostHandshakeContext:()Z
ifeq 9
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.finishPostHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
8: goto 11
StackMap locals:
StackMap stack:
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.handshakeFinished:Z
ifeq 11
10: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.finishHandshake:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/SSLEngineImpl;
0 12 1 contentType B
1 12 2 hsStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
MethodParameters:
Name Flags
contentType
private javax.net.ssl.SSLEngineResult$HandshakeStatus tryKeyUpdate(javax.net.ssl.SSLEngineResult$HandshakeStatus);
descriptor: (Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 8
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 8
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 8
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 8
4: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 6
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 6
5: ldc "trigger key update"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.beginHandshake:()V
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
areturn
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ssl/SSLEngineImpl;
0 9 1 currentHandshakeStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
currentHandshakeStatus
private javax.net.ssl.SSLEngineResult$HandshakeStatus tryNewSessionTicket(javax.net.ssl.SSLEngineResult$HandshakeStatus);
descriptor: (Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 12
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 12
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 12
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 12
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 12
5: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 7
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 7
6: ldc "trigger NST"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
iconst_0
putfield sun.security.ssl.SSLSessionImpl.updateNST:Z
8: getstatic sun.security.ssl.NewSessionTicket.t13PosthandshakeProducer:Lsun/security/ssl/SSLProducer;
9: new sun.security.ssl.PostHandshakeContext
dup
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokespecial sun.security.ssl.PostHandshakeContext.<init>:(Lsun/security/ssl/TransportContext;)V
10: invokeinterface sun.security.ssl.SSLProducer.produce:(Lsun/security/ssl/ConnectionContext;)[B
pop
11: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
areturn
12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/SSLEngineImpl;
0 13 1 currentHandshakeStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
currentHandshakeStatus
private static void checkParams(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
ifnull 1
aload 3
ifnonnull 4
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
2: ldc "source or destination buffer is null"
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 4
iflt 6
iload 5
iflt 6
5: iload 4
aload 3
arraylength
iload 5
isub
if_icmple 9
6: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
7: ldc "index out of bound of the destination buffers"
8: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iload 1
iflt 11
iload 2
iflt 11
10: iload 1
aload 0
arraylength
iload 2
isub
if_icmple 14
11: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
12: ldc "index out of bound of the source buffers"
13: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
iload 4
istore 6
start local 6 15: goto 23
16: StackMap locals: int
StackMap stack:
aload 3
iload 6
aaload
ifnonnull 20
17: new java.lang.IllegalArgumentException
dup
18: new java.lang.StringBuilder
dup
ldc "destination buffer["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] == null"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 22
21: new java.nio.ReadOnlyBufferException
dup
invokespecial java.nio.ReadOnlyBufferException.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
23: iload 6
iload 4
iload 5
iadd
if_icmplt 16
end local 6 24: iload 1
istore 6
start local 6 25: goto 31
26: StackMap locals:
StackMap stack:
aload 0
iload 6
aaload
ifnonnull 30
27: new java.lang.IllegalArgumentException
dup
28: new java.lang.StringBuilder
dup
ldc "source buffer["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] == null"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
31: iload 6
iload 1
iload 2
iadd
if_icmplt 26
end local 6 32: return
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 33 0 srcs [Ljava/nio/ByteBuffer;
0 33 1 srcsOffset I
0 33 2 srcsLength I
0 33 3 dsts [Ljava/nio/ByteBuffer;
0 33 4 dstsOffset I
0 33 5 dstsLength I
15 24 6 i I
25 32 6 i I
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int);
descriptor: (Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
1: iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
iconst_0
iconst_1
aload 2
iload 3
iload 4
2: invokevirtual sun.security.ssl.SSLEngineImpl.unwrap:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLEngineImpl;
0 3 1 src Ljava/nio/ByteBuffer;
0 3 2 dsts [Ljava/nio/ByteBuffer;
0 3 3 offset I
0 3 4 length I
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
src
dsts
offset
length
public javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isUnsureMode:Z
ifeq 5
2: new java.lang.IllegalStateException
dup
3: ldc "Client/Server mode has not yet been set."
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.checkTaskThrown:()V
6: aload 1
iload 2
iload 3
7: aload 4
iload 5
iload 6
8: invokestatic sun.security.ssl.SSLEngineImpl.checkParams:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)V
9: aload 0
10: aload 1
iload 2
iload 3
aload 4
iload 5
iload 6
11: invokevirtual sun.security.ssl.SSLEngineImpl.readRecord:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
astore 9
12: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: aload 9
areturn
14: StackMap locals:
StackMap stack: javax.net.ssl.SSLProtocolException
astore 7
start local 7 15: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
16: aload 7
invokevirtual javax.net.ssl.SSLProtocolException.getMessage:()Ljava/lang/String;
aload 7
17: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 18: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 19: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
20: ldc "problem unwrapping net record"
aload 7
21: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 22: StackMap locals:
StackMap stack: java.lang.Exception
astore 7
start local 7 23: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
24: ldc "Fail to unwrap network record"
aload 7
25: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 26: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
27: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
28: aload 8
athrow
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 29 0 this Lsun/security/ssl/SSLEngineImpl;
0 29 1 srcs [Ljava/nio/ByteBuffer;
0 29 2 srcsOffset I
0 29 3 srcsLength I
0 29 4 dsts [Ljava/nio/ByteBuffer;
0 29 5 dstsOffset I
0 29 6 dstsLength I
15 18 7 spe Ljavax/net/ssl/SSLProtocolException;
19 22 7 ioe Ljava/io/IOException;
23 26 7 ex Ljava/lang/Exception;
Exception table:
from to target type
9 12 14 Class javax.net.ssl.SSLProtocolException
9 12 18 Class java.io.IOException
9 12 22 Class java.lang.Exception
1 12 26 any
14 26 26 any
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
private javax.net.ssl.SSLEngineResult readRecord(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
ifeq 4
1: new javax.net.ssl.SSLEngineResult
dup
2: getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_0
iconst_0
3: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
4: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 5: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 12
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 12
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 12
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 12
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.kickstart:()V
9: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
10: aload 7
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 12
11: new javax.net.ssl.SSLEngineResult
dup
getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
aload 7
iconst_0
iconst_0
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
12: StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 7
ifnonnull 14
13: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
14: StackMap locals:
StackMap stack:
aload 7
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 16
15: new javax.net.ssl.SSLEngineResult
dup
getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
aload 7
iconst_0
iconst_0
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
16: StackMap locals:
StackMap stack:
aload 7
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP_AGAIN:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 36
17: aconst_null
astore 8
start local 8 18: aload 0
aconst_null
iconst_0
iconst_0
19: aload 4
iload 5
iload 6
20: invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
astore 8
21: goto 26
StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus sun.security.ssl.Plaintext
StackMap stack: java.io.IOException
22: astore 9
start local 9 23: aload 9
instanceof javax.net.ssl.SSLException
ifeq 25
24: aload 9
athrow
25: StackMap locals: java.io.IOException
StackMap stack:
new javax.net.ssl.SSLException
dup
ldc "readRecord"
aload 9
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 26: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
ifeq 27
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
goto 28
StackMap locals:
StackMap stack:
27: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngineResult$Status
28: astore 9
start local 9 29: aload 8
getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
ifnull 32
30: aload 8
getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
31: goto 33
32: StackMap locals: javax.net.ssl.SSLEngineResult$Status
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
33: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLEngineResult
dup
34: aload 9
aload 7
iconst_0
iconst_0
aload 8
getfield sun.security.ssl.Plaintext.recordSN:J
35: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
areturn
end local 9 end local 8 36: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 37: iload 2
istore 9
start local 9 38: goto 41
39: StackMap locals: int int
StackMap stack:
iload 8
aload 1
iload 9
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 8
40: iinc 9 1
StackMap locals:
StackMap stack:
41: iload 9
iload 2
iload 3
iadd
if_icmplt 39
end local 9 42: iload 8
ifne 46
43: new javax.net.ssl.SSLEngineResult
dup
44: getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
aload 7
iconst_0
iconst_0
45: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
46: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 47: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
48: aload 1
iload 2
iload 3
49: invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:([Ljava/nio/ByteBuffer;II)I
istore 9
50: goto 63
StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus int int
StackMap stack: javax.net.ssl.SSLException
51: astore 10
start local 10 52: aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 62
53: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 55
ldc "ssl,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 55
54: ldc "Discard invalid DTLS records"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 10
aastore
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
55: StackMap locals: javax.net.ssl.SSLException
StackMap stack:
iconst_0
istore 11
start local 11 56: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
ifeq 57
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
goto 58
StackMap locals: int
StackMap stack:
57: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngineResult$Status
58: astore 12
start local 12 59: aload 7
ifnonnull 61
60: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
61: StackMap locals: javax.net.ssl.SSLEngineResult$Status
StackMap stack:
new javax.net.ssl.SSLEngineResult
dup
aload 12
aload 7
iload 11
iconst_0
ldc -1
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
areturn
end local 12 end local 11 62: StackMap locals:
StackMap stack:
aload 10
athrow
end local 10 63: StackMap locals:
StackMap stack:
iload 9
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
if_icmple 77
64: aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifeq 66
65: sipush 16717
goto 67
StackMap locals:
StackMap stack:
66: ldc 33093
67: StackMap locals:
StackMap stack: int
istore 10
start local 10 68: iload 9
iload 10
if_icmpgt 70
aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.isDTLS:()Z
ifne 70
69: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.expandBufferSizes:()V
70: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPacketBufferSize:()I
istore 10
71: iload 9
iload 10
if_icmple 77
72: new javax.net.ssl.SSLProtocolException
dup
73: new java.lang.StringBuilder
dup
ldc "Input record too big: max = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
74: iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " len = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
75: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
76: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 10 77: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 78: iload 5
istore 11
start local 11 79: goto 82
80: StackMap locals: int int
StackMap stack:
iload 10
aload 4
iload 11
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 10
81: iinc 11 1
StackMap locals:
StackMap stack:
82: iload 11
iload 5
iload 6
iadd
if_icmplt 80
end local 11 83: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifeq 90
84: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
iload 9
invokevirtual sun.security.ssl.InputRecord.estimateFragmentSize:(I)I
85: istore 11
start local 11 86: iload 11
iload 10
if_icmple 90
87: new javax.net.ssl.SSLEngineResult
dup
88: getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
aload 7
iconst_0
iconst_0
89: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
end local 11 90: StackMap locals:
StackMap stack:
iload 9
iconst_m1
if_icmpeq 91
iload 8
iload 9
if_icmpge 92
91: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLEngineResult
dup
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
aload 7
iconst_0
iconst_0
invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
areturn
92: StackMap locals:
StackMap stack:
aconst_null
astore 11
start local 11 93: aload 0
aload 1
iload 2
iload 3
94: aload 4
iload 5
iload 6
95: invokevirtual sun.security.ssl.SSLEngineImpl.decode:([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
astore 11
96: goto 101
StackMap locals: sun.security.ssl.SSLEngineImpl java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult$HandshakeStatus int int int sun.security.ssl.Plaintext
StackMap stack: java.io.IOException
97: astore 12
start local 12 98: aload 12
instanceof javax.net.ssl.SSLException
ifeq 100
99: aload 12
athrow
100: StackMap locals: java.io.IOException
StackMap stack:
new javax.net.ssl.SSLException
dup
ldc "readRecord"
aload 12
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 101: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
ifeq 102
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
goto 103
StackMap locals:
StackMap stack:
102: getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
StackMap locals:
StackMap stack: javax.net.ssl.SSLEngineResult$Status
103: astore 12
start local 12 104: aload 11
getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
ifnull 107
105: aload 11
getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
106: goto 108
107: StackMap locals: javax.net.ssl.SSLEngineResult$Status
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 7
108: StackMap locals:
StackMap stack:
iload 8
istore 13
start local 13 109: iload 2
istore 14
start local 14 110: goto 113
111: StackMap locals: int int
StackMap stack:
iload 13
aload 1
iload 14
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 13
112: iinc 14 1
StackMap locals:
StackMap stack:
113: iload 14
iload 2
iload 3
iadd
if_icmplt 111
end local 14 114: iload 10
istore 14
start local 14 115: iload 5
istore 15
start local 15 116: goto 119
117: StackMap locals: int
StackMap stack:
iload 14
aload 4
iload 15
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 14
118: iinc 15 1
StackMap locals:
StackMap stack:
119: iload 15
iload 5
iload 6
iadd
if_icmplt 117
end local 15 120: new javax.net.ssl.SSLEngineResult
dup
121: aload 12
aload 7
iload 13
iload 14
aload 11
getfield sun.security.ssl.Plaintext.recordSN:J
122: invokespecial javax.net.ssl.SSLEngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;IIJ)V
areturn
end local 14 end local 13 end local 12 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 123 0 this Lsun/security/ssl/SSLEngineImpl;
0 123 1 srcs [Ljava/nio/ByteBuffer;
0 123 2 srcsOffset I
0 123 3 srcsLength I
0 123 4 dsts [Ljava/nio/ByteBuffer;
0 123 5 dstsOffset I
0 123 6 dstsLength I
5 123 7 hsStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
18 36 8 plainText Lsun/security/ssl/Plaintext;
23 26 9 ioe Ljava/io/IOException;
29 36 9 status Ljavax/net/ssl/SSLEngineResult$Status;
37 123 8 srcsRemains I
38 42 9 i I
47 123 9 packetLen I
52 63 10 ssle Ljavax/net/ssl/SSLException;
56 62 11 deltaNet I
59 62 12 status Ljavax/net/ssl/SSLEngineResult$Status;
68 77 10 largestRecordSize I
78 123 10 dstsRemains I
79 83 11 i I
86 90 11 FragLen I
93 123 11 plainText Lsun/security/ssl/Plaintext;
98 101 12 ioe Ljava/io/IOException;
104 123 12 status Ljavax/net/ssl/SSLEngineResult$Status;
109 123 13 deltaNet I
110 114 14 i I
115 123 14 deltaApp I
116 120 15 i I
Exception table:
from to target type
18 21 22 Class java.io.IOException
47 50 51 Class javax.net.ssl.SSLException
93 96 97 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
private sun.security.ssl.Plaintext decode(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
1: aload 1
iload 2
iload 3
2: aload 4
iload 5
iload 6
3: invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
astore 7
start local 7 4: aload 7
getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
if_acmpeq 15
5: aload 0
aload 7
getfield sun.security.ssl.Plaintext.contentType:B
invokevirtual sun.security.ssl.SSLEngineImpl.tryToFinishHandshake:(B)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 8
start local 8 6: aload 8
ifnonnull 9
7: aload 7
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
8: goto 10
9: StackMap locals: sun.security.ssl.Plaintext javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 7
aload 8
putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
ifne 12
11: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.atKeyLimit:()Z
ifeq 15
12: StackMap locals:
StackMap stack:
aload 7
13: aload 0
aload 7
getfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual sun.security.ssl.SSLEngineImpl.tryKeyUpdate:(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
14: putfield sun.security.ssl.Plaintext.handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
end local 8 15: StackMap locals:
StackMap stack:
aload 7
areturn
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 16 0 this Lsun/security/ssl/SSLEngineImpl;
0 16 1 srcs [Ljava/nio/ByteBuffer;
0 16 2 srcsOffset I
0 16 3 srcsLength I
0 16 4 dsts [Ljava/nio/ByteBuffer;
0 16 5 dstsOffset I
0 16 6 dstsLength I
4 16 7 pt Lsun/security/ssl/Plaintext;
6 15 8 hsStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
public java.lang.Runnable getDelegatedTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnull 11
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.taskDelegated:Z
ifne 11
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.delegatedActions:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifne 11
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
iconst_1
putfield sun.security.ssl.HandshakeContext.taskDelegated:Z
5: new sun.security.ssl.SSLEngineImpl$DelegatedTask
dup
aload 0
invokespecial sun.security.ssl.SSLEngineImpl$DelegatedTask.<init>:(Lsun/security/ssl/SSLEngineImpl;)V
astore 2
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 2
areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: aload 1
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 6 8 any
public void closeInbound();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.security.ssl.SSLEngineImpl.isInboundDone:()Z
ifeq 4
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: return
4: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 6
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 6
5: ldc "Closing inbound of SSLEngine"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
ifne 12
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 9
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnull 12
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
10: ldc "closing inbound before receiving peer's close_notify"
11: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.closeInbound:()V
13: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 1
15: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 1
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 14 any
4 14 14 any
Exceptions:
throws javax.net.ssl.SSLException
public boolean isInboundDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
istore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public void closeOutbound();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifeq 4
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: return
4: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 6
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 6
5: ldc "Closing outbound of SSLEngine"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.closeOutbound:()V
7: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 1
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: aload 1
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 8 any
4 8 8 any
public boolean isOutboundDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
istore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public java.lang.String[] getSupportedCipherSuites();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSupportedCipherSuites:()Ljava/util/List;
invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/SSLEngineImpl;
public java.lang.String[] getEnabledCipherSuites();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public void setEnabledCipherSuites(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
2: aload 1
invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
3: putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/SSLEngineImpl;
0 10 1 suites [Ljava/lang/String;
Exception table:
from to target type
1 5 5 any
MethodParameters:
Name Flags
suites
public java.lang.String[] getSupportedProtocols();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
1: invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SSLEngineImpl;
public java.lang.String[] getEnabledProtocols();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
2: invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
astore 2
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
4: aload 2
areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 3 5 any
public void setEnabledProtocols(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Protocols cannot be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
4: aload 1
invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
5: putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/SSLEngineImpl;
0 12 1 protocols [Ljava/lang/String;
Exception table:
from to target type
1 7 7 any
MethodParameters:
Name Flags
protocols
public javax.net.ssl.SSLSession getSession();
descriptor: ()Ljavax/net/ssl/SSLSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public javax.net.ssl.SSLSession getHandshakeSession();
descriptor: ()Ljavax/net/ssl/SSLSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 3
2: aconst_null
goto 4
StackMap locals:
StackMap stack:
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
StackMap locals:
StackMap stack: sun.security.ssl.SSLSessionImpl
4: astore 2
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 5 7 any
public javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus();
descriptor: ()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public void setUseClientMode(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
iload 1
invokevirtual sun.security.ssl.TransportContext.setUseClientMode:(Z)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLEngineImpl;
0 8 1 mode Z
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
mode
public boolean getUseClientMode();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
istore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public void setNeedClientAuth(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
2: iload 1
ifeq 3
getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
goto 4
3: StackMap locals:
StackMap stack: sun.security.ssl.SSLConfiguration
getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
4: StackMap locals: sun.security.ssl.SSLEngineImpl int
StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 2
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 2
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLEngineImpl;
0 11 1 need Z
Exception table:
from to target type
1 6 6 any
MethodParameters:
Name Flags
need
public boolean getNeedClientAuth();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
2: getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
3: if_acmpne 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 2
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: iload 2
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 6 8 any
public void setWantClientAuth(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
2: iload 1
ifeq 3
getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
goto 4
3: StackMap locals:
StackMap stack: sun.security.ssl.SSLConfiguration
getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
4: StackMap locals: sun.security.ssl.SSLEngineImpl int
StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 2
7: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 2
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLEngineImpl;
0 11 1 want Z
Exception table:
from to target type
1 6 6 any
MethodParameters:
Name Flags
want
public boolean getWantClientAuth();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
2: getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
3: if_acmpne 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 2
6: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: iload 2
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 6 8 any
public void setEnableSessionCreation(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
iload 1
putfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLEngineImpl;
0 8 1 flag Z
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
flag
public boolean getEnableSessionCreation();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
istore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public javax.net.ssl.SSLParameters getSSLParameters();
descriptor: ()Ljavax/net/ssl/SSLParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
invokevirtual sun.security.ssl.SSLConfiguration.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public void setSSLParameters(javax.net.ssl.SSLParameters);
descriptor: (Ljavax/net/ssl/SSLParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
aload 1
invokevirtual sun.security.ssl.SSLConfiguration.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
ifeq 10
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
5: invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/SSLEngineImpl;
0 12 1 params Ljavax/net/ssl/SSLParameters;
Exception table:
from to target type
1 7 7 any
MethodParameters:
Name Flags
params
public java.lang.String getApplicationProtocol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.applicationProtocol:Ljava/lang/String;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
public java.lang.String getHandshakeApplicationProtocol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 3
2: aconst_null
goto 4
StackMap locals:
StackMap stack:
3: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
getfield sun.security.ssl.HandshakeContext.applicationProtocol:Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
4: astore 2
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 5 7 any
public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String>);
descriptor: (Ljava/util/function/BiFunction;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
aload 1
putfield sun.security.ssl.SSLConfiguration.engineAPSelector:Ljava/util/function/BiFunction;
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLEngineImpl;
0 8 1 selector Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
Exception table:
from to target type
1 3 3 any
Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
selector
public java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
descriptor: ()Ljava/util/function/BiFunction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.engineAPSelector:Ljava/util/function/BiFunction;
astore 2
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLEngineImpl;
Exception table:
from to target type
1 2 4 any
Signature: ()Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLEngine;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
public boolean useDelegatedTask();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/SSLEngineImpl;
private void checkTaskThrown();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
astore 2
start local 2 3: aload 2
ifnull 6
aload 2
getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
ifnull 6
4: aload 2
getfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
astore 1
5: aload 2
aconst_null
putfield sun.security.ssl.HandshakeContext.delegatedThrown:Ljava/lang/Exception;
6: StackMap locals: java.lang.Exception sun.security.ssl.HandshakeContext
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
ifnull 17
7: aload 1
ifnull 11
8: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
aload 1
if_acmpne 17
9: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
aconst_null
putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
10: goto 17
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
astore 1
12: aload 0
getfield sun.security.ssl.SSLEngineImpl.conContext:Lsun/security/ssl/TransportContext;
aconst_null
putfield sun.security.ssl.TransportContext.delegatedThrown:Ljava/lang/Exception;
end local 2 13: goto 17
StackMap locals: sun.security.ssl.SSLEngineImpl java.lang.Exception
StackMap stack: java.lang.Throwable
14: astore 3
15: aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 3
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineImpl.engineLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 1
ifnonnull 20
19: return
20: StackMap locals:
StackMap stack:
aload 1
instanceof javax.net.ssl.SSLException
ifeq 22
21: aload 1
checkcast javax.net.ssl.SSLException
athrow
22: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.RuntimeException
ifeq 24
23: aload 1
checkcast java.lang.RuntimeException
athrow
24: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.ssl.SSLEngineImpl.getTaskThrown:(Ljava/lang/Exception;)Ljavax/net/ssl/SSLException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/security/ssl/SSLEngineImpl;
1 25 1 exc Ljava/lang/Exception;
3 13 2 hc Lsun/security/ssl/HandshakeContext;
Exception table:
from to target type
2 14 14 any
Exceptions:
throws javax.net.ssl.SSLException
private static javax.net.ssl.SSLException getTaskThrown(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)Ljavax/net/ssl/SSLException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: ldc "Delegated task threw Exception or Error"
astore 1
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
instanceof java.lang.RuntimeException
ifeq 5
4: new java.lang.RuntimeException
dup
aload 1
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
instanceof javax.net.ssl.SSLHandshakeException
ifeq 8
6: new javax.net.ssl.SSLHandshakeException
dup
aload 1
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual javax.net.ssl.SSLHandshakeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
7: checkcast javax.net.ssl.SSLHandshakeException
areturn
8: StackMap locals:
StackMap stack:
aload 0
instanceof javax.net.ssl.SSLKeyException
ifeq 11
9: new javax.net.ssl.SSLKeyException
dup
aload 1
invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual javax.net.ssl.SSLKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
10: checkcast javax.net.ssl.SSLKeyException
areturn
11: StackMap locals:
StackMap stack:
aload 0
instanceof javax.net.ssl.SSLPeerUnverifiedException
ifeq 14
12: new javax.net.ssl.SSLPeerUnverifiedException
dup
aload 1
invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual javax.net.ssl.SSLPeerUnverifiedException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
13: checkcast javax.net.ssl.SSLPeerUnverifiedException
areturn
14: StackMap locals:
StackMap stack:
aload 0
instanceof javax.net.ssl.SSLProtocolException
ifeq 17
15: new javax.net.ssl.SSLProtocolException
dup
aload 1
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual javax.net.ssl.SSLProtocolException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
16: checkcast javax.net.ssl.SSLProtocolException
areturn
17: StackMap locals:
StackMap stack:
aload 0
instanceof javax.net.ssl.SSLException
ifeq 19
18: aload 0
checkcast javax.net.ssl.SSLException
areturn
19: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
aload 1
aload 0
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 taskThrown Ljava/lang/Exception;
1 20 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
taskThrown
}
SourceFile: "SSLEngineImpl.java"
NestMembers:
sun.security.ssl.SSLEngineImpl$DelegatedTask sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction
InnerClasses:
public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
private DelegatedTask = sun.security.ssl.SSLEngineImpl$DelegatedTask of sun.security.ssl.SSLEngineImpl