abstract class sun.security.ssl.OutputRecord extends java.io.ByteArrayOutputStream implements sun.security.ssl.Record, java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.ssl.OutputRecord
super_class: java.io.ByteArrayOutputStream
{
static final sun.security.ssl.Debug debug;
descriptor: Lsun/security/ssl/Debug;
flags: (0x0018) ACC_STATIC, ACC_FINAL
sun.security.ssl.Authenticator writeAuthenticator;
descriptor: Lsun/security/ssl/Authenticator;
flags: (0x0000)
sun.security.ssl.CipherBox writeCipher;
descriptor: Lsun/security/ssl/CipherBox;
flags: (0x0000)
sun.security.ssl.HandshakeHash handshakeHash;
descriptor: Lsun/security/ssl/HandshakeHash;
flags: (0x0000)
boolean firstMessage;
descriptor: Z
flags: (0x0000)
sun.security.ssl.ProtocolVersion protocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
sun.security.ssl.ProtocolVersion helloVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
boolean isFirstAppOutputRecord;
descriptor: Z
flags: (0x0000)
int packetSize;
descriptor: I
flags: (0x0000)
int fragmentSize;
descriptor: I
flags: (0x0000)
boolean isClosed;
descriptor: Z
flags: (0x0000)
private static int[] V3toV2CipherMap1;
descriptor: [I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int[] V3toV2CipherMap3;
descriptor: [I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 46
ldc "ssl"
invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
putstatic sun.security.ssl.OutputRecord.debug:Lsun/security/ssl/Debug;
1: .line 79
bipush 11
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_2
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
iconst_4
iastore
dup
bipush 7
iconst_5
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
bipush 6
iastore
dup
bipush 10
bipush 7
iastore
2: .line 78
putstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
3: .line 81
bipush 11
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
sipush 128
iastore
dup
iconst_4
sipush 128
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
sipush 128
iastore
dup
bipush 7
sipush 128
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
bipush 64
iastore
dup
bipush 10
sipush 192
iastore
4: .line 80
putstatic sun.security.ssl.OutputRecord.V3toV2CipherMap3:[I
5: .line 81
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.OutputRecord this
0: .line 83
aload 0 /* this */
invokespecial java.io.ByteArrayOutputStream.<init>:()V
1: .line 63
aload 0 /* this */
iconst_1
putfield sun.security.ssl.OutputRecord.isFirstAppOutputRecord:Z
2: .line 84
aload 0 /* this */
getstatic sun.security.ssl.CipherBox.NULL:Lsun/security/ssl/CipherBox;
putfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
3: .line 85
aload 0 /* this */
iconst_1
putfield sun.security.ssl.OutputRecord.firstMessage:Z
4: .line 86
aload 0 /* this */
sipush 16384
putfield sun.security.ssl.OutputRecord.fragmentSize:I
5: .line 89
return
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/OutputRecord;
void setVersion(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.OutputRecord this
start local 1 // sun.security.ssl.ProtocolVersion protocolVersion
0: .line 92
aload 0 /* this */
aload 1 /* protocolVersion */
putfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
1: .line 93
return
end local 1 // sun.security.ssl.ProtocolVersion protocolVersion
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/OutputRecord;
0 2 1 protocolVersion Lsun/security/ssl/ProtocolVersion;
MethodParameters:
Name Flags
protocolVersion
synchronized void setHelloVersion(sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // sun.security.ssl.ProtocolVersion helloVersion
0: .line 99
aload 0 /* this */
aload 1 /* helloVersion */
putfield sun.security.ssl.OutputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
1: .line 100
return
end local 1 // sun.security.ssl.ProtocolVersion helloVersion
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/OutputRecord;
0 2 1 helloVersion Lsun/security/ssl/ProtocolVersion;
MethodParameters:
Name Flags
helloVersion
void setHandshakeHash(sun.security.ssl.HandshakeHash);
descriptor: (Lsun/security/ssl/HandshakeHash;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // sun.security.ssl.HandshakeHash handshakeHash
0: .line 108
aload 0 /* this */
aload 1 /* handshakeHash */
putfield sun.security.ssl.OutputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
1: .line 109
return
end local 1 // sun.security.ssl.HandshakeHash handshakeHash
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/OutputRecord;
0 2 1 handshakeHash Lsun/security/ssl/HandshakeHash;
MethodParameters:
Name Flags
handshakeHash
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 116
iconst_0
ireturn
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
boolean seqNumIsHuge();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 120
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
ifnull 3
1: .line 121
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.seqNumIsHuge:()Z
ifeq 3
2: .line 120
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/OutputRecord;
abstract void encodeAlert(byte, byte);
descriptor: (BB)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
level
description
abstract void encodeHandshake(byte[], int, int);
descriptor: ([BII)V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
offset
length
abstract void encodeChangeCipherSpec();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
sun.security.ssl.Ciphertext encode(java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer);
descriptor: ([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // java.nio.ByteBuffer[] sources
start local 2 // int offset
start local 3 // int length
start local 4 // java.nio.ByteBuffer destination
0: .line 137
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 4 // java.nio.ByteBuffer destination
end local 3 // int length
end local 2 // int offset
end local 1 // java.nio.ByteBuffer[] sources
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 sources [Ljava/nio/ByteBuffer;
0 1 2 offset I
0 1 3 length I
0 1 4 destination Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sources
offset
length
destination
void encodeV2NoCipher();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 142
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
Exceptions:
throws java.io.IOException
void deliver(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // byte[] source
start local 2 // int offset
start local 3 // int length
0: .line 147
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 3 // int length
end local 2 // int offset
end local 1 // byte[] source
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 source [B
0 1 2 offset I
0 1 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
offset
length
void setDeliverStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // java.io.OutputStream outputStream
0: .line 152
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.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
outputStream
sun.security.ssl.Ciphertext acquireCiphertext(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // java.nio.ByteBuffer destination
0: .line 157
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 1 // java.nio.ByteBuffer destination
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
0 1 1 destination Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
destination
void changeWriteCiphers(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.OutputRecord this
start local 1 // sun.security.ssl.Authenticator writeAuthenticator
start local 2 // sun.security.ssl.CipherBox writeCipher
0: .line 163
aload 0 /* this */
invokevirtual sun.security.ssl.OutputRecord.encodeChangeCipherSpec:()V
1: .line 173
aload 2 /* writeCipher */
invokevirtual sun.security.ssl.CipherBox.dispose:()V
2: .line 175
aload 0 /* this */
aload 1 /* writeAuthenticator */
putfield sun.security.ssl.OutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
3: .line 176
aload 0 /* this */
aload 2 /* writeCipher */
putfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
4: .line 177
aload 0 /* this */
iconst_1
putfield sun.security.ssl.OutputRecord.isFirstAppOutputRecord:Z
5: .line 178
return
end local 2 // sun.security.ssl.CipherBox writeCipher
end local 1 // sun.security.ssl.Authenticator writeAuthenticator
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/OutputRecord;
0 6 1 writeAuthenticator Lsun/security/ssl/Authenticator;
0 6 2 writeCipher Lsun/security/ssl/CipherBox;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
writeAuthenticator
writeCipher
void changePacketSize(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // int packetSize
0: .line 181
aload 0 /* this */
iload 1 /* packetSize */
putfield sun.security.ssl.OutputRecord.packetSize:I
1: .line 182
return
end local 1 // int packetSize
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/OutputRecord;
0 2 1 packetSize I
MethodParameters:
Name Flags
packetSize
void changeFragmentSize(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // int fragmentSize
0: .line 185
aload 0 /* this */
iload 1 /* fragmentSize */
putfield sun.security.ssl.OutputRecord.fragmentSize:I
1: .line 186
return
end local 1 // int fragmentSize
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/OutputRecord;
0 2 1 fragmentSize I
MethodParameters:
Name Flags
fragmentSize
int getMaxPacketSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 189
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.packetSize:I
ireturn
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
void initHandshaker();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 195
return
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
void launchRetransmission();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 // sun.security.ssl.OutputRecord this
0: .line 200
return
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/OutputRecord;
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.OutputRecord this
0: .line 204
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.isClosed:Z
ifne 3
1: .line 205
aload 0 /* this */
iconst_1
putfield sun.security.ssl.OutputRecord.isClosed:Z
2: .line 206
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.dispose:()V
3: .line 208
StackMap locals:
StackMap stack:
return
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/OutputRecord;
Exceptions:
throws java.io.IOException
static long encrypt(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox, byte, java.nio.ByteBuffer, int, int, int, sun.security.ssl.ProtocolVersion, boolean);
descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;Z)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=14, args_size=9
start local 0 // sun.security.ssl.Authenticator authenticator
start local 1 // sun.security.ssl.CipherBox encCipher
start local 2 // byte contentType
start local 3 // java.nio.ByteBuffer destination
start local 4 // int headerOffset
start local 5 // int dstLim
start local 6 // int headerSize
start local 7 // sun.security.ssl.ProtocolVersion protocolVersion
start local 8 // boolean isDTLS
0: .line 224
aconst_null
astore 9 /* sequenceNumber */
start local 9 // byte[] sequenceNumber
1: .line 225
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.position:()I
istore 10 /* dstContent */
start local 10 // int dstContent
2: .line 228
iload 8 /* isDTLS */
ifeq 4
3: .line 229
aload 0 /* authenticator */
invokevirtual sun.security.ssl.Authenticator.sequenceNumber:()[B
astore 9 /* sequenceNumber */
4: .line 233
StackMap locals: byte[] int
StackMap stack:
iconst_0
istore 11 /* sharedSequenceNumber */
start local 11 // boolean sharedSequenceNumber
5: .line 236
aload 0 /* authenticator */
instanceof sun.security.ssl.MAC
ifeq 15
6: .line 237
aload 0 /* authenticator */
checkcast sun.security.ssl.MAC
astore 12 /* signer */
start local 12 // sun.security.ssl.MAC signer
7: .line 238
aload 12 /* signer */
invokevirtual sun.security.ssl.MAC.MAClen:()I
ifeq 15
8: .line 239
aload 12 /* signer */
iload 2 /* contentType */
aload 3 /* destination */
iconst_0
invokevirtual sun.security.ssl.MAC.compute:(BLjava/nio/ByteBuffer;Z)[B
astore 13 /* hash */
start local 13 // byte[] hash
9: .line 248
aload 3 /* destination */
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.limit:()I
aload 13 /* hash */
arraylength
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
10: .line 249
aload 3 /* destination */
aload 13 /* hash */
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
11: .line 252
aload 3 /* destination */
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
12: .line 253
aload 3 /* destination */
iload 10 /* dstContent */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
13: .line 256
iload 8 /* isDTLS */
ifeq 15
14: .line 257
iconst_1
istore 11 /* sharedSequenceNumber */
end local 13 // byte[] hash
end local 12 // sun.security.ssl.MAC signer
15: .line 262
StackMap locals: int
StackMap stack:
aload 1 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isNullCipher:()Z
ifne 29
16: .line 263
aload 7 /* protocolVersion */
invokevirtual sun.security.ssl.ProtocolVersion.useTLS11PlusSpec:()Z
ifeq 23
17: .line 264
aload 1 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
ifne 18
aload 1 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifeq 23
18: .line 265
StackMap locals:
StackMap stack:
aload 1 /* encCipher */
19: .line 266
aload 0 /* authenticator */
iload 2 /* contentType */
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.remaining:()I
20: .line 265
invokevirtual sun.security.ssl.CipherBox.createExplicitNonce:(Lsun/security/ssl/Authenticator;BI)[B
astore 12 /* nonce */
start local 12 // byte[] nonce
21: .line 267
aload 3 /* destination */
iload 4 /* headerOffset */
iload 6 /* headerSize */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
22: .line 268
aload 3 /* destination */
aload 12 /* nonce */
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
end local 12 // byte[] nonce
23: .line 270
StackMap locals:
StackMap stack:
aload 1 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifne 25
24: .line 272
aload 3 /* destination */
iload 4 /* headerOffset */
iload 6 /* headerSize */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
25: .line 276
StackMap locals:
StackMap stack:
aload 1 /* encCipher */
aload 3 /* destination */
iload 5 /* dstLim */
invokevirtual sun.security.ssl.CipherBox.encrypt:(Ljava/nio/ByteBuffer;I)I
pop
26: .line 279
iload 8 /* isDTLS */
ifeq 30
aload 1 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifeq 30
27: .line 280
iconst_1
istore 11 /* sharedSequenceNumber */
28: .line 282
goto 30
29: .line 283
StackMap locals:
StackMap stack:
aload 3 /* destination */
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
30: .line 287
StackMap locals:
StackMap stack:
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.limit:()I
iload 4 /* headerOffset */
isub
iload 6 /* headerSize */
isub
istore 12 /* fragLen */
start local 12 // int fragLen
31: .line 289
aload 3 /* destination */
iload 4 /* headerOffset */
iload 2 /* contentType */
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
32: .line 290
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_1
iadd
aload 7 /* protocolVersion */
getfield sun.security.ssl.ProtocolVersion.major:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
33: .line 291
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_2
iadd
aload 7 /* protocolVersion */
getfield sun.security.ssl.ProtocolVersion.minor:B
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
34: .line 292
iload 8 /* isDTLS */
ifne 38
35: .line 294
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_3
iadd
iload 12 /* fragLen */
bipush 8
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
36: .line 295
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_4
iadd
iload 12 /* fragLen */
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
37: .line 296
goto 50
38: .line 298
StackMap locals: int
StackMap stack:
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_3
iadd
aload 9 /* sequenceNumber */
iconst_0
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
39: .line 299
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_4
iadd
aload 9 /* sequenceNumber */
iconst_1
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
40: .line 300
aload 3 /* destination */
iload 4 /* headerOffset */
iconst_5
iadd
aload 9 /* sequenceNumber */
iconst_2
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
41: .line 301
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 6
iadd
aload 9 /* sequenceNumber */
iconst_3
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
42: .line 302
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 7
iadd
aload 9 /* sequenceNumber */
iconst_4
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
43: .line 303
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 8
iadd
aload 9 /* sequenceNumber */
iconst_5
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
44: .line 304
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 9
iadd
aload 9 /* sequenceNumber */
bipush 6
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
45: .line 305
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 10
iadd
aload 9 /* sequenceNumber */
bipush 7
baload
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
46: .line 308
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 11
iadd
iload 12 /* fragLen */
bipush 8
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
47: .line 309
aload 3 /* destination */
iload 4 /* headerOffset */
bipush 12
iadd
iload 12 /* fragLen */
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
48: .line 312
iload 11 /* sharedSequenceNumber */
ifne 50
49: .line 313
aload 0 /* authenticator */
invokevirtual sun.security.ssl.Authenticator.increaseSequenceNumber:()V
50: .line 318
StackMap locals:
StackMap stack:
aload 3 /* destination */
aload 3 /* destination */
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
51: .line 320
aload 9 /* sequenceNumber */
invokestatic sun.security.ssl.Authenticator.toLong:([B)J
lreturn
end local 12 // int fragLen
end local 11 // boolean sharedSequenceNumber
end local 10 // int dstContent
end local 9 // byte[] sequenceNumber
end local 8 // boolean isDTLS
end local 7 // sun.security.ssl.ProtocolVersion protocolVersion
end local 6 // int headerSize
end local 5 // int dstLim
end local 4 // int headerOffset
end local 3 // java.nio.ByteBuffer destination
end local 2 // byte contentType
end local 1 // sun.security.ssl.CipherBox encCipher
end local 0 // sun.security.ssl.Authenticator authenticator
LocalVariableTable:
Start End Slot Name Signature
0 52 0 authenticator Lsun/security/ssl/Authenticator;
0 52 1 encCipher Lsun/security/ssl/CipherBox;
0 52 2 contentType B
0 52 3 destination Ljava/nio/ByteBuffer;
0 52 4 headerOffset I
0 52 5 dstLim I
0 52 6 headerSize I
0 52 7 protocolVersion Lsun/security/ssl/ProtocolVersion;
0 52 8 isDTLS Z
1 52 9 sequenceNumber [B
2 52 10 dstContent I
5 52 11 sharedSequenceNumber Z
7 15 12 signer Lsun/security/ssl/MAC;
9 15 13 hash [B
21 23 12 nonce [B
31 52 12 fragLen I
MethodParameters:
Name Flags
authenticator
encCipher
contentType
destination
headerOffset
dstLim
headerSize
protocolVersion
isDTLS
void encrypt(sun.security.ssl.Authenticator, sun.security.ssl.CipherBox, byte, int);
descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
flags: (0x0000)
Code:
stack=7, locals=10, args_size=5
start local 0 // sun.security.ssl.OutputRecord this
start local 1 // sun.security.ssl.Authenticator authenticator
start local 2 // sun.security.ssl.CipherBox encCipher
start local 3 // byte contentType
start local 4 // int headerSize
0: .line 330
iload 4 /* headerSize */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 5 /* position */
start local 5 // int position
1: .line 333
iconst_0
istore 6 /* macLen */
start local 6 // int macLen
2: .line 334
aload 1 /* authenticator */
instanceof sun.security.ssl.MAC
ifeq 10
3: .line 335
aload 1 /* authenticator */
checkcast sun.security.ssl.MAC
astore 7 /* signer */
start local 7 // sun.security.ssl.MAC signer
4: .line 336
aload 7 /* signer */
invokevirtual sun.security.ssl.MAC.MAClen:()I
istore 6 /* macLen */
5: .line 337
iload 6 /* macLen */
ifeq 10
6: .line 338
aload 7 /* signer */
iload 3 /* contentType */
7: .line 339
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iload 5 /* position */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
iload 5 /* position */
isub
iconst_0
8: .line 338
invokevirtual sun.security.ssl.MAC.compute:(B[BIIZ)[B
astore 8 /* hash */
start local 8 // byte[] hash
9: .line 341
aload 0 /* this */
aload 8 /* hash */
iconst_0
aload 8 /* hash */
arraylength
invokevirtual sun.security.ssl.OutputRecord.write:([BII)V
end local 8 // byte[] hash
end local 7 // sun.security.ssl.MAC signer
10: .line 345
StackMap locals: int int
StackMap stack:
aload 2 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isNullCipher:()Z
ifne 30
11: .line 348
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS11PlusSpec:()Z
ifeq 18
12: .line 349
aload 2 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
ifne 13
aload 2 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifeq 18
13: .line 351
StackMap locals:
StackMap stack:
aload 2 /* encCipher */
14: .line 352
aload 1 /* authenticator */
iload 3 /* contentType */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
iload 5 /* position */
isub
15: .line 351
invokevirtual sun.security.ssl.CipherBox.createExplicitNonce:(Lsun/security/ssl/Authenticator;BI)[B
astore 7 /* nonce */
start local 7 // byte[] nonce
16: .line 353
iload 5 /* position */
aload 7 /* nonce */
arraylength
isub
istore 8 /* noncePos */
start local 8 // int noncePos
17: .line 354
aload 7 /* nonce */
iconst_0
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iload 8 /* noncePos */
aload 7 /* nonce */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 // int noncePos
end local 7 // byte[] nonce
18: .line 357
StackMap locals:
StackMap stack:
aload 2 /* encCipher */
invokevirtual sun.security.ssl.CipherBox.isAEADMode:()Z
ifne 20
19: .line 359
iload 4 /* headerSize */
istore 5 /* position */
20: .line 363
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
iload 5 /* position */
isub
istore 7 /* fragSize */
start local 7 // int fragSize
21: .line 365
aload 2 /* encCipher */
iload 7 /* fragSize */
iload 6 /* macLen */
iload 4 /* headerSize */
invokevirtual sun.security.ssl.CipherBox.calculatePacketSize:(III)I
22: .line 364
istore 8 /* packetSize */
start local 8 // int packetSize
23: .line 366
iload 8 /* packetSize */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
arraylength
iload 5 /* position */
isub
if_icmple 27
24: .line 367
iload 5 /* position */
iload 8 /* packetSize */
iadd
newarray 8
astore 9 /* newBuf */
start local 9 // byte[] newBuf
25: .line 368
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
aload 9 /* newBuf */
iconst_0
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: .line 369
aload 0 /* this */
aload 9 /* newBuf */
putfield sun.security.ssl.OutputRecord.buf:[B
end local 9 // byte[] newBuf
27: .line 373
StackMap locals: int int
StackMap stack:
aload 0 /* this */
iload 5 /* position */
28: .line 374
aload 2 /* encCipher */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iload 5 /* position */
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
iload 5 /* position */
isub
invokevirtual sun.security.ssl.CipherBox.encrypt:([BII)I
iadd
29: .line 373
putfield sun.security.ssl.OutputRecord.count:I
end local 8 // int packetSize
end local 7 // int fragSize
30: .line 378
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.count:I
iload 4 /* headerSize */
isub
istore 7 /* fragLen */
start local 7 // int fragLen
31: .line 379
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_0
iload 3 /* contentType */
bastore
32: .line 380
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_1
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
bastore
33: .line 381
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_2
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
bastore
34: .line 382
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_3
iload 7 /* fragLen */
bipush 8
ishr
sipush 255
iand
i2b
bastore
35: .line 383
aload 0 /* this */
getfield sun.security.ssl.OutputRecord.buf:[B
iconst_4
iload 7 /* fragLen */
sipush 255
iand
i2b
bastore
36: .line 384
return
end local 7 // int fragLen
end local 6 // int macLen
end local 5 // int position
end local 4 // int headerSize
end local 3 // byte contentType
end local 2 // sun.security.ssl.CipherBox encCipher
end local 1 // sun.security.ssl.Authenticator authenticator
end local 0 // sun.security.ssl.OutputRecord this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lsun/security/ssl/OutputRecord;
0 37 1 authenticator Lsun/security/ssl/Authenticator;
0 37 2 encCipher Lsun/security/ssl/CipherBox;
0 37 3 contentType B
0 37 4 headerSize I
1 37 5 position I
2 37 6 macLen I
4 10 7 signer Lsun/security/ssl/MAC;
9 10 8 hash [B
16 18 7 nonce [B
17 18 8 noncePos I
21 30 7 fragSize I
23 30 8 packetSize I
25 27 9 newBuf [B
31 37 7 fragLen I
MethodParameters:
Name Flags
authenticator
encCipher
contentType
headerSize
static java.nio.ByteBuffer encodeV2ClientHello(byte[], int, int);
descriptor: ([BII)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=17, args_size=3
start local 0 // byte[] fragment
start local 1 // int offset
start local 2 // int length
0: .line 389
iload 1 /* offset */
bipush 34
iadd
istore 3 /* v3SessIdLenOffset */
start local 3 // int v3SessIdLenOffset
1: .line 392
aload 0 /* fragment */
iload 3 /* v3SessIdLenOffset */
baload
istore 4 /* v3SessIdLen */
start local 4 // int v3SessIdLen
2: .line 393
iload 3 /* v3SessIdLenOffset */
iconst_1
iadd
iload 4 /* v3SessIdLen */
iadd
istore 5 /* v3CSLenOffset */
start local 5 // int v3CSLenOffset
3: .line 394
aload 0 /* fragment */
iload 5 /* v3CSLenOffset */
baload
sipush 255
iand
bipush 8
ishl
4: .line 395
aload 0 /* fragment */
iload 5 /* v3CSLenOffset */
iconst_1
iadd
baload
sipush 255
iand
5: .line 394
iadd
istore 6 /* v3CSLen */
start local 6 // int v3CSLen
6: .line 396
iload 6 /* v3CSLen */
iconst_2
idiv
istore 7 /* cipherSpecs */
start local 7 // int cipherSpecs
7: .line 406
bipush 11
iload 7 /* cipherSpecs */
bipush 6
imul
iadd
iconst_3
iadd
bipush 32
iadd
istore 8 /* v2MaxMsgLen */
start local 8 // int v2MaxMsgLen
8: .line 409
iload 8 /* v2MaxMsgLen */
newarray 8
astore 9 /* dstBytes */
start local 9 // byte[] dstBytes
9: .line 410
aload 9 /* dstBytes */
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 10 /* dstBuf */
start local 10 // java.nio.ByteBuffer dstBuf
10: .line 418
iload 5 /* v3CSLenOffset */
iconst_2
iadd
istore 11 /* v3CSOffset */
start local 11 // int v3CSOffset
11: .line 419
iconst_0
istore 12 /* v2CSLen */
start local 12 // int v2CSLen
12: .line 421
aload 10 /* dstBuf */
bipush 11
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
13: .line 422
iconst_0
istore 13 /* containsRenegoInfoSCSV */
start local 13 // boolean containsRenegoInfoSCSV
14: .line 423
iconst_0
istore 14 /* i */
start local 14 // int i
15: goto 23
16: .line 426
StackMap locals: byte[] int int int int int int int int byte[] java.nio.ByteBuffer int int int int
StackMap stack:
aload 0 /* fragment */
iload 11 /* v3CSOffset */
iinc 11 /* v3CSOffset */ 1
baload
istore 15 /* byte1 */
start local 15 // byte byte1
17: .line 427
aload 0 /* fragment */
iload 11 /* v3CSOffset */
iinc 11 /* v3CSOffset */ 1
baload
istore 16 /* byte2 */
start local 16 // byte byte2
18: .line 428
iload 12 /* v2CSLen */
aload 10 /* dstBuf */
iload 15 /* byte1 */
iload 16 /* byte2 */
invokestatic sun.security.ssl.OutputRecord.V3toV2CipherSuite:(Ljava/nio/ByteBuffer;BB)I
iadd
istore 12 /* v2CSLen */
19: .line 429
iload 13 /* containsRenegoInfoSCSV */
ifne 22
20: .line 430
iload 15 /* byte1 */
ifne 22
iload 16 /* byte2 */
iconst_m1
if_icmpne 22
21: .line 431
iconst_1
istore 13 /* containsRenegoInfoSCSV */
end local 16 // byte byte2
end local 15 // byte byte1
22: .line 423
StackMap locals:
StackMap stack:
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
23: iload 14 /* i */
iload 7 /* cipherSpecs */
if_icmplt 16
end local 14 // int i
24: .line 435
iload 13 /* containsRenegoInfoSCSV */
ifne 26
25: .line 436
iload 12 /* v2CSLen */
aload 10 /* dstBuf */
iconst_0
iconst_m1
invokestatic sun.security.ssl.OutputRecord.V3toV2CipherSuite:(Ljava/nio/ByteBuffer;BB)I
iadd
istore 12 /* v2CSLen */
26: .line 442
StackMap locals:
StackMap stack:
aload 10 /* dstBuf */
aload 0 /* fragment */
iload 1 /* offset */
iconst_2
iadd
bipush 32
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
27: .line 448
aload 10 /* dstBuf */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_2
isub
istore 14 /* msgLen */
start local 14 // int msgLen
28: .line 449
aload 10 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
29: .line 450
aload 10 /* dstBuf */
sipush 128
iload 14 /* msgLen */
bipush 8
iushr
sipush 255
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: .line 451
aload 10 /* dstBuf */
iload 14 /* msgLen */
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
31: .line 452
aload 10 /* dstBuf */
iconst_1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: .line 453
aload 10 /* dstBuf */
aload 0 /* fragment */
iload 1 /* offset */
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: .line 454
aload 10 /* dstBuf */
aload 0 /* fragment */
iload 1 /* offset */
iconst_1
iadd
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
34: .line 455
aload 10 /* dstBuf */
iload 12 /* v2CSLen */
bipush 8
iushr
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
35: .line 456
aload 10 /* dstBuf */
iload 12 /* v2CSLen */
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
36: .line 457
aload 10 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
37: .line 458
aload 10 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
38: .line 459
aload 10 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
39: .line 460
aload 10 /* dstBuf */
bipush 32
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
40: .line 462
aload 10 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
41: .line 463
aload 10 /* dstBuf */
iload 14 /* msgLen */
iconst_2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
42: .line 465
aload 10 /* dstBuf */
areturn
end local 14 // int msgLen
end local 13 // boolean containsRenegoInfoSCSV
end local 12 // int v2CSLen
end local 11 // int v3CSOffset
end local 10 // java.nio.ByteBuffer dstBuf
end local 9 // byte[] dstBytes
end local 8 // int v2MaxMsgLen
end local 7 // int cipherSpecs
end local 6 // int v3CSLen
end local 5 // int v3CSLenOffset
end local 4 // int v3SessIdLen
end local 3 // int v3SessIdLenOffset
end local 2 // int length
end local 1 // int offset
end local 0 // byte[] fragment
LocalVariableTable:
Start End Slot Name Signature
0 43 0 fragment [B
0 43 1 offset I
0 43 2 length I
1 43 3 v3SessIdLenOffset I
2 43 4 v3SessIdLen I
3 43 5 v3CSLenOffset I
6 43 6 v3CSLen I
7 43 7 cipherSpecs I
8 43 8 v2MaxMsgLen I
9 43 9 dstBytes [B
10 43 10 dstBuf Ljava/nio/ByteBuffer;
11 43 11 v3CSOffset I
12 43 12 v2CSLen I
14 43 13 containsRenegoInfoSCSV Z
15 24 14 i I
17 22 15 byte1 B
18 22 16 byte2 B
28 43 14 msgLen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fragment
offset
length
private static int V3toV2CipherSuite(java.nio.ByteBuffer, byte, byte);
descriptor: (Ljava/nio/ByteBuffer;BB)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 // java.nio.ByteBuffer dstBuf
start local 1 // byte byte1
start local 2 // byte byte2
0: .line 470
aload 0 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
1: .line 471
aload 0 /* dstBuf */
iload 1 /* byte1 */
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: .line 472
aload 0 /* dstBuf */
iload 2 /* byte2 */
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
3: .line 474
iload 2 /* byte2 */
sipush 255
iand
bipush 10
if_icmpgt 4
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
iload 2 /* byte2 */
iaload
iconst_m1
if_icmpne 5
4: .line 475
StackMap locals:
StackMap stack:
iconst_3
ireturn
5: .line 478
StackMap locals:
StackMap stack:
aload 0 /* dstBuf */
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap1:[I
iload 2 /* byte2 */
iaload
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: .line 479
aload 0 /* dstBuf */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: .line 480
aload 0 /* dstBuf */
getstatic sun.security.ssl.OutputRecord.V3toV2CipherMap3:[I
iload 2 /* byte2 */
iaload
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
8: .line 482
bipush 6
ireturn
end local 2 // byte byte2
end local 1 // byte byte1
end local 0 // java.nio.ByteBuffer dstBuf
LocalVariableTable:
Start End Slot Name Signature
0 9 0 dstBuf Ljava/nio/ByteBuffer;
0 9 1 byte1 B
0 9 2 byte2 B
MethodParameters:
Name Flags
dstBuf
byte1
byte2
}
SourceFile: "OutputRecord.java"