final class sun.security.ssl.SSLSocketOutputRecord extends sun.security.ssl.OutputRecord implements sun.security.ssl.SSLRecord
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLSocketOutputRecord
super_class: sun.security.ssl.OutputRecord
{
private java.io.OutputStream deliverStream;
descriptor: Ljava/io/OutputStream;
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.security.ssl.OutputRecord.<init>:()V
1: aload 0
aconst_null
putfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
2: aload 0
getstatic sun.security.ssl.MAC.TLS_NULL:Lsun/security/ssl/MAC;
putfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
3: aload 0
sipush 16709
putfield sun.security.ssl.SSLSocketOutputRecord.packetSize:I
4: aload 0
getstatic sun.security.ssl.ProtocolVersion.DEFAULT_TLS:Lsun/security/ssl/ProtocolVersion;
putfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/SSLSocketOutputRecord;
void encodeAlert(byte, byte);
descriptor: (BB)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_5
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 3
start local 3 1: aload 0
iload 3
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
2: aload 0
iload 1
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:(I)V
3: aload 0
iload 2
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:(I)V
4: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 10
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 10
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: ldc ", WRITE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 21
invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iconst_5
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
11: bipush 21
iconst_5
12: invokevirtual sun.security.ssl.SSLSocketOutputRecord.encrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
13: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.io.OutputStream.write:([BII)V
14: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
15: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 18
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 18
16: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
17: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
18: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
19: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/ssl/SSLSocketOutputRecord;
0 20 1 level B
0 20 2 description B
1 20 3 position I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
level
description
void encodeHandshake(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.firstMessage:Z
ifeq 21
1: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.firstMessage:Z
2: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.helloVersion:Lsun/security/ssl/ProtocolVersion;
getstatic sun.security.ssl.ProtocolVersion.SSL20Hello:Lsun/security/ssl/ProtocolVersion;
if_acmpne 21
3: aload 1
iload 2
baload
iconst_1
if_icmpne 21
4: aload 1
iload 2
iconst_4
iadd
iconst_2
iadd
bipush 32
iadd
baload
ifne 21
5: aload 1
iload 2
iconst_4
iadd
iload 3
iconst_4
isub
6: invokestatic sun.security.ssl.SSLSocketOutputRecord.encodeV2ClientHello:([BII)Ljava/nio/ByteBuffer;
astore 4
start local 4 7: aload 4
invokevirtual java.nio.ByteBuffer.array:()[B
astore 5
start local 5 8: aload 4
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 9: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 5
iconst_2
iload 6
iconst_2
isub
invokevirtual sun.security.ssl.HandshakeHash.update:([BII)V
10: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 15
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 15
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: ldc ", WRITE: SSLv2 ClientHello message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: StackMap locals: java.nio.ByteBuffer byte[] int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 5
iconst_0
iload 6
invokevirtual java.io.OutputStream.write:([BII)V
16: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
17: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 20
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 20
18: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
iconst_0
iload 6
19: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
20: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 1
iconst_0
baload
istore 4
start local 4 22: iload 4
ifeq 24
23: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.handshakeHash:Lsun/security/ssl/HandshakeHash;
aload 1
iload 2
iload 3
invokevirtual sun.security.ssl.HandshakeHash.update:([BII)V
24: StackMap locals: int
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLSocketOutputRecord.getFragLimit:()I
istore 5
start local 5 25: iconst_5
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 6
start local 6 26: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
ifne 28
27: aload 0
iload 6
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
28: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iload 6
isub
iload 5
iload 3
isub
if_icmpge 31
29: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:([BII)V
30: return
31: StackMap locals:
StackMap stack:
iload 2
iload 3
iadd
istore 7
start local 7 32: goto 54
33: StackMap locals: int
StackMap stack:
iload 7
iload 2
isub
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iload 6
isub
iadd
istore 8
start local 8 34: iload 5
iload 8
invokestatic java.lang.Math.min:(II)I
istore 9
start local 9 35: aload 0
aload 1
iload 2
iload 9
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:([BII)V
36: iload 8
iload 5
if_icmpge 38
37: return
38: StackMap locals: int int
StackMap stack:
getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 44
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 44
39: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
40: ldc ", WRITE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
41: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 22
invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
42: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iconst_5
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
44: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
45: bipush 22
iconst_5
46: invokevirtual sun.security.ssl.SSLSocketOutputRecord.encrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
47: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.io.OutputStream.write:([BII)V
48: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
49: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 52
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 52
50: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
51: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
52: StackMap locals:
StackMap stack:
iload 2
iload 9
iadd
istore 2
53: aload 0
iload 6
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
end local 9 end local 8 54: StackMap locals:
StackMap stack:
iload 2
iload 7
if_icmplt 33
end local 7 55: return
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 56 0 this Lsun/security/ssl/SSLSocketOutputRecord;
0 56 1 source [B
0 56 2 offset I
0 56 3 length I
7 21 4 v2ClientHello Ljava/nio/ByteBuffer;
8 21 5 record [B
9 21 6 limit I
22 56 4 handshakeType B
25 56 5 fragLimit I
26 56 6 position I
32 55 7 limit I
34 54 8 remains I
35 54 9 fragLen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
offset
length
void encodeChangeCipherSpec();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: iconst_5
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 1
start local 1 1: aload 0
iload 1
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
2: aload 0
iconst_1
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:(I)V
3: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 9
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 9
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: ldc ", WRITE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
6: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 20
invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iconst_5
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
10: bipush 20
iconst_5
11: invokevirtual sun.security.ssl.SSLSocketOutputRecord.encrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
12: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.io.OutputStream.write:([BII)V
13: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 16
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 16
14: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
15: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
16: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/ssl/SSLSocketOutputRecord;
1 18 1 position I
Exceptions:
throws java.io.IOException
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: iconst_5
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iload 1
if_icmpgt 3
2: return
3: StackMap locals: int
StackMap stack:
getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 9
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 9
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: ldc ", WRITE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
6: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 22
invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iconst_5
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
10: bipush 22
iconst_5
11: invokevirtual sun.security.ssl.SSLSocketOutputRecord.encrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
12: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.io.OutputStream.write:([BII)V
13: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
14: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 17
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 17
15: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
16: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
17: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/ssl/SSLSocketOutputRecord;
1 19 1 position I
Exceptions:
throws java.io.IOException
void deliver(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
invokevirtual sun.security.ssl.Authenticator.seqNumOverflow:()Z
ifeq 7
1: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 6
ldc "ssl"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 6
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: ldc ", sequence number extremely close to overflow "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc "(2^64-1 packets). Closing connection."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
ldc "sequence number overflow"
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 8: iload 2
iload 3
iadd
istore 5
start local 5 9: goto 49
10: StackMap locals: int int
StackMap stack:
iconst_0
istore 6
start local 6 11: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
instanceof sun.security.ssl.MAC
ifeq 13
12: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
checkcast sun.security.ssl.MAC
invokevirtual sun.security.ssl.MAC.MAClen:()I
istore 6
13: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.packetSize:I
ifle 20
14: sipush 16709
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.packetSize:I
invokestatic java.lang.Math.min:(II)I
istore 7
start local 7 15: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
16: iload 7
iload 6
iconst_5
17: invokevirtual sun.security.ssl.CipherBox.calculateFragmentSize:(III)I
istore 7
18: iload 7
sipush 16384
invokestatic java.lang.Math.min:(II)I
istore 7
19: goto 21
end local 7 20: StackMap locals:
StackMap stack:
sipush 16384
istore 7
start local 7 21: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.fragmentSize:I
ifle 23
22: iload 7
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.fragmentSize:I
invokestatic java.lang.Math.min:(II)I
istore 7
23: StackMap locals:
StackMap stack:
iload 4
ifeq 27
aload 0
invokevirtual sun.security.ssl.SSLSocketOutputRecord.needToSplitPayload:()Z
ifeq 27
24: iconst_1
istore 7
25: iconst_0
istore 4
26: goto 28
27: StackMap locals:
StackMap stack:
iload 7
iload 5
iload 2
isub
invokestatic java.lang.Math.min:(II)I
istore 7
28: StackMap locals:
StackMap stack:
iconst_5
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.getExplicitNonceSize:()I
iadd
istore 8
start local 8 29: aload 0
iload 8
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
30: aload 0
aload 1
iload 2
iload 7
invokevirtual sun.security.ssl.SSLSocketOutputRecord.write:([BII)V
31: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 37
ldc "record"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 37
32: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
33: ldc ", WRITE: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
34: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 23
invokestatic sun.security.ssl.Record.contentName:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
iconst_5
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
37: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
38: bipush 23
iconst_5
39: invokevirtual sun.security.ssl.SSLSocketOutputRecord.encrypt:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/CipherBox;BI)V
40: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.io.OutputStream.write:([BII)V
41: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
42: getstatic sun.security.ssl.SSLSocketOutputRecord.debug:Lsun/security/ssl/Debug;
ifnull 45
ldc "packet"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 45
43: new java.lang.StringBuilder
dup
ldc "[Raw write]: length = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.buf:[B
iconst_0
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.count:I
44: invokestatic sun.security.ssl.Debug.printHex:(Ljava/lang/String;[BII)V
45: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.count:I
46: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.isFirstAppOutputRecord:Z
ifeq 48
47: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketOutputRecord.isFirstAppOutputRecord:Z
48: StackMap locals:
StackMap stack:
iload 2
iload 7
iadd
istore 2
end local 8 end local 7 end local 6 49: StackMap locals:
StackMap stack:
iload 2
iload 5
if_icmplt 10
end local 5 50: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lsun/security/ssl/SSLSocketOutputRecord;
0 51 1 source [B
0 51 2 offset I
0 51 3 length I
8 51 4 isFirstRecordOfThePayload Z
9 50 5 limit I
11 49 6 macLen I
15 20 7 fragLen I
21 49 7 fragLen I
29 49 8 position 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 start local 1 0: aload 0
aload 1
putfield sun.security.ssl.SSLSocketOutputRecord.deliverStream:Ljava/io/OutputStream;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SSLSocketOutputRecord;
0 2 1 outputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
outputStream
boolean needToSplitPayload();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS11PlusSpec:()Z
ifne 4
1: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
invokevirtual sun.security.ssl.CipherBox.isCBCMode:()Z
ifeq 4
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.isFirstAppOutputRecord:Z
ifne 4
2: getstatic sun.security.ssl.Record.enableCBCProtection:Z
ifeq 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/SSLSocketOutputRecord;
private int getFragLimit();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
instanceof sun.security.ssl.MAC
ifeq 3
2: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeAuthenticator:Lsun/security/ssl/Authenticator;
checkcast sun.security.ssl.MAC
invokevirtual sun.security.ssl.MAC.MAClen:()I
istore 1
3: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.packetSize:I
ifle 10
4: sipush 16709
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.packetSize:I
invokestatic java.lang.Math.min:(II)I
istore 2
start local 2 5: aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.writeCipher:Lsun/security/ssl/CipherBox;
6: iload 2
iload 1
iconst_5
7: invokevirtual sun.security.ssl.CipherBox.calculateFragmentSize:(III)I
istore 2
8: iload 2
sipush 16384
invokestatic java.lang.Math.min:(II)I
istore 2
9: goto 11
end local 2 10: StackMap locals:
StackMap stack:
sipush 16384
istore 2
start local 2 11: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.fragmentSize:I
ifle 13
12: iload 2
aload 0
getfield sun.security.ssl.SSLSocketOutputRecord.fragmentSize:I
invokestatic java.lang.Math.min:(II)I
istore 2
13: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/ssl/SSLSocketOutputRecord;
1 14 1 macLen I
5 10 2 fragLimit I
11 14 2 fragLimit I
}
SourceFile: "SSLSocketOutputRecord.java"