class sun.security.ssl.InputRecord implements sun.security.ssl.Record, java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.ssl.InputRecord
super_class: java.lang.Object
{
static final sun.security.ssl.Debug debug;
descriptor: Lsun/security/ssl/Debug;
flags: (0x0018) ACC_STATIC, ACC_FINAL
sun.security.ssl.Authenticator readAuthenticator;
descriptor: Lsun/security/ssl/Authenticator;
flags: (0x0000)
sun.security.ssl.CipherBox readCipher;
descriptor: Lsun/security/ssl/CipherBox;
flags: (0x0000)
sun.security.ssl.HandshakeHash handshakeHash;
descriptor: Lsun/security/ssl/HandshakeHash;
flags: (0x0000)
boolean isClosed;
descriptor: Z
flags: (0x0000)
sun.security.ssl.ProtocolVersion helloVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
int fragmentSize;
descriptor: I
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 48
ldc "ssl"
invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
putstatic sun.security.ssl.InputRecord.debug:Lsun/security/ssl/Debug;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 64
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 65
aload 0 /* this */
getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/CipherBox;
2: .line 66
aload 0 /* this */
aconst_null
putfield sun.security.ssl.InputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
3: .line 67
aload 0 /* this */
getstatic sun.security.ssl.ProtocolVersion.DEFAULT_HELLO:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
4: .line 68
aload 0 /* this */
sipush 16384
putfield sun.security.ssl.InputRecord.fragmentSize:I
5: .line 69
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/InputRecord;
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 72
aload 0 /* this */
aload 1 /* helloVersion */
putfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
1: .line 73
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
sun.security.ssl.ProtocolVersion getHelloVersion();
descriptor: ()Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 76
aload 0 /* this */
getfield sun.security.ssl.InputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
areturn
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
void setHandshakeHash(sun.security.ssl.HandshakeHash);
descriptor: (Lsun/security/ssl/HandshakeHash;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.HandshakeHash handshakeHash
0: .line 88
aload 1 /* handshakeHash */
ifnull 10
1: .line 89
aconst_null
astore 2 /* reserved */
start local 2 // byte[] reserved
2: .line 90
aload 0 /* this */
getfield sun.security.ssl.InputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
ifnull 4
3: .line 91
aload 0 /* this */
getfield sun.security.ssl.InputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.getAllHandshakeMessages:()[B
astore 2 /* reserved */
4: .line 93
StackMap locals: byte[]
StackMap stack:
aload 2 /* reserved */
ifnull 10
aload 2 /* reserved */
arraylength
ifeq 10
5: .line 94
aload 1 /* handshakeHash */
aload 2 /* reserved */
iconst_0
aload 2 /* reserved */
arraylength
invokevirtual sun.security.ssl.HandshakeHash.update:([BII)V
6: .line 96
getstatic sun.security.ssl.InputRecord.debug:Lsun/security/ssl/Debug;
ifnull 10
ldc "data"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 10
7: .line 98
new java.lang.StringBuilder
dup
ldc "[reserved] handshake hash: len = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* reserved */
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: .line 99
aload 2 /* reserved */
9: .line 97
invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[B)V
end local 2 // byte[] reserved
10: .line 104
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* handshakeHash */
putfield sun.security.ssl.InputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
11: .line 105
return
end local 1 // sun.security.ssl.HandshakeHash handshakeHash
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/InputRecord;
0 12 1 handshakeHash Lsun/security/ssl/HandshakeHash;
2 10 2 reserved [B
MethodParameters:
Name Flags
handshakeHash
boolean seqNumIsHuge();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 108
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
ifnull 3
1: .line 109
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.seqNumIsHuge:()Z
ifeq 3
2: .line 108
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 113
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 119
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/InputRecord;
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.ssl.InputRecord this
0: .line 127
aload 0 /* this */
getfield sun.security.ssl.InputRecord.isClosed:Z
ifne 3
1: .line 128
aload 0 /* this */
iconst_1
putfield sun.security.ssl.InputRecord.isClosed:Z
2: .line 129
aload 0 /* this */
getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.dispose:()V
3: .line 131
StackMap locals:
StackMap stack:
return
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/InputRecord;
Exceptions:
throws java.io.IOException
void changeReadCiphers(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox);
descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.Authenticator readAuthenticator
start local 2 // sun.security.ssl.CipherBox readCipher
0: .line 145
aload 2 /* readCipher */
invokevirtual sun.security.ssl.CipherBox.dispose:()V
1: .line 147
aload 0 /* this */
aload 1 /* readAuthenticator */
putfield sun.security.ssl.InputRecord.readAuthenticator:Lsun/security/ssl/Authenticator;
2: .line 148
aload 0 /* this */
aload 2 /* readCipher */
putfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/CipherBox;
3: .line 149
return
end local 2 // sun.security.ssl.CipherBox readCipher
end local 1 // sun.security.ssl.Authenticator readAuthenticator
end local 0 // sun.security.ssl.InputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/InputRecord;
0 4 1 readAuthenticator Lsun/security/ssl/Authenticator;
0 4 2 readCipher Lsun/security/ssl/CipherBox;
MethodParameters:
Name Flags
readAuthenticator
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 153
aload 0 /* this */
iload 1 /* fragmentSize */
putfield sun.security.ssl.InputRecord.fragmentSize:I
1: .line 154
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);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.nio.ByteBuffer buf
0: .line 164
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.nio.ByteBuffer buf
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 buf Ljava/nio/ByteBuffer;
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
buf
int bytesInCompletePacket(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.io.InputStream is
0: .line 169
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.io.InputStream is
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 is Ljava/io/InputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
is
void checkRecordVersion(sun.security.ssl.ProtocolVersion, boolean);
descriptor: (Lsun/security/ssl/ProtocolVersion;Z)V
flags: (0x0000)
Code:
stack=0, locals=3, args_size=3
start local 0 // sun.security.ssl.InputRecord this
start local 1 // sun.security.ssl.ProtocolVersion version
start local 2 // boolean allowSSL20Hello
0: .line 179
return
end local 2 // boolean allowSSL20Hello
end local 1 // sun.security.ssl.ProtocolVersion version
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 version Lsun/security/ssl/ProtocolVersion;
0 1 2 allowSSL20Hello Z
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
version
allowSSL20Hello
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 184
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
sun.security.ssl.Plaintext decode(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.nio.ByteBuffer netData
0: .line 192
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.nio.ByteBuffer netData
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 netData Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
netData
sun.security.ssl.Plaintext decode(java.io.InputStream, java.nio.ByteBuffer);
descriptor: (Ljava/io/InputStream;Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // sun.security.ssl.InputRecord this
start local 1 // java.io.InputStream is
start local 2 // java.nio.ByteBuffer destination
0: .line 198
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 2 // java.nio.ByteBuffer destination
end local 1 // java.io.InputStream is
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 is Ljava/io/InputStream;
0 1 2 destination Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
is
destination
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 203
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 210
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 220
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.position:()I
istore 1 /* srcPos */
start local 1 // int srcPos
1: .line 221
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.limit:()I
pop
2: .line 223
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 2 /* firstByte */
start local 2 // byte firstByte
3: .line 224
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 3 /* secondByte */
start local 3 // byte secondByte
4: .line 225
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
5: .line 227
aload 0 /* packet */
iload 1 /* srcPos */
iconst_3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
6: .line 229
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 5 /* majorVersion */
start local 5 // byte majorVersion
7: .line 230
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
istore 6 /* minorVersion */
start local 6 // byte minorVersion
8: .line 232
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
9: .line 233
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
10: .line 232
iadd
istore 7 /* cipherSpecLen */
start local 7 // int cipherSpecLen
11: .line 234
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
12: .line 235
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
13: .line 234
iadd
istore 8 /* sessionIdLen */
start local 8 // int sessionIdLen
14: .line 236
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
bipush 8
ishl
15: .line 237
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
16: .line 236
iadd
istore 9 /* nonceLen */
start local 9 // int nonceLen
17: .line 247
bipush 48
iload 8 /* sessionIdLen */
iadd
iload 7 /* cipherSpecLen */
iconst_2
imul
iconst_3
idiv
iadd
istore 10 /* requiredSize */
start local 10 // int requiredSize
18: .line 248
iload 10 /* requiredSize */
newarray 8
astore 11 /* converted */
start local 11 // byte[] converted
19: .line 255
aload 11 /* converted */
iconst_0
bipush 22
bastore
20: .line 256
aload 11 /* converted */
iconst_1
iload 5 /* majorVersion */
bastore
21: .line 257
aload 11 /* converted */
iconst_2
iload 6 /* minorVersion */
bastore
22: .line 264
aload 11 /* converted */
iconst_5
iconst_1
bastore
23: .line 271
aload 11 /* converted */
bipush 9
iload 5 /* majorVersion */
bastore
24: .line 272
aload 11 /* converted */
bipush 10
iload 6 /* minorVersion */
bastore
25: .line 274
bipush 11
istore 12 /* pointer */
start local 12 // int pointer
26: .line 281
iload 1 /* srcPos */
bipush 11
iadd
iload 7 /* cipherSpecLen */
iadd
iload 8 /* sessionIdLen */
iadd
istore 13 /* offset */
start local 13 // int offset
27: .line 283
iload 9 /* nonceLen */
bipush 32
if_icmpge 37
28: .line 284
iconst_0
istore 14 /* i */
start local 14 // int i
29: goto 32
30: .line 285
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
31: .line 284
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
32: iload 14 /* i */
bipush 32
iload 9 /* nonceLen */
isub
if_icmplt 30
end local 14 // int i
33: .line 287
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
34: .line 288
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
iload 9 /* nonceLen */
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
35: .line 290
iload 12 /* pointer */
iload 9 /* nonceLen */
iadd
istore 12 /* pointer */
36: .line 291
goto 40
37: .line 292
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
38: .line 293
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
bipush 32
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
39: .line 295
iinc 12 /* pointer */ 32
40: .line 301
StackMap locals:
StackMap stack:
iload 13 /* offset */
iload 8 /* sessionIdLen */
isub
istore 13 /* offset */
41: .line 302
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 8 /* sessionIdLen */
sipush 255
iand
i2b
bastore
42: .line 303
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
43: .line 304
aload 0 /* packet */
aload 11 /* converted */
iload 12 /* pointer */
iload 8 /* sessionIdLen */
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
44: .line 322
iload 13 /* offset */
iload 7 /* cipherSpecLen */
isub
istore 13 /* offset */
45: .line 323
aload 0 /* packet */
iload 13 /* offset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
46: .line 325
iload 12 /* pointer */
iconst_2
iadd
istore 14 /* j */
start local 14 // int j
47: .line 326
iconst_0
istore 15 /* i */
start local 15 // int i
48: goto 56
49: .line 327
StackMap locals: int int
StackMap stack:
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
ifeq 53
50: .line 331
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
pop
51: .line 332
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
pop
52: .line 333
goto 55
53: .line 336
StackMap locals:
StackMap stack:
aload 11 /* converted */
iload 14 /* j */
iinc 14 /* j */ 1
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
bastore
54: .line 337
aload 11 /* converted */
iload 14 /* j */
iinc 14 /* j */ 1
aload 0 /* packet */
invokevirtual java.nio.ByteBuffer.get:()B
bastore
55: .line 326
StackMap locals:
StackMap stack:
iinc 15 /* i */ 3
StackMap locals:
StackMap stack:
56: iload 15 /* i */
iload 7 /* cipherSpecLen */
if_icmplt 49
end local 15 // int i
57: .line 340
iload 14 /* j */
iload 12 /* pointer */
iconst_2
iadd
isub
istore 14 /* j */
58: .line 341
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 14 /* j */
bipush 8
iushr
sipush 255
iand
i2b
bastore
59: .line 342
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iload 14 /* j */
sipush 255
iand
i2b
bastore
60: .line 343
iload 12 /* pointer */
iload 14 /* j */
iadd
istore 12 /* pointer */
61: .line 348
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iconst_1
bastore
62: .line 349
aload 11 /* converted */
iload 12 /* pointer */
iinc 12 /* pointer */ 1
iconst_0
bastore
63: .line 356
iload 12 /* pointer */
iconst_5
isub
istore 15 /* fragLen */
start local 15 // int fragLen
64: .line 357
aload 11 /* converted */
iconst_3
iload 15 /* fragLen */
bipush 8
iushr
sipush 255
iand
i2b
bastore
65: .line 358
aload 11 /* converted */
iconst_4
iload 15 /* fragLen */
sipush 255
iand
i2b
bastore
66: .line 363
iload 12 /* pointer */
bipush 9
isub
istore 15 /* fragLen */
67: .line 364
aload 11 /* converted */
bipush 6
iload 15 /* fragLen */
bipush 16
iushr
sipush 255
iand
i2b
bastore
68: .line 365
aload 11 /* converted */
bipush 7
iload 15 /* fragLen */
bipush 8
iushr
sipush 255
iand
i2b
bastore
69: .line 366
aload 11 /* converted */
bipush 8
iload 15 /* fragLen */
sipush 255
iand
i2b
bastore
70: .line 369
aload 0 /* packet */
iload 1 /* srcPos */
iload 4 /* recordLen */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
71: .line 372
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 72 0 packet Ljava/nio/ByteBuffer;
1 72 1 srcPos I
3 72 2 firstByte B
4 72 3 secondByte B
5 72 4 recordLen I
7 72 5 majorVersion B
8 72 6 minorVersion B
11 72 7 cipherSpecLen I
14 72 8 sessionIdLen I
17 72 9 nonceLen I
18 72 10 requiredSize I
19 72 11 converted [B
26 72 12 pointer I
27 72 13 offset I
29 33 14 i I
47 72 14 j I
48 57 15 i I
64 72 15 fragLen I
MethodParameters:
Name Flags
packet
static java.nio.ByteBuffer decrypt(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox, byte, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BLjava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 // sun.security.ssl.Authenticator authenticator
start local 1 // sun.security.ssl.CipherBox box
start local 2 // byte contentType
start local 3 // java.nio.ByteBuffer bb
0: .line 378
aload 0 /* authenticator */
aload 1 /* box */
iload 2 /* contentType */
aload 3 /* bb */
aconst_null
invokestatic sun.security.ssl.InputRecord.decrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BLjava/nio/ByteBuffer;[B)Ljava/nio/ByteBuffer;
areturn
end local 3 // java.nio.ByteBuffer bb
end local 2 // byte contentType
end local 1 // sun.security.ssl.CipherBox box
end local 0 // sun.security.ssl.Authenticator authenticator
LocalVariableTable:
Start End Slot Name Signature
0 1 0 authenticator Lsun/security/ssl/Authenticator;
0 1 1 box Lsun/security/ssl/CipherBox;
0 1 2 contentType B
0 1 3 bb Ljava/nio/ByteBuffer;
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
authenticator
box
contentType
bb
static java.nio.ByteBuffer decrypt(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox, byte, java.nio.ByteBuffer, byte[]);
descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BLjava/nio/ByteBuffer;[B)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=13, args_size=5
start local 0 // sun.security.ssl.Authenticator authenticator
start local 1 // sun.security.ssl.CipherBox box
start local 2 // byte contentType
start local 3 // java.nio.ByteBuffer bb
start local 4 // byte[] sequence
0: .line 385
aconst_null
astore 5 /* reservedBPE */
start local 5 // javax.crypto.BadPaddingException reservedBPE
1: .line 387
aload 0 /* authenticator */
instanceof sun.security.ssl.MAC
ifeq 2
aload 0 /* authenticator */
checkcast sun.security.ssl.MAC
invokevirtual sun.security.ssl.MAC.MAClen:()I
goto 3
StackMap locals: javax.crypto.BadPaddingException
StackMap stack:
2: iconst_0
3: .line 386
StackMap locals:
StackMap stack: int
istore 6 /* tagLen */
start local 6 // int tagLen
4: .line 388
aload 3 /* bb */
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 7 /* cipheredLength */
start local 7 // int cipheredLength
5: .line 389
aload 3 /* bb */
invokevirtual java.nio.ByteBuffer.position:()I
istore 8 /* srcPos */
start local 8 // int srcPos
6: .line 390
aload 1 /* box */
invokevirtual sun.security.ssl.CipherBox.isNullCipher:()Z
ifne 17
7: .line 393
aload 1 /* box */
8: .line 394
aload 0 /* authenticator */
iload 2 /* contentType */
aload 3 /* bb */
aload 4 /* sequence */
9: .line 393
invokevirtual sun.security.ssl.CipherBox.applyExplicitNonce:(Lsun/security/ssl/Authenticator;BLjava/nio/ByteBuffer;[B)I
istore 9 /* nonceSize */
start local 9 // int nonceSize
10: .line 397
aload 1 /* box */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifeq 12
11: .line 399
aload 3 /* bb */
iload 8 /* srcPos */
iload 9 /* nonceSize */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
12: .line 404
StackMap locals: sun.security.ssl.Authenticator sun.security.ssl.CipherBox int java.nio.ByteBuffer byte[] javax.crypto.BadPaddingException int int int int
StackMap stack:
aload 1 /* box */
aload 3 /* bb */
iload 6 /* tagLen */
invokevirtual sun.security.ssl.CipherBox.decrypt:(Ljava/nio/ByteBuffer;I)I
pop
13: .line 406
aload 3 /* bb */
iload 8 /* srcPos */
iload 9 /* nonceSize */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
end local 9 // int nonceSize
14: .line 407
goto 17
StackMap locals: sun.security.ssl.Authenticator sun.security.ssl.CipherBox int java.nio.ByteBuffer byte[] javax.crypto.BadPaddingException int int int
StackMap stack: javax.crypto.BadPaddingException
15: astore 9 /* bpe */
start local 9 // javax.crypto.BadPaddingException bpe
16: .line 416
aload 9 /* bpe */
astore 5 /* reservedBPE */
end local 9 // javax.crypto.BadPaddingException bpe
17: .line 422
StackMap locals:
StackMap stack:
aload 0 /* authenticator */
instanceof sun.security.ssl.MAC
ifeq 34
iload 6 /* tagLen */
ifeq 34
18: .line 423
aload 0 /* authenticator */
checkcast sun.security.ssl.MAC
astore 9 /* signer */
start local 9 // sun.security.ssl.MAC signer
19: .line 424
aload 3 /* bb */
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 6 /* tagLen */
isub
istore 10 /* contentLen */
start local 10 // int contentLen
20: .line 429
iload 10 /* contentLen */
ifge 25
21: .line 431
aload 5 /* reservedBPE */
ifnonnull 23
22: .line 432
new javax.crypto.BadPaddingException
dup
ldc "bad record"
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
astore 5 /* reservedBPE */
23: .line 436
StackMap locals: sun.security.ssl.MAC int
StackMap stack:
iload 7 /* cipheredLength */
iload 6 /* tagLen */
isub
istore 10 /* contentLen */
24: .line 437
aload 3 /* bb */
iload 8 /* srcPos */
iload 7 /* cipheredLength */
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
25: .line 443
StackMap locals:
StackMap stack:
iload 2 /* contentType */
aload 3 /* bb */
aload 9 /* signer */
aload 4 /* sequence */
iconst_0
invokestatic sun.security.ssl.InputRecord.checkMacTags:(BLjava/nio/ByteBuffer;Lsun/security/ssl/MAC;[BZ)Z
ifeq 28
26: .line 444
aload 5 /* reservedBPE */
ifnonnull 28
27: .line 445
new javax.crypto.BadPaddingException
dup
ldc "bad record MAC"
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
astore 5 /* reservedBPE */
28: .line 453
StackMap locals:
StackMap stack:
aload 1 /* box */
invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
ifeq 34
29: .line 455
aload 9 /* signer */
iload 7 /* cipheredLength */
iload 10 /* contentLen */
30: .line 454
invokestatic sun.security.ssl.InputRecord.calculateRemainingLen:(Lsun/security/ssl/MAC;II)I
istore 11 /* remainingLen */
start local 11 // int remainingLen
31: .line 462
iload 11 /* remainingLen */
aload 9 /* signer */
invokevirtual sun.security.ssl.MAC.MAClen:()I
iadd
istore 11 /* remainingLen */
32: .line 463
iload 11 /* remainingLen */
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 12 /* temporary */
start local 12 // java.nio.ByteBuffer temporary
33: .line 469
iload 2 /* contentType */
aload 12 /* temporary */
aload 9 /* signer */
aload 4 /* sequence */
iconst_1
invokestatic sun.security.ssl.InputRecord.checkMacTags:(BLjava/nio/ByteBuffer;Lsun/security/ssl/MAC;[BZ)Z
pop
end local 12 // java.nio.ByteBuffer temporary
end local 11 // int remainingLen
end local 10 // int contentLen
end local 9 // sun.security.ssl.MAC signer
34: .line 474
StackMap locals:
StackMap stack:
aload 5 /* reservedBPE */
ifnull 36
35: .line 475
aload 5 /* reservedBPE */
athrow
36: .line 478
StackMap locals:
StackMap stack:
aload 3 /* bb */
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
areturn
end local 8 // int srcPos
end local 7 // int cipheredLength
end local 6 // int tagLen
end local 5 // javax.crypto.BadPaddingException reservedBPE
end local 4 // byte[] sequence
end local 3 // java.nio.ByteBuffer bb
end local 2 // byte contentType
end local 1 // sun.security.ssl.CipherBox box
end local 0 // sun.security.ssl.Authenticator authenticator
LocalVariableTable:
Start End Slot Name Signature
0 37 0 authenticator Lsun/security/ssl/Authenticator;
0 37 1 box Lsun/security/ssl/CipherBox;
0 37 2 contentType B
0 37 3 bb Ljava/nio/ByteBuffer;
0 37 4 sequence [B
1 37 5 reservedBPE Ljavax/crypto/BadPaddingException;
4 37 6 tagLen I
5 37 7 cipheredLength I
6 37 8 srcPos I
10 14 9 nonceSize I
16 17 9 bpe Ljavax/crypto/BadPaddingException;
19 34 9 signer Lsun/security/ssl/MAC;
20 34 10 contentLen I
31 34 11 remainingLen I
33 34 12 temporary Ljava/nio/ByteBuffer;
Exception table:
from to target type
7 14 15 Class javax.crypto.BadPaddingException
Exceptions:
throws javax.crypto.BadPaddingException
MethodParameters:
Name Flags
authenticator
box
contentType
bb
sequence
private static boolean checkMacTags(byte, java.nio.ByteBuffer, sun.security.ssl.MAC, byte[], boolean);
descriptor: (BLjava/nio/ByteBuffer;Lsun/security/ssl/MAC;[BZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=13, args_size=5
start local 0 // byte contentType
start local 1 // java.nio.ByteBuffer bb
start local 2 // sun.security.ssl.MAC signer
start local 3 // byte[] sequence
start local 4 // boolean isSimulated
0: .line 488
aload 2 /* signer */
invokevirtual sun.security.ssl.MAC.MAClen:()I
istore 5 /* tagLen */
start local 5 // int tagLen
1: .line 489
aload 1 /* bb */
invokevirtual java.nio.ByteBuffer.position:()I
istore 6 /* position */
start local 6 // int position
2: .line 490
aload 1 /* bb */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 7 /* lim */
start local 7 // int lim
3: .line 491
iload 7 /* lim */
iload 5 /* tagLen */
isub
istore 8 /* macOffset */
start local 8 // int macOffset
4: .line 493
aload 1 /* bb */
iload 8 /* macOffset */
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
5: .line 494
aload 2 /* signer */
iload 0 /* contentType */
aload 1 /* bb */
aload 3 /* sequence */
iload 4 /* isSimulated */
invokevirtual sun.security.ssl.MAC.compute:(BLjava/nio/ByteBuffer;[BZ)[B
astore 9 /* hash */
start local 9 // byte[] hash
6: .line 495
aload 9 /* hash */
ifnull 7
iload 5 /* tagLen */
aload 9 /* hash */
arraylength
if_icmpeq 8
7: .line 497
StackMap locals: int java.nio.ByteBuffer sun.security.ssl.MAC byte[] int int int int int byte[]
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Internal MAC error"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
8: .line 500
StackMap locals:
StackMap stack:
aload 1 /* bb */
iload 8 /* macOffset */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
9: .line 501
aload 1 /* bb */
iload 7 /* lim */
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
10: .line 503
aload 1 /* bb */
aload 9 /* hash */
invokestatic sun.security.ssl.InputRecord.compareMacTags:(Ljava/nio/ByteBuffer;[B)[I
astore 10 /* results */
start local 10 // int[] results
11: .line 504
aload 10 /* results */
iconst_0
iaload
ifeq 12
iconst_1
goto 13
StackMap locals: int[]
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 12
14: .line 507
aload 1 /* bb */
iload 6 /* position */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
15: .line 508
aload 1 /* bb */
iload 8 /* macOffset */
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
16: .line 504
iload 12
ireturn
end local 10 // int[] results
17: .line 505
StackMap locals: int java.nio.ByteBuffer sun.security.ssl.MAC byte[] int int int int int byte[]
StackMap stack: java.lang.Throwable
astore 11
18: .line 507
aload 1 /* bb */
iload 6 /* position */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
19: .line 508
aload 1 /* bb */
iload 8 /* macOffset */
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
20: .line 509
aload 11
athrow
end local 9 // byte[] hash
end local 8 // int macOffset
end local 7 // int lim
end local 6 // int position
end local 5 // int tagLen
end local 4 // boolean isSimulated
end local 3 // byte[] sequence
end local 2 // sun.security.ssl.MAC signer
end local 1 // java.nio.ByteBuffer bb
end local 0 // byte contentType
LocalVariableTable:
Start End Slot Name Signature
0 21 0 contentType B
0 21 1 bb Ljava/nio/ByteBuffer;
0 21 2 signer Lsun/security/ssl/MAC;
0 21 3 sequence [B
0 21 4 isSimulated Z
1 21 5 tagLen I
2 21 6 position I
3 21 7 lim I
4 21 8 macOffset I
6 21 9 hash [B
11 17 10 results [I
Exception table:
from to target type
10 14 17 any
MethodParameters:
Name Flags
contentType
bb
signer
sequence
isSimulated
private static int[] compareMacTags(java.nio.ByteBuffer, byte[]);
descriptor: (Ljava/nio/ByteBuffer;[B)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // java.nio.ByteBuffer bb
start local 1 // byte[] tag
0: .line 521
iconst_2
newarray 10
astore 2 /* results */
start local 2 // int[] results
1: .line 525
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 8
3: .line 526
StackMap locals: int[] int
StackMap stack:
aload 0 /* bb */
invokevirtual java.nio.ByteBuffer.get:()B
aload 1 /* tag */
iload 3 /* i */
baload
if_icmpeq 6
4: .line 527
aload 2 /* results */
iconst_0
dup2
iaload
iconst_1
iadd
iastore
5: .line 528
goto 7
6: .line 529
StackMap locals:
StackMap stack:
aload 2 /* results */
iconst_1
dup2
iaload
iconst_1
iadd
iastore
7: .line 525
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 3 /* i */
aload 1 /* tag */
arraylength
if_icmplt 3
end local 3 // int i
9: .line 533
aload 2 /* results */
areturn
end local 2 // int[] results
end local 1 // byte[] tag
end local 0 // java.nio.ByteBuffer bb
LocalVariableTable:
Start End Slot Name Signature
0 10 0 bb Ljava/nio/ByteBuffer;
0 10 1 tag [B
1 10 2 results [I
2 9 3 i I
MethodParameters:
Name Flags
bb
tag
private static boolean checkMacTags(byte, byte[], int, int, sun.security.ssl.MAC, boolean);
descriptor: (B[BIILsun/security/ssl/MAC;Z)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=6
start local 0 // byte contentType
start local 1 // byte[] buffer
start local 2 // int offset
start local 3 // int contentLen
start local 4 // sun.security.ssl.MAC signer
start local 5 // boolean isSimulated
0: .line 544
aload 4 /* signer */
invokevirtual sun.security.ssl.MAC.MAClen:()I
istore 6 /* tagLen */
start local 6 // int tagLen
1: .line 545
aload 4 /* signer */
2: .line 546
iload 0 /* contentType */
aload 1 /* buffer */
iload 2 /* offset */
iload 3 /* contentLen */
iload 5 /* isSimulated */
3: .line 545
invokevirtual sun.security.ssl.MAC.compute:(B[BIIZ)[B
astore 7 /* hash */
start local 7 // byte[] hash
4: .line 547
aload 7 /* hash */
ifnull 5
iload 6 /* tagLen */
aload 7 /* hash */
arraylength
if_icmpeq 6
5: .line 549
StackMap locals: int byte[]
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Internal MAC error"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
6: .line 552
StackMap locals:
StackMap stack:
aload 1 /* buffer */
iload 2 /* offset */
iload 3 /* contentLen */
iadd
aload 7 /* hash */
invokestatic sun.security.ssl.InputRecord.compareMacTags:([BI[B)[I
astore 8 /* results */
start local 8 // int[] results
7: .line 553
aload 8 /* results */
iconst_0
iaload
ifeq 8
iconst_1
ireturn
StackMap locals: int[]
StackMap stack:
8: iconst_0
ireturn
end local 8 // int[] results
end local 7 // byte[] hash
end local 6 // int tagLen
end local 5 // boolean isSimulated
end local 4 // sun.security.ssl.MAC signer
end local 3 // int contentLen
end local 2 // int offset
end local 1 // byte[] buffer
end local 0 // byte contentType
LocalVariableTable:
Start End Slot Name Signature
0 9 0 contentType B
0 9 1 buffer [B
0 9 2 offset I
0 9 3 contentLen I
0 9 4 signer Lsun/security/ssl/MAC;
0 9 5 isSimulated Z
1 9 6 tagLen I
4 9 7 hash [B
7 9 8 results [I
MethodParameters:
Name Flags
contentType
buffer
offset
contentLen
signer
isSimulated
private static int[] compareMacTags(byte[], int, byte[]);
descriptor: ([BI[B)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 // byte[] buffer
start local 1 // int offset
start local 2 // byte[] tag
0: .line 566
iconst_2
newarray 10
astore 3 /* results */
start local 3 // int[] results
1: .line 570
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 8
3: .line 571
StackMap locals: int[] int
StackMap stack:
aload 0 /* buffer */
iload 1 /* offset */
iload 4 /* i */
iadd
baload
aload 2 /* tag */
iload 4 /* i */
baload
if_icmpeq 6
4: .line 572
aload 3 /* results */
iconst_0
dup2
iaload
iconst_1
iadd
iastore
5: .line 573
goto 7
6: .line 574
StackMap locals:
StackMap stack:
aload 3 /* results */
iconst_1
dup2
iaload
iconst_1
iadd
iastore
7: .line 570
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 4 /* i */
aload 2 /* tag */
arraylength
if_icmplt 3
end local 4 // int i
9: .line 578
aload 3 /* results */
areturn
end local 3 // int[] results
end local 2 // byte[] tag
end local 1 // int offset
end local 0 // byte[] buffer
LocalVariableTable:
Start End Slot Name Signature
0 10 0 buffer [B
0 10 1 offset I
0 10 2 tag [B
1 10 3 results [I
2 9 4 i I
MethodParameters:
Name Flags
buffer
offset
tag
private static int calculateRemainingLen(sun.security.ssl.MAC, int, int);
descriptor: (Lsun/security/ssl/MAC;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=5, args_size=3
start local 0 // sun.security.ssl.MAC signer
start local 1 // int fullLen
start local 2 // int usedLen
0: .line 590
aload 0 /* signer */
invokevirtual sun.security.ssl.MAC.hashBlockLen:()I
istore 3 /* blockLen */
start local 3 // int blockLen
1: .line 591
aload 0 /* signer */
invokevirtual sun.security.ssl.MAC.minimalPaddingLen:()I
istore 4 /* minimalPaddingLen */
start local 4 // int minimalPaddingLen
2: .line 596
iload 1 /* fullLen */
bipush 13
iload 3 /* blockLen */
iload 4 /* minimalPaddingLen */
isub
isub
iadd
istore 1 /* fullLen */
3: .line 597
iload 2 /* usedLen */
bipush 13
iload 3 /* blockLen */
iload 4 /* minimalPaddingLen */
isub
isub
iadd
istore 2 /* usedLen */
4: .line 604
iconst_1
iload 1 /* fullLen */
i2d
dconst_1
iload 3 /* blockLen */
i2d
dmul
ddiv
invokestatic java.lang.Math.ceil:(D)D
5: .line 605
iload 2 /* usedLen */
i2d
dconst_1
iload 3 /* blockLen */
i2d
dmul
ddiv
invokestatic java.lang.Math.ceil:(D)D
dsub
d2i
iload 3 /* blockLen */
imul
6: .line 604
iadd
ireturn
end local 4 // int minimalPaddingLen
end local 3 // int blockLen
end local 2 // int usedLen
end local 1 // int fullLen
end local 0 // sun.security.ssl.MAC signer
LocalVariableTable:
Start End Slot Name Signature
0 7 0 signer Lsun/security/ssl/MAC;
0 7 1 fullLen I
0 7 2 usedLen I
1 7 3 blockLen I
2 7 4 minimalPaddingLen I
MethodParameters:
Name Flags
signer
fullLen
usedLen
}
SourceFile: "InputRecord.java"