abstract class sun.security.ssl.OutputRecord extends java.io.ByteArrayOutputStream implements sun.security.ssl.Record, java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.ssl.OutputRecord
super_class: java.io.ByteArrayOutputStream
{
sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher;
descriptor: Lsun/security/ssl/SSLCipher$SSLWriteCipher;
flags: (0x0000)
sun.security.ssl.TransportContext tc;
descriptor: Lsun/security/ssl/TransportContext;
flags: (0x0000)
final sun.security.ssl.HandshakeHash handshakeHash;
descriptor: Lsun/security/ssl/HandshakeHash;
flags: (0x0010) ACC_FINAL
boolean firstMessage;
descriptor: Z
flags: (0x0000)
sun.security.ssl.ProtocolVersion protocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
sun.security.ssl.ProtocolVersion helloVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
boolean isFirstAppOutputRecord;
descriptor: Z
flags: (0x0000)
int packetSize;
descriptor: I
flags: (0x0000)
private int fragmentSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
volatile boolean isClosed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.util.concurrent.locks.ReentrantLock recordLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0010) ACC_FINAL
private static final int[] V3toV2CipherMap1;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] V3toV2CipherMap3;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] HANDSHAKE_MESSAGE_KEY_UPDATE;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 11
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_2
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
iconst_4
iastore
dup
bipush 7
iconst_5
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
bipush 6
iastore
dup
bipush 10
bipush 7
iastore
1: putstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
2: bipush 11
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
sipush 128
iastore
dup
iconst_4
sipush 128
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
sipush 128
iastore
dup
bipush 7
sipush 128
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
bipush 64
iastore
dup
bipush 10
sipush 192
iastore
3: putstatic sun.security.ssl.OutputRecord.V3toV2CipherMap3:[I
4: iconst_5
newarray 8
dup
iconst_0
getstatic sun.security.ssl.SSLHandshake.KEY_UPDATE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
bastore
dup
iconst_3
iconst_1
bastore
5: putstatic sun.security.ssl.OutputRecord.HANDSHAKE_MESSAGE_KEY_UPDATE:[B
6: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.ssl.HandshakeHash, sun.security.ssl.SSLCipher$SSLWriteCipher);
descriptor: (Lsun/security/ssl/HandshakeHash;Lsun/security/ssl/SSLCipher$SSLWriteCipher;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.io.ByteArrayOutputStream.<init>:()V
1: aload 0
iconst_1
putfield sun.security.ssl.OutputRecord.isFirstAppOutputRecord:Z
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
aload 2
putfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
4: aload 0
iconst_1
putfield sun.security.ssl.OutputRecord.firstMessage:Z
5: aload 0
sipush 16384
putfield sun.security.ssl.OutputRecord.fragmentSize:I
6: aload 0
aload 1
putfield sun.security.ssl.OutputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/OutputRecord;
0 8 1 handshakeHash Lsun/security/ssl/HandshakeHash;
0 8 2 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
MethodParameters:
Name Flags
handshakeHash
writeCipher
void setVersion(sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
aload 1
putfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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.OutputRecord.recordLock: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/OutputRecord;
0 8 1 protocolVersion Lsun/security/ssl/ProtocolVersion;
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
protocolVersion
void setHelloVersion(sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
aload 1
putfield sun.security.ssl.OutputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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.OutputRecord.recordLock: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/OutputRecord;
0 8 1 helloVersion Lsun/security/ssl/ProtocolVersion;
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
helloVersion
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
boolean seqNumIsHuge();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
getfield sun.security.ssl.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
ifnull 3
2: aload 0
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
getfield sun.security.ssl.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.seqNumIsHuge:()Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 2
5: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: iload 2
ireturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
8: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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/OutputRecord;
Exception table:
from to target type
1 5 7 any
abstract void encodeAlert(byte, byte);
descriptor: (BB)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
level
description
abstract void encodeHandshake(byte[], int, int);
descriptor: ([BII)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
offset
length
abstract void encodeChangeCipherSpec();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
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: (0x0000)
Code:
stack=2, locals=7, 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: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
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 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 srcs [Ljava/nio/ByteBuffer;
0 1 2 srcsOffset I
0 1 3 srcsLength I
0 1 4 dsts [Ljava/nio/ByteBuffer;
0 1 5 dstsOffset I
0 1 6 dstsLength I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
dsts
dstsOffset
dstsLength
void encodeV2NoCipher();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
Exceptions:
throws java.io.IOException
void deliver(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
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/OutputRecord;
0 1 1 source [B
0 1 2 offset I
0 1 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
offset
length
void setDeliverStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
outputStream
void changeWriteCiphers(sun.security.ssl.SSLCipher$SSLWriteCipher, boolean);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;Z)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.security.ssl.OutputRecord.isClosed:()Z
ifeq 6
2: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 4
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 4
3: ldc "outbound has closed, ignore outbound change_cipher_spec message"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: return
6: StackMap locals:
StackMap stack:
iload 2
ifeq 8
7: aload 0
invokevirtual sun.security.ssl.OutputRecord.encodeChangeCipherSpec:()V
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.dispose:()V
9: aload 0
aload 1
putfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
10: aload 0
iconst_1
putfield sun.security.ssl.OutputRecord.isFirstAppOutputRecord:Z
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 3
13: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 3
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/ssl/OutputRecord;
0 17 1 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 17 2 useChangeCipherSpec Z
Exception table:
from to target type
1 4 12 any
6 12 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
writeCipher
useChangeCipherSpec
void changeWriteCiphers(sun.security.ssl.SSLCipher$SSLWriteCipher, byte);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;B)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.security.ssl.OutputRecord.isClosed:()Z
ifeq 6
2: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 4
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 4
3: ldc "outbound has closed, ignore outbound key_update handshake message"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: return
6: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.OutputRecord.HANDSHAKE_MESSAGE_KEY_UPDATE:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 3
start local 3 7: aload 3
aload 3
arraylength
iconst_1
isub
iload 2
bastore
8: aload 0
aload 3
iconst_0
aload 3
arraylength
invokevirtual sun.security.ssl.OutputRecord.encodeHandshake:([BII)V
9: aload 0
invokevirtual sun.security.ssl.OutputRecord.flush:()V
10: aload 1
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.dispose:()V
11: aload 0
aload 1
putfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
12: aload 0
iconst_1
putfield sun.security.ssl.OutputRecord.isFirstAppOutputRecord:Z
end local 3 13: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
15: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 4
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/ssl/OutputRecord;
0 19 1 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 19 2 keyUpdateRequest B
7 13 3 hm [B
Exception table:
from to target type
1 4 14 any
6 14 14 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
writeCipher
keyUpdateRequest
void changePacketSize(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
iload 1
putfield sun.security.ssl.OutputRecord.packetSize:I
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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.OutputRecord.recordLock: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/OutputRecord;
0 8 1 packetSize I
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
packetSize
void changeFragmentSize(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
iload 1
putfield sun.security.ssl.OutputRecord.fragmentSize:I
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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.OutputRecord.recordLock: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/OutputRecord;
0 8 1 fragmentSize I
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
fragmentSize
int getMaxPacketSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.OutputRecord.packetSize:I
istore 2
2: aload 0
getfield sun.security.ssl.OutputRecord.recordLock: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.OutputRecord.recordLock: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/OutputRecord;
Exception table:
from to target type
1 2 4 any
void initHandshaker();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
void finishHandshake();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
void launchRetransmission();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.security.ssl.OutputRecord.isClosed:Z
ifeq 4
2: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: return
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.OutputRecord.isClosed:Z
5: aload 0
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.dispose:()V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 1
8: aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/OutputRecord;
Exception table:
from to target type
1 2 7 any
4 7 7 any
Exceptions:
throws java.io.IOException
boolean isClosed();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.OutputRecord.isClosed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
int calculateFragmentSize(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.OutputRecord.fragmentSize:I
ifle 2
1: iload 1
aload 0
getfield sun.security.ssl.OutputRecord.fragmentSize:I
invokestatic java.lang.Math.min:(II)I
istore 1
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 4
3: iload 1
getstatic sun.security.ssl.OutputRecord$T13PaddingHolder.zeros:[B
arraylength
isub
iconst_1
isub
ireturn
4: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/OutputRecord;
0 5 1 fragmentLimit I
MethodParameters:
Name Flags
fragmentLimit
static long encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=8, 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 6
getfield sun.security.ssl.ProtocolVersion.isDTLS:Z
istore 7
start local 7 1: iload 7
ifeq 11
2: aload 6
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 7
3: aload 0
4: iload 1
aload 2
iload 3
5: iload 4
iload 5
aload 6
6: invokestatic sun.security.ssl.OutputRecord.d13Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lreturn
7: StackMap locals: int
StackMap stack:
aload 0
8: iload 1
aload 2
iload 3
9: iload 4
iload 5
aload 6
10: invokestatic sun.security.ssl.OutputRecord.d10Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lreturn
11: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 16
12: aload 0
13: iload 1
aload 2
iload 3
14: iload 4
iload 5
aload 6
15: invokestatic sun.security.ssl.OutputRecord.t13Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lreturn
16: StackMap locals:
StackMap stack:
aload 0
17: iload 1
aload 2
iload 3
18: iload 4
iload 5
aload 6
19: invokestatic sun.security.ssl.OutputRecord.t10Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lreturn
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 20 0 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 20 1 contentType B
0 20 2 destination Ljava/nio/ByteBuffer;
0 20 3 headerOffset I
0 20 4 dstLim I
0 20 5 headerSize I
0 20 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
1 20 7 isDTLS Z
MethodParameters:
Name Flags
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
private static long d13Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, 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: new java.lang.UnsupportedOperationException
dup
ldc "Not supported yet."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
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 1 0 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 1 1 contentType B
0 1 2 destination Ljava/nio/ByteBuffer;
0 1 3 headerOffset I
0 1 4 dstLim I
0 1 5 headerSize I
0 1 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
MethodParameters:
Name Flags
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
private static long d10Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, 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.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 7
start local 7 1: aload 0
iload 1
aload 2
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.encrypt:(BLjava/nio/ByteBuffer;)I
pop
2: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
iload 3
isub
iload 5
isub
istore 8
start local 8 3: aload 2
iload 3
iload 1
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
4: aload 2
iload 3
iconst_1
iadd
aload 6
getfield sun.security.ssl.ProtocolVersion.major:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
5: aload 2
iload 3
iconst_2
iadd
aload 6
getfield sun.security.ssl.ProtocolVersion.minor:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
6: aload 2
iload 3
iconst_3
iadd
aload 7
iconst_0
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
7: aload 2
iload 3
iconst_4
iadd
aload 7
iconst_1
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
8: aload 2
iload 3
iconst_5
iadd
aload 7
iconst_2
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
9: aload 2
iload 3
bipush 6
iadd
aload 7
iconst_3
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
10: aload 2
iload 3
bipush 7
iadd
aload 7
iconst_4
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
11: aload 2
iload 3
bipush 8
iadd
aload 7
iconst_5
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
12: aload 2
iload 3
bipush 9
iadd
aload 7
bipush 6
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
13: aload 2
iload 3
bipush 10
iadd
aload 7
bipush 7
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
14: aload 2
iload 3
bipush 11
iadd
iload 8
bipush 8
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
15: aload 2
iload 3
bipush 12
iadd
iload 8
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
16: aload 2
aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
17: aload 7
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
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 18 0 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 18 1 contentType B
0 18 2 destination Ljava/nio/ByteBuffer;
0 18 3 headerOffset I
0 18 4 dstLim I
0 18 5 headerSize I
0 18 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
1 18 7 sequenceNumber [B
3 18 8 fragLen I
MethodParameters:
Name Flags
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
private static long t13Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, 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
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.isNullCipher:()Z
ifne 8
1: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 7
start local 7 2: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 8
start local 8 3: aload 2
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
4: aload 2
iload 7
iconst_1
iadd
getstatic sun.security.ssl.OutputRecord$T13PaddingHolder.zeros:[B
arraylength
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
5: aload 2
iload 1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: aload 2
getstatic sun.security.ssl.OutputRecord$T13PaddingHolder.zeros:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
7: aload 2
iload 8
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
end local 8 end local 7 8: StackMap locals:
StackMap stack:
aload 6
astore 7
start local 7 9: aload 0
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.isNullCipher:()Z
ifne 13
10: getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
astore 7
11: getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
istore 1
12: goto 15
StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
13: aload 6
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 15
14: getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
astore 7
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 8
start local 8 16: aload 0
iload 1
aload 2
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.encrypt:(BLjava/nio/ByteBuffer;)I
pop
17: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
iload 3
isub
iload 5
isub
istore 9
start local 9 18: aload 2
iload 3
iload 1
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
19: aload 2
iload 3
iconst_1
iadd
aload 7
getfield sun.security.ssl.ProtocolVersion.major:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
20: aload 2
iload 3
iconst_2
iadd
aload 7
getfield sun.security.ssl.ProtocolVersion.minor:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
21: aload 2
iload 3
iconst_3
iadd
iload 9
bipush 8
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
22: aload 2
iload 3
iconst_4
iadd
iload 9
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
23: aload 2
aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
24: aload 8
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
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 25 0 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 25 1 contentType B
0 25 2 destination Ljava/nio/ByteBuffer;
0 25 3 headerOffset I
0 25 4 dstLim I
0 25 5 headerSize I
0 25 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
2 8 7 endOfPt I
3 8 8 startOfPt I
9 25 7 pv Lsun/security/ssl/ProtocolVersion;
16 25 8 sequenceNumber [B
18 25 9 fragLen I
MethodParameters:
Name Flags
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
private static long t10Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, 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.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 7
start local 7 1: aload 0
iload 1
aload 2
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.encrypt:(BLjava/nio/ByteBuffer;)I
pop
2: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
iload 3
isub
iload 5
isub
istore 8
start local 8 3: aload 2
iload 3
iload 1
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
4: aload 2
iload 3
iconst_1
iadd
aload 6
getfield sun.security.ssl.ProtocolVersion.major:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
5: aload 2
iload 3
iconst_2
iadd
aload 6
getfield sun.security.ssl.ProtocolVersion.minor:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
6: aload 2
iload 3
iconst_3
iadd
iload 8
bipush 8
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
7: aload 2
iload 3
iconst_4
iadd
iload 8
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
8: aload 2
aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
9: aload 7
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
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 10 0 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 10 1 contentType B
0 10 2 destination Ljava/nio/ByteBuffer;
0 10 3 headerOffset I
0 10 4 dstLim I
0 10 5 headerSize I
0 10 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
1 10 7 sequenceNumber [B
3 10 8 fragLen I
MethodParameters:
Name Flags
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
long encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, int);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BI)J
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
ifeq 2
1: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.ssl.OutputRecord.t13Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BI)J
lreturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.ssl.OutputRecord.t10Encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BI)J
lreturn
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/OutputRecord;
0 3 1 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 3 2 contentType B
0 3 3 headerSize I
MethodParameters:
Name Flags
encCipher
contentType
headerSize
private long t13Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, int);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BI)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.isNullCipher:()Z
ifne 3
1: aload 0
iload 2
invokevirtual sun.security.ssl.OutputRecord.write:(I)V
2: aload 0
getstatic sun.security.ssl.OutputRecord$T13PaddingHolder.zeros:[B
iconst_0
getstatic sun.security.ssl.OutputRecord$T13PaddingHolder.zeros:[B
arraylength
invokevirtual sun.security.ssl.OutputRecord.write:([BII)V
3: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 4
start local 4 4: iload 3
istore 5
start local 5 5: aload 0
getfield sun.security.ssl.OutputRecord.count:I
iload 5
isub
istore 6
start local 6 6: aload 1
iload 6
iload 3
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.calculatePacketSize:(II)I
7: istore 7
start local 7 8: iload 7
aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
arraylength
if_icmple 12
9: iload 7
newarray 8
astore 8
start local 8 10: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
aload 8
iconst_0
aload 0
getfield sun.security.ssl.OutputRecord.count:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 0
aload 8
putfield sun.security.ssl.OutputRecord.buf:[B
end local 8 12: StackMap locals: sun.security.ssl.OutputRecord sun.security.ssl.SSLCipher$SSLWriteCipher int int byte[] int int int
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
astore 8
start local 8 13: aload 1
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.isNullCipher:()Z
ifne 17
14: getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
astore 8
15: getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
istore 2
16: goto 18
17: StackMap locals: sun.security.ssl.ProtocolVersion
StackMap stack:
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
astore 8
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iload 5
iload 6
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
astore 9
start local 9 19: aload 0
iload 3
aload 1
iload 2
aload 9
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.encrypt:(BLjava/nio/ByteBuffer;)I
iadd
putfield sun.security.ssl.OutputRecord.count:I
20: aload 0
getfield sun.security.ssl.OutputRecord.count:I
iload 3
isub
istore 10
start local 10 21: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
iload 2
bastore
22: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_1
aload 8
getfield sun.security.ssl.ProtocolVersion.major:B
bastore
23: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_2
aload 8
getfield sun.security.ssl.ProtocolVersion.minor:B
bastore
24: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_3
iload 10
bipush 8
ishr
sipush 255
iand
i2b
bastore
25: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_4
iload 10
sipush 255
iand
i2b
bastore
26: aload 4
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
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 27 0 this Lsun/security/ssl/OutputRecord;
0 27 1 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 27 2 contentType B
0 27 3 headerSize I
4 27 4 sequenceNumber [B
5 27 5 position I
6 27 6 contentLen I
8 27 7 requiredPacketSize I
10 12 8 newBuf [B
13 27 8 pv Lsun/security/ssl/ProtocolVersion;
19 27 9 destination Ljava/nio/ByteBuffer;
21 27 10 fragLen I
MethodParameters:
Name Flags
encCipher
contentType
headerSize
private long t10Encrypt(sun.security.ssl.SSLCipher$SSLWriteCipher, byte, int);
descriptor: (Lsun/security/ssl/SSLCipher$SSLWriteCipher;BI)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield sun.security.ssl.SSLCipher$SSLWriteCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 4
start local 4 1: iload 3
aload 0
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.getExplicitNonceSize:()I
iadd
istore 5
start local 5 2: aload 0
getfield sun.security.ssl.OutputRecord.count:I
iload 5
isub
istore 6
start local 6 3: aload 1
iload 6
iload 3
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.calculatePacketSize:(II)I
4: istore 7
start local 7 5: iload 7
aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
arraylength
if_icmple 9
6: iload 7
newarray 8
astore 8
start local 8 7: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
aload 8
iconst_0
aload 0
getfield sun.security.ssl.OutputRecord.count:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
aload 8
putfield sun.security.ssl.OutputRecord.buf:[B
end local 8 9: StackMap locals: sun.security.ssl.OutputRecord sun.security.ssl.SSLCipher$SSLWriteCipher int int byte[] int int int
StackMap stack:
aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iload 5
iload 6
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
astore 8
start local 8 10: aload 0
iload 3
aload 1
iload 2
aload 8
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.encrypt:(BLjava/nio/ByteBuffer;)I
iadd
putfield sun.security.ssl.OutputRecord.count:I
11: aload 0
getfield sun.security.ssl.OutputRecord.count:I
iload 3
isub
istore 9
start local 9 12: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
iload 2
bastore
13: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_1
aload 0
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
bastore
14: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_2
aload 0
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
bastore
15: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_3
iload 9
bipush 8
ishr
sipush 255
iand
i2b
bastore
16: aload 0
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_4
iload 9
sipush 255
iand
i2b
bastore
17: aload 4
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
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 18 0 this Lsun/security/ssl/OutputRecord;
0 18 1 encCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
0 18 2 contentType B
0 18 3 headerSize I
1 18 4 sequenceNumber [B
2 18 5 position I
3 18 6 contentLen I
5 18 7 requiredPacketSize I
7 9 8 newBuf [B
10 18 8 destination Ljava/nio/ByteBuffer;
12 18 9 fragLen I
MethodParameters:
Name Flags
encCipher
contentType
headerSize
static java.nio.ByteBuffer encodeV2ClientHello(byte[], int, int);
descriptor: ([BII)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=17, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 34
iadd
istore 3
start local 3 1: aload 0
iload 3
baload
istore 4
start local 4 2: iload 3
iconst_1
iadd
iload 4
iadd
istore 5
start local 5 3: aload 0
iload 5
baload
sipush 255
iand
bipush 8
ishl
4: aload 0
iload 5
iconst_1
iadd
baload
sipush 255
iand
5: iadd
istore 6
start local 6 6: iload 6
iconst_2
idiv
istore 7
start local 7 7: bipush 11
iload 7
bipush 6
imul
iadd
iconst_3
iadd
bipush 32
iadd
istore 8
start local 8 8: iload 8
newarray 8
astore 9
start local 9 9: aload 9
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 10
start local 10 10: iload 5
iconst_2
iadd
istore 11
start local 11 11: iconst_0
istore 12
start local 12 12: aload 10
bipush 11
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
13: iconst_0
istore 13
start local 13 14: iconst_0
istore 14
start local 14 15: goto 23
16: StackMap locals: byte[] int int int int int int int int byte[] java.nio.ByteBuffer int int int int
StackMap stack:
aload 0
iload 11
iinc 11 1
baload
istore 15
start local 15 17: aload 0
iload 11
iinc 11 1
baload
istore 16
start local 16 18: iload 12
aload 10
iload 15
iload 16
invokestatic sun.security.ssl.OutputRecord.V3toV2CipherSuite:(Ljava/nio/ByteBuffer;BB)I
iadd
istore 12
19: iload 13
ifne 22
20: iload 15
ifne 22
iload 16
iconst_m1
if_icmpne 22
21: iconst_1
istore 13
end local 16 end local 15 22: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
23: iload 14
iload 7
if_icmplt 16
end local 14 24: iload 13
ifne 26
25: iload 12
aload 10
iconst_0
iconst_m1
invokestatic sun.security.ssl.OutputRecord.V3toV2CipherSuite:(Ljava/nio/ByteBuffer;BB)I
iadd
istore 12
26: StackMap locals:
StackMap stack:
aload 10
aload 0
iload 1
iconst_2
iadd
bipush 32
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
27: aload 10
invokevirtual java.nio.ByteBuffer.position:()I
iconst_2
isub
istore 14
start local 14 28: aload 10
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
29: aload 10
sipush 128
iload 14
bipush 8
iushr
sipush 255
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: aload 10
iload 14
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
31: aload 10
getstatic sun.security.ssl.SSLHandshake.CLIENT_HELLO:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: aload 10
aload 0
iload 1
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: aload 10
aload 0
iload 1
iconst_1
iadd
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
34: aload 10
iload 12
bipush 8
iushr
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
35: aload 10
iload 12
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
36: aload 10
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
37: aload 10
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
38: aload 10
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
39: aload 10
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
40: aload 10
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
41: aload 10
iload 14
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
42: aload 10
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 43 0 fragment [B
0 43 1 offset I
0 43 2 length I
1 43 3 v3SessIdLenOffset I
2 43 4 v3SessIdLen I
3 43 5 v3CSLenOffset I
6 43 6 v3CSLen I
7 43 7 cipherSpecs I
8 43 8 v2MaxMsgLen I
9 43 9 dstBytes [B
10 43 10 dstBuf Ljava/nio/ByteBuffer;
11 43 11 v3CSOffset I
12 43 12 v2CSLen I
14 43 13 containsRenegoInfoSCSV Z
15 24 14 i I
17 22 15 byte1 B
18 22 16 byte2 B
28 43 14 msgLen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fragment
offset
length
private static int V3toV2CipherSuite(java.nio.ByteBuffer, byte, byte);
descriptor: (Ljava/nio/ByteBuffer;BB)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
1: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: aload 0
iload 2
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
3: iload 2
sipush 255
iand
bipush 10
if_icmpgt 4
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
iload 2
iaload
iconst_m1
if_icmpne 5
4: StackMap locals:
StackMap stack:
iconst_3
ireturn
5: StackMap locals:
StackMap stack:
aload 0
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
iload 2
iaload
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: aload 0
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: aload 0
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap3:[I
iload 2
iaload
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
8: bipush 6
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 dstBuf Ljava/nio/ByteBuffer;
0 9 1 byte1 B
0 9 2 byte2 B
MethodParameters:
Name Flags
dstBuf
byte1
byte2
}
SourceFile: "OutputRecord.java"
NestMembers:
sun.security.ssl.OutputRecord$T13PaddingHolder
InnerClasses:
private final T13PaddingHolder = sun.security.ssl.OutputRecord$T13PaddingHolder of sun.security.ssl.OutputRecord
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher