final class sun.security.ssl.SSLSocketInputRecord extends sun.security.ssl.InputRecord implements sun.security.ssl.SSLRecord
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLSocketInputRecord
super_class: sun.security.ssl.InputRecord
{
private java.io.InputStream is;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private java.io.OutputStream os;
descriptor: Ljava/io/OutputStream;
flags: (0x0002) ACC_PRIVATE
private final byte[] temporary;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean formatVerified;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer handshakeBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private boolean ;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(sun.security.ssl.HandshakeHash);
descriptor: (Lsun/security/ssl/HandshakeHash;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic sun.security.ssl.SSLCipher$SSLReadCipher.nullTlsReadCipher:()Lsun/security/ssl/SSLCipher$SSLReadCipher;
invokespecial sun.security.ssl.InputRecord.<init>:(Lsun/security/ssl/HandshakeHash;Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
1: aload 0
aconst_null
putfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
2: aload 0
aconst_null
putfield sun.security.ssl.SSLSocketInputRecord.os:Ljava/io/OutputStream;
3: aload 0
sipush 1024
newarray 8
putfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
4: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketInputRecord.formatVerified:Z
5: aload 0
aconst_null
putfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
6: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 8 1 handshakeHash Lsun/security/ssl/HandshakeHash;
MethodParameters:
Name Flags
handshakeHash
int bytesInCompletePacket();
descriptor: ()I
flags: (0x0000)
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
ifne 7
1: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iconst_5
invokestatic sun.security.ssl.SSLSocketInputRecord.read:(Ljava/io/InputStream;[BII)I
istore 1
start local 1 2: iload 1
ifge 6
3: iconst_m1
ireturn
end local 1 4: StackMap locals:
StackMap stack: java.io.EOFException
pop
5: iconst_m1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
baload
istore 1
start local 1 8: iconst_0
istore 2
start local 2 9: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.formatVerified:Z
ifne 12
10: iload 1
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 12
11: iload 1
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 26
12: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_1
baload
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_2
baload
iconst_0
iconst_0
13: invokestatic sun.security.ssl.ProtocolVersion.isNegotiable:(BBZZ)Z
14: ifne 19
15: new javax.net.ssl.SSLException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized record version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_1
baload
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_2
baload
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc " , plaintext connection?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.SSLSocketInputRecord.formatVerified:Z
20: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_3
baload
sipush 255
iand
bipush 8
ishl
21: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_4
baload
sipush 255
iand
22: iadd
23: iconst_5
24: iadd
istore 2
25: goto 42
26: StackMap locals:
StackMap stack:
iload 1
sipush 128
iand
ifeq 27
iconst_1
goto 28
StackMap locals:
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: istore 3
start local 3 29: iload 3
ifeq 39
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_2
baload
iconst_1
if_icmpeq 30
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_2
baload
iconst_4
if_icmpne 39
30: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_3
baload
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_4
baload
iconst_0
iconst_0
31: invokestatic sun.security.ssl.ProtocolVersion.isNegotiable:(BBZZ)Z
32: ifne 37
33: new javax.net.ssl.SSLException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized record version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
34: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_3
baload
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_4
baload
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc " , plaintext connection?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
iload 1
bipush 127
iand
bipush 8
ishl
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_1
baload
sipush 255
iand
iadd
iconst_2
iadd
istore 2
38: goto 42
39: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
40: ldc "Unrecognized SSL message, plaintext connection?"
41: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
end local 3 42: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/security/ssl/SSLSocketInputRecord;
2 4 1 really I
8 43 1 byteZero B
9 43 2 len I
29 42 3 isShort Z
Exception table:
from to target type
1 3 4 Class java.io.EOFException
Exceptions:
throws java.io.IOException
sun.security.ssl.Plaintext[] decode(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)[Lsun/security/ssl/Plaintext;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.isClosed:Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
ifne 7
3: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iconst_5
invokestatic sun.security.ssl.SSLSocketInputRecord.read:(Ljava/io/InputStream;[BII)I
istore 4
start local 4 4: iload 4
ifge 6
5: new java.io.EOFException
dup
ldc "SSL peer shut down incorrectly"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
end local 4 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.formatVerified:Z
ifne 13
8: aload 0
iconst_1
putfield sun.security.ssl.SSLSocketInputRecord.formatVerified:Z
9: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
baload
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 13
10: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
baload
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 13
11: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
12: aload 0
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
invokevirtual sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord:([B)[Lsun/security/ssl/Plaintext;
areturn
13: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketInputRecord.hasHeader:Z
14: aload 0
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
invokevirtual sun.security.ssl.SSLSocketInputRecord.decodeInputRecord:([B)[Lsun/security/ssl/Plaintext;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 15 1 srcs [Ljava/nio/ByteBuffer;
0 15 2 srcsOffset I
0 15 3 srcsLength I
4 7 4 really I
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
void setReceiverStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 2 1 inputStream Ljava/io/InputStream;
MethodParameters:
Name Flags
inputStream
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: aload 0
aload 1
putfield sun.security.ssl.SSLSocketInputRecord.os:Ljava/io/OutputStream;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 2 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
outputStream
private sun.security.ssl.Plaintext[] decodeInputRecord(byte[]);
descriptor: ([B)[Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=18, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
baload
istore 2
start local 2 1: aload 1
iconst_1
baload
istore 3
start local 3 2: aload 1
iconst_2
baload
istore 4
start local 4 3: aload 1
iconst_3
baload
sipush 255
iand
bipush 8
ishl
4: aload 1
iconst_4
baload
sipush 255
iand
5: iadd
istore 5
start local 5 6: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 13
ldc "record"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 13
7: new java.lang.StringBuilder
dup
ldc "READ: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: iload 3
iload 4
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
12: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals: sun.security.ssl.SSLSocketInputRecord byte[] int int int int
StackMap stack:
iload 5
iflt 14
iload 5
ldc 33088
if_icmple 17
14: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
15: new java.lang.StringBuilder
dup
ldc "Bad input record size, TLSCiphertext.length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
iconst_5
iload 5
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 18: aload 6
invokevirtual java.nio.ByteBuffer.position:()I
istore 7
start local 7 19: aload 6
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iconst_5
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
20: goto 27
21: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
arraylength
iload 5
invokestatic java.lang.Math.min:(II)I
istore 8
start local 8 22: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iload 8
invokestatic sun.security.ssl.SSLSocketInputRecord.read:(Ljava/io/InputStream;[BII)I
istore 9
start local 9 23: iload 9
ifge 25
24: new java.io.EOFException
dup
ldc "SSL peer shut down incorrectly"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals: int int
StackMap stack:
aload 6
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iload 8
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
26: iload 5
iload 8
isub
istore 5
end local 9 end local 8 27: StackMap locals:
StackMap stack:
iload 5
ifgt 21
28: aload 6
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
29: aload 6
iload 7
iconst_5
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
30: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 37
ldc "record"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 37
31: new java.lang.StringBuilder
dup
ldc "READ: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: iload 3
iload 4
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: aload 6
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
35: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
36: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
iload 2
aload 6
aconst_null
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.decrypt:(BLjava/nio/ByteBuffer;[B)Lsun/security/ssl/Plaintext;
38: astore 9
start local 9 39: aload 9
getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
astore 8
start local 8 40: aload 9
getfield sun.security.ssl.Plaintext.contentType:B
istore 2
end local 9 41: goto 50
end local 8 StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
42: astore 9
start local 9 43: aload 9
athrow
end local 9 44: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 9
start local 9 45: new javax.net.ssl.SSLProtocolException
dup
46: ldc "Unexpected exception"
47: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
48: aload 9
invokevirtual javax.net.ssl.SSLProtocolException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
49: checkcast javax.net.ssl.SSLProtocolException
athrow
end local 9 start local 8 50: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iload 2
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 57
51: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
ifnull 57
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 57
52: new javax.net.ssl.SSLProtocolException
dup
53: new java.lang.StringBuilder
dup
ldc "Expecting a handshake fragment, but received "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
54: iload 2
invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
55: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
56: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
57: StackMap locals:
StackMap stack:
iload 2
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 110
58: aload 8
astore 9
start local 9 59: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
ifnull 67
60: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifeq 67
61: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 8
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
62: newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 10
start local 10 63: aload 10
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
64: aload 10
aload 8
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
65: aload 10
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
astore 9
66: aload 0
aconst_null
putfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
end local 10 67: StackMap locals: java.nio.ByteBuffer
StackMap stack:
new java.util.ArrayList
dup
iconst_5
invokespecial java.util.ArrayList.<init>:(I)V
astore 10
start local 10 68: goto 108
69: StackMap locals: java.util.ArrayList
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 11
start local 11 70: iload 11
iconst_4
if_icmpge 75
71: aload 0
iload 11
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
72: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
aload 9
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
73: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
74: goto 109
75: StackMap locals: int
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.mark:()Ljava/nio/ByteBuffer;
pop
76: aload 9
invokevirtual java.nio.ByteBuffer.get:()B
istore 12
start local 12 77: aload 9
invokestatic sun.security.ssl.Record.getInt24:(Ljava/nio/ByteBuffer;)I
istore 13
start local 13 78: aload 9
invokevirtual java.nio.ByteBuffer.reset:()Ljava/nio/ByteBuffer;
pop
79: iconst_4
iload 13
iadd
80: istore 14
start local 14 81: iload 11
iload 14
if_icmpge 86
82: aload 0
iload 11
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
83: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
aload 9
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
84: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
85: goto 109
86: StackMap locals: int int int
StackMap stack:
iload 11
iload 14
if_icmpne 95
87: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
iload 12
invokevirtual sun.security.ssl.HandshakeHash.isHashable:(B)Z
ifeq 89
88: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 9
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
89: StackMap locals:
StackMap stack:
aload 10
90: new sun.security.ssl.Plaintext
dup
iload 2
91: iload 3
iload 4
iconst_m1
ldc -1
aload 9
92: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
93: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
94: goto 109
95: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.position:()I
istore 15
start local 15 96: aload 9
invokevirtual java.nio.ByteBuffer.limit:()I
istore 16
start local 16 97: iload 15
iload 14
iadd
istore 17
start local 17 98: aload 9
iload 17
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
99: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
iload 12
invokevirtual sun.security.ssl.HandshakeHash.isHashable:(B)Z
ifeq 101
100: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 9
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
101: StackMap locals: int int int
StackMap stack:
aload 10
102: new sun.security.ssl.Plaintext
dup
iload 2
iload 3
iload 4
103: iconst_m1
ldc -1
aload 9
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
104: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
105: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
106: aload 9
iload 17
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
107: aload 9
iload 16
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 108: StackMap locals: sun.security.ssl.SSLSocketInputRecord byte[] int int int int java.nio.ByteBuffer int java.nio.ByteBuffer java.nio.ByteBuffer java.util.ArrayList
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 69
109: StackMap locals:
StackMap stack:
aload 10
iconst_0
anewarray sun.security.ssl.Plaintext
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.security.ssl.Plaintext[]
areturn
end local 10 end local 9 110: StackMap locals:
StackMap stack:
iconst_1
anewarray sun.security.ssl.Plaintext
dup
iconst_0
111: new sun.security.ssl.Plaintext
dup
iload 2
112: iload 3
iload 4
iconst_m1
ldc -1
aload 8
113: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
aastore
114: areturn
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 115 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 115 1 header [B
1 115 2 contentType B
2 115 3 majorVersion B
3 115 4 minorVersion B
6 115 5 contentLen I
18 115 6 destination Ljava/nio/ByteBuffer;
19 115 7 dstPos I
22 27 8 howmuch I
23 27 9 really I
40 42 8 fragment Ljava/nio/ByteBuffer;
50 115 8 fragment Ljava/nio/ByteBuffer;
39 41 9 plaintext Lsun/security/ssl/Plaintext;
43 44 9 bpe Ljavax/crypto/BadPaddingException;
45 50 9 gse Ljava/security/GeneralSecurityException;
59 110 9 handshakeFrag Ljava/nio/ByteBuffer;
63 67 10 bb Ljava/nio/ByteBuffer;
68 110 10 plaintexts Ljava/util/ArrayList<Lsun/security/ssl/Plaintext;>;
70 108 11 remaining I
77 108 12 handshakeType B
78 108 13 handshakeBodyLen I
81 108 14 handshakeMessageLen I
96 108 15 fragPos I
97 108 16 fragLim I
98 108 17 nextPos I
Exception table:
from to target type
37 41 42 Class javax.crypto.BadPaddingException
37 41 44 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
header
private sun.security.ssl.Plaintext[] handleUnknownRecord(byte[]);
descriptor: ([B)[Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=10, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
baload
istore 2
start local 2 1: aload 1
iconst_2
baload
istore 3
start local 3 2: iload 2
sipush 128
iand
ifeq 42
iload 3
iconst_1
if_icmpne 42
3: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 5
4: new javax.net.ssl.SSLHandshakeException
dup
ldc "SSLv2Hello is not enabled"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int int
StackMap stack:
aload 1
iconst_3
baload
istore 4
start local 4 6: aload 1
iconst_4
baload
istore 5
start local 5 7: iload 4
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
if_icmpne 17
8: iload 5
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
if_icmpne 17
9: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.os:Ljava/io/OutputStream;
getstatic sun.security.ssl.SSLRecord.v2NoCipher:[B
invokevirtual java.io.OutputStream.write:([B)V
10: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 16
11: ldc "record"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 14
12: ldc "Requested to negotiate unsupported SSLv2!"
iconst_0
anewarray java.lang.Object
13: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals: int int
StackMap stack:
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 16
15: ldc "Raw write"
iconst_1
anewarray java.lang.Object
dup
iconst_0
getstatic sun.security.ssl.SSLRecord.v2NoCipher:[B
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
ldc "Unsupported SSL v2.0 ClientHello"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 1
iconst_0
baload
bipush 127
iand
bipush 8
ishl
aload 1
iconst_1
baload
sipush 255
iand
ior
istore 6
start local 6 18: iconst_5
iload 6
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 7
start local 7 19: aload 7
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iconst_5
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
20: iinc 6 -3
21: goto 28
22: StackMap locals: int java.nio.ByteBuffer
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
arraylength
iload 6
invokestatic java.lang.Math.min:(II)I
istore 8
start local 8 23: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iload 8
invokestatic sun.security.ssl.SSLSocketInputRecord.read:(Ljava/io/InputStream;[BII)I
istore 9
start local 9 24: iload 9
ifge 26
25: new java.io.EOFException
dup
ldc "SSL peer shut down incorrectly"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: int int
StackMap stack:
aload 7
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.temporary:[B
iconst_0
iload 8
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
27: iload 6
iload 8
isub
istore 6
end local 9 end local 8 28: StackMap locals:
StackMap stack:
iload 6
ifgt 22
29: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
30: aload 7
iconst_2
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
31: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 7
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
32: aload 7
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
33: aload 7
invokestatic sun.security.ssl.SSLSocketInputRecord.convertToClientHello:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
astore 8
start local 8 34: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 37
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 37
35: ldc "[Converted] ClientHello"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
aastore
36: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
37: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_1
anewarray sun.security.ssl.Plaintext
dup
iconst_0
38: new sun.security.ssl.Plaintext
dup
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
39: iload 4
iload 5
iconst_m1
ldc -1
aload 8
40: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
aastore
41: areturn
end local 8 end local 7 end local 6 end local 5 end local 4 42: StackMap locals: sun.security.ssl.SSLSocketInputRecord byte[] int int
StackMap stack:
iload 2
sipush 128
iand
ifeq 44
iload 3
iconst_4
if_icmpne 44
43: new javax.net.ssl.SSLException
dup
ldc "SSL V2.0 servers are not supported."
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
ldc "Unsupported or unrecognized SSL message"
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 45 1 header [B
1 45 2 firstByte B
2 45 3 thirdByte B
6 42 4 majorVersion B
7 42 5 minorVersion B
18 42 6 msgLen I
19 42 7 destination Ljava/nio/ByteBuffer;
23 28 8 howmuch I
24 28 9 really I
34 42 8 converted Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
header
private static int read(java.io.InputStream, byte[], int, int);
descriptor: (Ljava/io/InputStream;[BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 11
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
iload 4
iadd
iload 3
iload 4
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 5
start local 5 3: iload 5
ifge 7
4: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 6
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 6
5: ldc "Raw read: EOF"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals: int
StackMap stack:
iconst_m1
ireturn
7: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 10
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 10
8: aload 1
iload 2
iload 4
iadd
iload 5
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
astore 6
start local 6 9: ldc "Raw read"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 6 10: StackMap locals:
StackMap stack:
iload 4
iload 5
iadd
istore 4
end local 5 11: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmplt 2
12: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 is Ljava/io/InputStream;
0 13 1 buffer [B
0 13 2 offset I
0 13 3 len I
1 13 4 n I
3 11 5 readLen I
9 10 6 bb Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
is
buffer
offset
len
void deplete(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
istore 2
start local 2 1: iload 1
ifeq 5
iload 2
ifne 5
2: aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
pop
3: goto 5
4: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
iload 2
i2l
invokevirtual java.io.InputStream.skip:(J)J
pop2
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketInputRecord.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
dup
istore 2
ifne 4
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SSLSocketInputRecord;
0 7 1 tryToRead Z
1 7 2 remaining I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tryToRead
}
SourceFile: "SSLSocketInputRecord.java"
InnerClasses:
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher