final class sun.security.ssl.SSLEngineInputRecord 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.SSLEngineInputRecord
super_class: sun.security.ssl.InputRecord
{
private boolean formatVerified;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer handshakeBuffer;
descriptor: Ljava/nio/ByteBuffer;
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
iconst_0
putfield sun.security.ssl.SSLEngineInputRecord.formatVerified:Z
2: aload 0
aconst_null
putfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 4 1 handshakeHash Lsun/security/ssl/HandshakeHash;
MethodParameters:
Name Flags
handshakeHash
int estimateFragmentSize(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifle 2
1: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
iload 1
iconst_5
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.estimateFragmentSize:(II)I
ireturn
2: StackMap locals:
StackMap stack:
sipush 16384
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 3 1 packetSize I
MethodParameters:
Name Flags
packetSize
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 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
aaload
invokevirtual sun.security.ssl.SSLEngineInputRecord.bytesInCompletePacket:(Ljava/nio/ByteBuffer;)I
ireturn
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/SSLEngineInputRecord;
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
private int bytesInCompletePacket(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_5
if_icmpge 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 3: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.formatVerified:Z
ifne 8
6: iload 3
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 8
7: iload 3
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 24
8: StackMap locals: int int int
StackMap stack:
aload 1
iload 2
iconst_1
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 5
start local 5 9: aload 1
iload 2
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 6
start local 6 10: iload 5
iload 6
iconst_0
11: invokestatic sun.security.ssl.ProtocolVersion.isNegotiable:(BBZ)Z
12: ifne 17
13: new javax.net.ssl.SSLException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized record version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: iload 5
iload 6
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: ldc " , plaintext connection?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: int int
StackMap stack:
aload 0
iconst_1
putfield sun.security.ssl.SSLEngineInputRecord.formatVerified:Z
18: aload 1
iload 2
iconst_3
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
sipush 255
iand
bipush 8
ishl
19: aload 1
iload 2
iconst_4
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
sipush 255
iand
20: iadd
21: iconst_5
22: iadd
istore 4
end local 6 end local 5 23: goto 51
24: StackMap locals:
StackMap stack:
iload 3
sipush 128
iand
ifeq 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 5
start local 5 27: iload 5
ifeq 48
28: aload 1
iload 2
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
iconst_1
if_icmpeq 29
aload 1
iload 2
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
iconst_4
if_icmpne 48
29: StackMap locals: int
StackMap stack:
aload 1
iload 2
iconst_3
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 6
start local 6 30: aload 1
iload 2
iconst_4
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 7
start local 7 31: iload 6
iload 7
iconst_0
32: invokestatic sun.security.ssl.ProtocolVersion.isNegotiable:(BBZ)Z
33: ifne 38
34: new javax.net.ssl.SSLException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized record version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
35: iload 6
iload 7
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(BB)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: ldc " , plaintext connection?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals: int int
StackMap stack:
iload 5
ifeq 39
bipush 127
goto 40
StackMap locals:
StackMap stack:
39: bipush 63
StackMap locals:
StackMap stack: int
40: istore 8
start local 8 41: iload 3
iload 8
iand
bipush 8
ishl
42: aload 1
iload 2
iconst_1
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
sipush 255
iand
43: iadd
44: iload 5
ifeq 45
iconst_2
goto 46
StackMap locals: sun.security.ssl.SSLEngineInputRecord java.nio.ByteBuffer int int int int int int int
StackMap stack: int
45: iconst_3
46: StackMap locals: sun.security.ssl.SSLEngineInputRecord java.nio.ByteBuffer int int int int int int int
StackMap stack: int int
iadd
istore 4
end local 8 end local 7 end local 6 47: goto 51
48: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
49: ldc "Unrecognized SSL message, plaintext connection?"
50: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
athrow
end local 5 51: StackMap locals:
StackMap stack:
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 52 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 52 1 packet Ljava/nio/ByteBuffer;
3 52 2 pos I
4 52 3 byteZero B
5 52 4 len I
9 23 5 majorVersion B
10 23 6 minorVersion B
27 51 5 isShort Z
30 47 6 majorVersion B
31 47 7 minorVersion B
41 47 8 mask I
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
packet
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 1
ifnull 1
aload 1
arraylength
ifeq 1
iload 3
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
anewarray sun.security.ssl.Plaintext
areturn
2: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmpne 4
3: aload 0
aload 1
iload 2
aaload
invokevirtual sun.security.ssl.SSLEngineInputRecord.decode:(Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
areturn
4: StackMap locals:
StackMap stack:
aload 1
5: iload 2
iload 3
iconst_5
6: invokestatic sun.security.ssl.SSLEngineInputRecord.extract:([Ljava/nio/ByteBuffer;III)Ljava/nio/ByteBuffer;
astore 4
start local 4 7: aload 0
aload 4
invokevirtual sun.security.ssl.SSLEngineInputRecord.decode:(Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 8 1 srcs [Ljava/nio/ByteBuffer;
0 8 2 srcsOffset I
0 8 3 srcsLength I
7 8 4 packet Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
srcs
srcsOffset
srcsLength
private sun.security.ssl.Plaintext[] decode(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.isClosed:Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 4
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 4
3: ldc "Raw read"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineInputRecord.formatVerified:Z
ifne 11
5: aload 0
iconst_1
putfield sun.security.ssl.SSLEngineInputRecord.formatVerified:Z
6: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 7: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 3
start local 3 8: iload 3
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 11
9: iload 3
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 11
10: aload 0
aload 1
invokevirtual sun.security.ssl.SSLEngineInputRecord.handleUnknownRecord:(Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
areturn
end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.SSLEngineInputRecord.decodeInputRecord:(Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 12 1 packet Ljava/nio/ByteBuffer;
7 11 2 pos I
8 11 3 byteZero B
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
packet
private sun.security.ssl.Plaintext[] decodeInputRecord(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=19, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 3
start local 3 2: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 4
start local 4 3: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 5
start local 5 4: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 6
start local 6 5: aload 1
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 7
start local 7 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 5
iload 6
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 4
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 7
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.SSLEngineInputRecord java.nio.ByteBuffer int int int int int int
StackMap stack:
iload 7
iflt 14
iload 7
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 7
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:
iload 2
iconst_5
iadd
iload 7
iadd
istore 8
start local 8 18: aload 1
iload 8
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
19: aload 1
iload 2
iconst_5
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
20: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
iload 4
aload 1
aconst_null
invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.decrypt:(BLjava/nio/ByteBuffer;[B)Lsun/security/ssl/Plaintext;
21: astore 10
start local 10 22: aload 10
getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
astore 9
start local 9 23: aload 10
getfield sun.security.ssl.Plaintext.contentType:B
istore 4
end local 10 24: goto 37
end local 9 StackMap locals: sun.security.ssl.SSLEngineInputRecord java.nio.ByteBuffer int int int int int int int
StackMap stack: javax.crypto.BadPaddingException
25: astore 10
start local 10 26: aload 10
athrow
end local 10 27: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 10
start local 10 28: new javax.net.ssl.SSLProtocolException
dup
29: ldc "Unexpected exception"
30: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
31: aload 10
invokevirtual javax.net.ssl.SSLProtocolException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
32: checkcast javax.net.ssl.SSLProtocolException
athrow
end local 10 33: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
34: aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
35: aload 1
iload 8
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
36: aload 11
athrow
start local 9 37: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 1
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
38: aload 1
iload 8
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
39: iload 4
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpeq 46
40: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
ifnull 46
aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 46
41: new javax.net.ssl.SSLProtocolException
dup
42: new java.lang.StringBuilder
dup
ldc "Expecting a handshake fragment, but received "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
43: iload 4
invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
44: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
45: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
46: StackMap locals:
StackMap stack:
iload 4
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 99
47: aload 9
astore 10
start local 10 48: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
ifnull 56
49: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ifeq 56
50: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 9
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
51: newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 11
start local 11 52: aload 11
aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
53: aload 11
aload 9
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
54: aload 11
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
astore 10
55: aload 0
aconst_null
putfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
end local 11 56: StackMap locals: java.nio.ByteBuffer
StackMap stack:
new java.util.ArrayList
dup
iconst_5
invokespecial java.util.ArrayList.<init>:(I)V
astore 11
start local 11 57: goto 97
58: StackMap locals: java.util.ArrayList
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 12
start local 12 59: iload 12
iconst_4
if_icmpge 64
60: aload 0
iload 12
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
61: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
aload 10
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
62: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
63: goto 98
64: StackMap locals: int
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.mark:()Ljava/nio/Buffer;
pop
65: aload 10
invokevirtual java.nio.ByteBuffer.get:()B
istore 13
start local 13 66: aload 10
invokestatic sun.security.ssl.Record.getInt24:(Ljava/nio/ByteBuffer;)I
istore 14
start local 14 67: aload 10
invokevirtual java.nio.ByteBuffer.reset:()Ljava/nio/Buffer;
pop
68: iconst_4
iload 14
iadd
69: istore 15
start local 15 70: iload 12
iload 15
if_icmpge 75
71: aload 0
iload 12
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
72: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
aload 10
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
73: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
74: goto 98
75: StackMap locals: int int int
StackMap stack:
iload 12
iload 15
if_icmpne 84
76: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
iload 13
invokevirtual sun.security.ssl.HandshakeHash.isHashable:(B)Z
ifeq 78
77: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 10
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
78: StackMap locals:
StackMap stack:
aload 11
79: new sun.security.ssl.Plaintext
dup
iload 4
80: iload 5
iload 6
iconst_m1
ldc -1
aload 10
81: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
82: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
83: goto 98
84: StackMap locals:
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.position:()I
istore 16
start local 16 85: aload 10
invokevirtual java.nio.ByteBuffer.limit:()I
istore 17
start local 17 86: iload 16
iload 15
iadd
istore 18
start local 18 87: aload 10
iload 18
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
88: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
iload 13
invokevirtual sun.security.ssl.HandshakeHash.isHashable:(B)Z
ifeq 90
89: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 10
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
90: StackMap locals: int int int
StackMap stack:
aload 11
91: new sun.security.ssl.Plaintext
dup
iload 4
iload 5
iload 6
92: iconst_m1
ldc -1
aload 10
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
93: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
94: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
95: aload 10
iload 18
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
96: aload 10
iload 17
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 97: StackMap locals: sun.security.ssl.SSLEngineInputRecord java.nio.ByteBuffer int int int int int int int java.nio.ByteBuffer java.nio.ByteBuffer java.util.ArrayList
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 58
98: StackMap locals:
StackMap stack:
aload 11
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 11 end local 10 99: StackMap locals:
StackMap stack:
iconst_1
anewarray sun.security.ssl.Plaintext
dup
iconst_0
100: new sun.security.ssl.Plaintext
dup
iload 4
101: iload 5
iload 6
iconst_m1
ldc -1
aload 9
102: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
aastore
103: areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 104 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 104 1 packet Ljava/nio/ByteBuffer;
1 104 2 srcPos I
2 104 3 srcLim I
3 104 4 contentType B
4 104 5 majorVersion B
5 104 6 minorVersion B
6 104 7 contentLen I
18 104 8 recLim I
23 25 9 fragment Ljava/nio/ByteBuffer;
37 104 9 fragment Ljava/nio/ByteBuffer;
22 24 10 plaintext Lsun/security/ssl/Plaintext;
26 27 10 bpe Ljavax/crypto/BadPaddingException;
28 33 10 gse Ljava/security/GeneralSecurityException;
48 99 10 handshakeFrag Ljava/nio/ByteBuffer;
52 56 11 bb Ljava/nio/ByteBuffer;
57 99 11 plaintexts Ljava/util/ArrayList<Lsun/security/ssl/Plaintext;>;
59 97 12 remaining I
66 97 13 handshakeType B
67 97 14 handshakeBodyLen I
70 97 15 handshakeMessageLen I
85 97 16 fragPos I
86 97 17 fragLim I
87 97 18 nextPos I
Exception table:
from to target type
20 24 25 Class javax.crypto.BadPaddingException
20 24 27 Class java.security.GeneralSecurityException
20 33 33 any
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
packet
private sun.security.ssl.Plaintext[] handleUnknownRecord(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[Lsun/security/ssl/Plaintext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
pop
2: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 3
start local 3 3: aload 1
iload 2
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 4
start local 4 4: iload 3
sipush 128
iand
ifeq 29
iload 4
iconst_1
if_icmpne 29
5: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 7
6: new javax.net.ssl.SSLHandshakeException
dup
ldc "SSLv2Hello is not enabled"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int int int
StackMap stack:
aload 1
iload 2
iconst_3
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 5
start local 5 8: aload 1
iload 2
iconst_4
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 6
start local 6 9: iload 5
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
if_icmpne 17
10: iload 6
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
if_icmpne 17
11: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 14
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:
new java.lang.UnsupportedOperationException
dup
15: ldc "Unsupported SSL v2.0 ClientHello"
16: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 1
iload 2
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: aload 0
getfield sun.security.ssl.SSLEngineInputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 1
invokevirtual sun.security.ssl.HandshakeHash.receive:(Ljava/nio/ByteBuffer;)V
19: aload 1
iload 2
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
20: aload 1
invokestatic sun.security.ssl.SSLEngineInputRecord.convertToClientHello:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
astore 7
start local 7 21: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 24
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 24
22: ldc "[Converted] ClientHello"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 7
aastore
23: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_1
anewarray sun.security.ssl.Plaintext
dup
iconst_0
25: new sun.security.ssl.Plaintext
dup
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
26: iload 5
iload 6
iconst_m1
ldc -1
aload 7
27: invokespecial sun.security.ssl.Plaintext.<init>:(BBBIJLjava/nio/ByteBuffer;)V
aastore
28: areturn
end local 7 end local 6 end local 5 29: StackMap locals:
StackMap stack:
iload 3
sipush 128
iand
ifeq 31
iload 4
iconst_4
if_icmpne 31
30: 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
31: 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 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/ssl/SSLEngineInputRecord;
0 32 1 packet Ljava/nio/ByteBuffer;
1 32 2 srcPos I
3 32 3 firstByte B
4 32 4 thirdByte B
8 29 5 majorVersion B
9 29 6 minorVersion B
21 29 7 converted Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
packet
}
SourceFile: "SSLEngineInputRecord.java"
InnerClasses:
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher