abstract class sun.security.ssl.InputRecord 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.InputRecord
super_class: java.lang.Object
{
sun.security.ssl.SSLCipher$SSLReadCipher readCipher;
descriptor: Lsun/security/ssl/SSLCipher$SSLReadCipher;
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
volatile boolean isClosed;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
sun.security.ssl.ProtocolVersion helloVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
int fragmentSize;
descriptor: I
flags: (0x0000)
final java.util.concurrent.locks.ReentrantLock recordLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0010) ACC_FINAL
void <init>(sun.security.ssl.HandshakeHash, sun.security.ssl.SSLCipher$SSLReadCipher);
descriptor: (Lsun/security/ssl/HandshakeHash;Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.HandshakeHash handshakeHash
start local 2 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
0: .line 62
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 60
aload 0 /* this */
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
2: .line 63
aload 0 /* this */
aload 2 /* readCipher */
putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
3: .line 64
aload 0 /* this */
getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
4: .line 65
aload 0 /* this */
aload 1 /* handshakeHash */
putfield sun.security.ssl.InputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
5: .line 66
aload 0 /* this */
iconst_0
putfield sun.security.ssl.InputRecord.isClosed:Z
6: .line 67
aload 0 /* this */
sipush 16384
putfield sun.security.ssl.InputRecord.fragmentSize:I
7: .line 68
return
end local 2 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
end local 1 // sun.security.ssl.HandshakeHash handshakeHash
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/InputRecord;
0 8 1 handshakeHash Lsun/security/ssl/HandshakeHash;
0 8 2 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
MethodParameters:
Name Flags
handshakeHash
readCipher
void setHelloVersion(sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.ProtocolVersion helloVersion
0: .line 71
aload 0 /* this */
aload 1 /* helloVersion */
putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
1: .line 72
return
end local 1 // sun.security.ssl.ProtocolVersion helloVersion
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/InputRecord;
0 2 1 helloVersion Lsun/security/ssl/ProtocolVersion;
MethodParameters:
Name Flags
helloVersion
boolean seqNumIsHuge();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 75
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
getfield sun.security.ssl.SSLCipher$SSLReadCipher.authenticator:Lsun/security/ssl/Authenticator;
ifnull 3
1: .line 76
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
getfield sun.security.ssl.SSLCipher$SSLReadCipher.authenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.seqNumIsHuge:()Z
ifeq 3
2: .line 75
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/InputRecord;
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 80
iconst_0
ireturn
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
void expectingFinishFlight();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 86
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
void finishHandshake();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 91
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 99
aload 0 /* this */
getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: .line 101
aload 0 /* this */
getfield sun.security.ssl.InputRecord.isClosed:Z
ifne 8
2: .line 102
aload 0 /* this */
iconst_1
putfield sun.security.ssl.InputRecord.isClosed:Z
3: .line 103
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.dispose:()V
4: .line 105
goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
6: .line 106
aload 0 /* this */
getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: .line 107
aload 1
athrow
8: .line 106
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.ssl.InputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: .line 108
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/InputRecord;
Exception table:
from to target type
1 5 5 any
Exceptions:
throws java.io.IOException
boolean isClosed();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 111
aload 0 /* this */
getfield sun.security.ssl.InputRecord.isClosed:Z
ireturn
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
void changeReadCiphers(sun.security.ssl.SSLCipher$SSLReadCipher);
descriptor: (Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
0: .line 125
aload 1 /* readCipher */
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.dispose:()V
1: .line 127
aload 0 /* this */
aload 1 /* readCipher */
putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
2: .line 128
return
end local 1 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/InputRecord;
0 3 1 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
MethodParameters:
Name Flags
readCipher
void changeFragmentSize(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // int fragmentSize
0: .line 132
aload 0 /* this */
iload 1 /* fragmentSize */
putfield sun.security.ssl.InputRecord.fragmentSize:I
1: .line 133
return
end local 1 // int fragmentSize
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/InputRecord;
0 2 1 fragmentSize I
MethodParameters:
Name Flags
fragmentSize
int bytesInCompletePacket(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)I
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.nio.ByteBuffer[] srcs
start local 2 // int srcsOffset
start local 3 // int srcsLength
0: .line 145
new java.lang.UnsupportedOperationException
dup
ldc "Not supported yet."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 // int srcsLength
end local 2 // int srcsOffset
end local 1 // java.nio.ByteBuffer[] srcs
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
0 1 1 srcs [Ljava/nio/ByteBuffer;
0 1 2 srcsOffset I
0 1 3 srcsLength I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
int bytesInCompletePacket();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 150
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
Exceptions:
throws java.io.IOException
void setReceiverStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.io.InputStream inputStream
0: .line 155
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.io.InputStream inputStream
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
0 1 1 inputStream Ljava/io/InputStream;
MethodParameters:
Name Flags
inputStream
sun.security.ssl.Plaintext acquirePlaintext();
descriptor: ()Lsun/security/ssl/Plaintext;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 161
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
abstract sun.security.ssl.Plaintext[] decode(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)[Lsun/security/ssl/Plaintext;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
void setDeliverStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.io.OutputStream outputStream
0: .line 171
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.io.OutputStream outputStream
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
0 1 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
outputStream
int estimateFragmentSize(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // int packetSize
0: .line 178
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // int packetSize
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
0 1 1 packetSize I
MethodParameters:
Name Flags
packetSize
static java.nio.ByteBuffer convertToClientHello(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=16, args_size=1
start local 0 // java.nio.ByteBuffer packet
0: .line 187
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.position:()I
istore 1 /* srcPos */
start local 1 // int srcPos
1: .line 189
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 2 /* firstByte */
start local 2 // byte firstByte
2: .line 190
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 3 /* secondByte */
start local 3 // byte secondByte
3: .line 191
iload 2 /* firstByte */
bipush 127
iand
bipush 8
ishl
iload 3 /* secondByte */
sipush 255
iand
ior
iconst_2
iadd
istore 4 /* recordLen */
start local 4 // int recordLen
4: .line 193
aload 0 /* packet */
iload 1 /* srcPos */
iconst_3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
5: .line 195
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 5 /* majorVersion */
start local 5 // byte majorVersion
6: .line 196
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 6 /* minorVersion */
start local 6 // byte minorVersion
7: .line 198
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
8: .line 199
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
9: .line 198
iadd
istore 7 /* cipherSpecLen */
start local 7 // int cipherSpecLen
10: .line 200
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
11: .line 201
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
12: .line 200
iadd
istore 8 /* sessionIdLen */
start local 8 // int sessionIdLen
13: .line 202
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
14: .line 203
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
15: .line 202
iadd
istore 9 /* nonceLen */
start local 9 // int nonceLen
16: .line 213
bipush 48
iload 8 /* sessionIdLen */
iadd
iload 7 /* cipherSpecLen */
iconst_2
imul
iconst_3
idiv
iadd
istore 10 /* requiredSize */
start local 10 // int requiredSize
17: .line 214
iload 10 /* requiredSize */
newarray 8
astore 11 /* converted */
start local 11 // byte[] converted
18: .line 221
aload 11 /* converted */
iconst_0
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
bastore
19: .line 222
aload 11 /* converted */
iconst_1
iload 5 /* majorVersion */
bastore
20: .line 223
aload 11 /* converted */
iconst_2
iload 6 /* minorVersion */
bastore
21: .line 230
aload 11 /* converted */
iconst_5
iconst_1
bastore
22: .line 237
aload 11 /* converted */
bipush 9
iload 5 /* majorVersion */
bastore
23: .line 238
aload 11 /* converted */
bipush 10
iload 6 /* minorVersion */
bastore
24: .line 240
bipush 11
istore 12 /* pointer */
start local 12 // int pointer
25: .line 247
iload 1 /* srcPos */
bipush 11
iadd
iload 7 /* cipherSpecLen */
iadd
iload 8 /* sessionIdLen */
iadd
istore 13 /* offset */
start local 13 // int offset
26: .line 249
iload 9 /* nonceLen */
bipush 32
if_icmpge 36
27: .line 250
iconst_0
istore 14 /* i */
start local 14 // int i
28: goto 31
29: .line 251
StackMap locals: java.nio.ByteBuffer int int int int int int int int int int byte[] int int int
StackMap stack:
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iconst_0
bastore
30: .line 250
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
31: iload 14 /* i */
bipush 32
iload 9 /* nonceLen */
isub
if_icmplt 29
end local 14 // int i
32: .line 253
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
33: .line 254
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
iload 9 /* nonceLen */
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
34: .line 256
iload 12 /* pointer */
iload 9 /* nonceLen */
iadd
istore 12 /* pointer */
35: .line 257
goto 39
36: .line 258
StackMap locals:
StackMap stack:
aload 0 /* packet */
iload 13 /* offset */
iload 9 /* nonceLen */
iadd
bipush 32
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
37: .line 259
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
bipush 32
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
38: .line 261
iinc 12 /* pointer */ 32
39: .line 267
StackMap locals:
StackMap stack:
iload 13 /* offset */
iload 8 /* sessionIdLen */
isub
istore 13 /* offset */
40: .line 268
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 8 /* sessionIdLen */
sipush 255
iand
i2b
bastore
41: .line 269
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
42: .line 270
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
iload 8 /* sessionIdLen */
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
43: .line 288
iload 13 /* offset */
iload 7 /* cipherSpecLen */
isub
istore 13 /* offset */
44: .line 289
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
45: .line 291
iload 12 /* pointer */
iconst_2
iadd
istore 14 /* j */
start local 14 // int j
46: .line 292
iconst_0
istore 15 /* i */
start local 15 // int i
47: goto 55
48: .line 293
StackMap locals: int int
StackMap stack:
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
ifeq 52
49: .line 297
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
pop
50: .line 298
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
pop
51: .line 299
goto 54
52: .line 302
StackMap locals:
StackMap stack:
aload 11 /* converted */
iload 14 /* j */
iinc 14 /* j */ 1
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
bastore
53: .line 303
aload 11 /* converted */
iload 14 /* j */
iinc 14 /* j */ 1
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
bastore
54: .line 292
StackMap locals:
StackMap stack:
iinc 15 /* i */ 3
StackMap locals:
StackMap stack:
55: iload 15 /* i */
iload 7 /* cipherSpecLen */
if_icmplt 48
end local 15 // int i
56: .line 306
iload 14 /* j */
iload 12 /* pointer */
iconst_2
iadd
isub
istore 14 /* j */
57: .line 307
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 14 /* j */
bipush 8
iushr
sipush 255
iand
i2b
bastore
58: .line 308
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 14 /* j */
sipush 255
iand
i2b
bastore
59: .line 309
iload 12 /* pointer */
iload 14 /* j */
iadd
istore 12 /* pointer */
60: .line 314
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iconst_1
bastore
61: .line 315
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iconst_0
bastore
62: .line 322
iload 12 /* pointer */
iconst_5
isub
istore 15 /* fragLen */
start local 15 // int fragLen
63: .line 323
aload 11 /* converted */
iconst_3
iload 15 /* fragLen */
bipush 8
iushr
sipush 255
iand
i2b
bastore
64: .line 324
aload 11 /* converted */
iconst_4
iload 15 /* fragLen */
sipush 255
iand
i2b
bastore
65: .line 329
iload 12 /* pointer */
bipush 9
isub
istore 15 /* fragLen */
66: .line 330
aload 11 /* converted */
bipush 6
iload 15 /* fragLen */
bipush 16
iushr
sipush 255
iand
i2b
bastore
67: .line 331
aload 11 /* converted */
bipush 7
iload 15 /* fragLen */
bipush 8
iushr
sipush 255
iand
i2b
bastore
68: .line 332
aload 11 /* converted */
bipush 8
iload 15 /* fragLen */
sipush 255
iand
i2b
bastore
69: .line 335
aload 0 /* packet */
iload 1 /* srcPos */
iload 4 /* recordLen */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
70: .line 338
aload 11 /* converted */
iconst_5
iload 12 /* pointer */
iconst_5
isub
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
areturn
end local 15 // int fragLen
end local 14 // int j
end local 13 // int offset
end local 12 // int pointer
end local 11 // byte[] converted
end local 10 // int requiredSize
end local 9 // int nonceLen
end local 8 // int sessionIdLen
end local 7 // int cipherSpecLen
end local 6 // byte minorVersion
end local 5 // byte majorVersion
end local 4 // int recordLen
end local 3 // byte secondByte
end local 2 // byte firstByte
end local 1 // int srcPos
end local 0 // java.nio.ByteBuffer packet
LocalVariableTable:
Start End Slot Name Signature
0 71 0 packet Ljava/nio/ByteBuffer;
1 71 1 srcPos I
2 71 2 firstByte B
3 71 3 secondByte B
4 71 4 recordLen I
6 71 5 majorVersion B
7 71 6 minorVersion B
10 71 7 cipherSpecLen I
13 71 8 sessionIdLen I
16 71 9 nonceLen I
17 71 10 requiredSize I
18 71 11 converted [B
25 71 12 pointer I
26 71 13 offset I
28 32 14 i I
46 71 14 j I
47 56 15 i I
63 71 15 fragLen I
MethodParameters:
Name Flags
packet
static java.nio.ByteBuffer extract(java.nio.ByteBuffer[], int, int, int);
descriptor: ([Ljava/nio/ByteBuffer;III)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=13, args_size=4
start local 0 // java.nio.ByteBuffer[] buffers
start local 1 // int offset
start local 2 // int length
start local 3 // int headerSize
0: .line 345
iconst_0
istore 4 /* hasFullHeader */
start local 4 // boolean hasFullHeader
1: .line 346
iconst_m1
istore 5 /* contentLen */
start local 5 // int contentLen
2: .line 347
iload 1 /* offset */
istore 6 /* i */
start local 6 // int i
3: iconst_0
istore 7 /* j */
start local 7 // int j
4: .line 348
goto 20
5: .line 349
StackMap locals: java.nio.ByteBuffer[] int int int int int int int
StackMap stack:
aload 0 /* buffers */
iload 6 /* i */
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 8 /* remains */
start local 8 // int remains
6: .line 350
aload 0 /* buffers */
iload 6 /* i */
aaload
invokevirtual java.nio.ByteBuffer.position:()I
istore 9 /* pos */
start local 9 // int pos
7: .line 351
iconst_0
istore 10 /* k */
start local 10 // int k
8: goto 18
9: .line 352
StackMap locals: int int int
StackMap stack:
aload 0 /* buffers */
iload 6 /* i */
aaload
iload 9 /* pos */
iload 10 /* k */
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 11 /* b */
start local 11 // byte b
10: .line 353
iload 7 /* j */
iload 3 /* headerSize */
iconst_2
isub
if_icmpne 13
11: .line 354
iload 11 /* b */
sipush 255
iand
bipush 8
ishl
istore 5 /* contentLen */
12: .line 355
goto 17
StackMap locals: int
StackMap stack:
13: iload 7 /* j */
iload 3 /* headerSize */
iconst_1
isub
if_icmpne 17
14: .line 356
iload 5 /* contentLen */
iload 11 /* b */
sipush 255
iand
ior
istore 5 /* contentLen */
15: .line 357
iconst_1
istore 4 /* hasFullHeader */
16: .line 358
goto 19
end local 11 // byte b
17: .line 351
StackMap locals:
StackMap stack:
iinc 7 /* j */ 1
iinc 10 /* k */ 1
StackMap locals:
StackMap stack:
18: iload 10 /* k */
iload 8 /* remains */
if_icmpge 19
iload 7 /* j */
iload 3 /* headerSize */
if_icmplt 9
end local 10 // int k
end local 9 // int pos
end local 8 // int remains
19: .line 348
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 6 /* i */
iload 1 /* offset */
iload 2 /* length */
iadd
if_icmpge 22
iload 7 /* j */
iload 3 /* headerSize */
21: .line 347
if_icmplt 5
end local 7 // int j
end local 6 // int i
22: .line 363
StackMap locals:
StackMap stack:
iload 4 /* hasFullHeader */
ifne 24
23: .line 364
new java.nio.BufferUnderflowException
dup
invokespecial java.nio.BufferUnderflowException.<init>:()V
athrow
24: .line 367
StackMap locals:
StackMap stack:
iload 3 /* headerSize */
iload 5 /* contentLen */
iadd
istore 6 /* packetLen */
start local 6 // int packetLen
25: .line 368
iconst_0
istore 7 /* remains */
start local 7 // int remains
26: .line 369
iload 1 /* offset */
istore 8 /* i */
start local 8 // int i
27: goto 32
28: .line 370
StackMap locals: int int int
StackMap stack:
iload 7 /* remains */
aload 0 /* buffers */
iload 8 /* i */
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 7 /* remains */
29: .line 371
iload 7 /* remains */
iload 6 /* packetLen */
if_icmplt 31
30: .line 372
goto 33
31: .line 369
StackMap locals:
StackMap stack:
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
32: iload 8 /* i */
iload 1 /* offset */
iload 2 /* length */
iadd
if_icmplt 28
end local 8 // int i
33: .line 376
StackMap locals:
StackMap stack:
iload 7 /* remains */
iload 6 /* packetLen */
if_icmpge 35
34: .line 377
new java.nio.BufferUnderflowException
dup
invokespecial java.nio.BufferUnderflowException.<init>:()V
athrow
35: .line 380
StackMap locals:
StackMap stack:
iload 6 /* packetLen */
newarray 8
astore 8 /* packet */
start local 8 // byte[] packet
36: .line 381
iconst_0
istore 9 /* packetOffset */
start local 9 // int packetOffset
37: .line 382
iload 6 /* packetLen */
istore 10 /* packetSpaces */
start local 10 // int packetSpaces
38: .line 383
iload 1 /* offset */
istore 11 /* i */
start local 11 // int i
39: goto 48
40: .line 384
StackMap locals: java.nio.ByteBuffer[] int int int int int int int byte[] int int int
StackMap stack:
aload 0 /* buffers */
iload 11 /* i */
aaload
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 45
41: .line 385
iload 10 /* packetSpaces */
aload 0 /* buffers */
iload 11 /* i */
aaload
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 12 /* len */
start local 12 // int len
42: .line 386
aload 0 /* buffers */
iload 11 /* i */
aaload
aload 8 /* packet */
iload 9 /* packetOffset */
iload 12 /* len */
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
43: .line 387
iload 9 /* packetOffset */
iload 12 /* len */
iadd
istore 9 /* packetOffset */
44: .line 388
iload 10 /* packetSpaces */
iload 12 /* len */
isub
istore 10 /* packetSpaces */
end local 12 // int len
45: .line 391
StackMap locals:
StackMap stack:
iload 10 /* packetSpaces */
ifgt 47
46: .line 392
goto 49
47: .line 383
StackMap locals:
StackMap stack:
iinc 11 /* i */ 1
StackMap locals:
StackMap stack:
48: iload 11 /* i */
iload 1 /* offset */
iload 2 /* length */
iadd
if_icmplt 40
end local 11 // int i
49: .line 396
StackMap locals:
StackMap stack:
aload 8 /* packet */
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
areturn
end local 10 // int packetSpaces
end local 9 // int packetOffset
end local 8 // byte[] packet
end local 7 // int remains
end local 6 // int packetLen
end local 5 // int contentLen
end local 4 // boolean hasFullHeader
end local 3 // int headerSize
end local 2 // int length
end local 1 // int offset
end local 0 // java.nio.ByteBuffer[] buffers
LocalVariableTable:
Start End Slot Name Signature
0 50 0 buffers [Ljava/nio/ByteBuffer;
0 50 1 offset I
0 50 2 length I
0 50 3 headerSize I
1 50 4 hasFullHeader Z
2 50 5 contentLen I
3 22 6 i I
4 22 7 j I
6 19 8 remains I
7 19 9 pos I
8 19 10 k I
10 17 11 b B
25 50 6 packetLen I
26 50 7 remains I
27 33 8 i I
36 50 8 packet [B
37 50 9 packetOffset I
38 50 10 packetSpaces I
39 49 11 i I
42 45 12 len I
MethodParameters:
Name Flags
buffers
offset
length
headerSize
}
SourceFile: "InputRecord.java"
InnerClasses:
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher