class io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream extends java.io.ByteArrayOutputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream
super_class: java.io.ByteArrayOutputStream
{
private final javax.net.ssl.SSLEngine sslEngine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean ready;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] receivedServerHello;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] sentClientHello;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
void <init>(javax.net.ssl.SSLEngine);
descriptor: (Ljavax/net/ssl/SSLEngine;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.ByteArrayOutputStream.<init>:()V
1: aload 0
iconst_1
putfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.ready:Z
2: aload 0
aload 1
putfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.sslEngine:Ljavax/net/ssl/SSLEngine;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
0 4 1 sslEngine Ljavax/net/ssl/SSLEngine;
MethodParameters:
Name Flags
sslEngine
public void write(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.ready:Z
ifeq 19
1: aload 1
iload 2
baload
iconst_2
if_icmpne 19
2: aload 0
iconst_0
putfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.ready:Z
3: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
ifnull 15
4: aload 1
iload 2
iconst_1
iadd
baload
istore 5
start local 5 5: aload 1
iload 2
iconst_2
iadd
baload
istore 6
start local 6 6: aload 1
iload 2
iconst_3
iadd
baload
istore 7
start local 7 7: iload 5
sipush 255
iand
bipush 16
ishl
iload 6
sipush 255
iand
bipush 8
ishl
ior
iload 7
sipush 255
iand
ior
istore 8
start local 8 8: iload 8
iconst_4
iadd
iload 3
if_icmpne 11
9: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
astore 4
start local 4 10: goto 17
end local 4 11: StackMap locals: io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream byte[] int int top int int int int
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
arraylength
iload 3
iadd
iconst_4
isub
iload 8
isub
newarray 8
astore 4
start local 4 12: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
iconst_0
aload 4
iconst_0
aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 1
iload 8
iconst_4
iadd
aload 4
aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
arraylength
iload 3
iconst_4
isub
iload 8
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 end local 7 end local 6 end local 5 14: goto 17
end local 4 15: StackMap locals: io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream byte[] int int
StackMap stack:
iload 3
newarray 8
astore 4
start local 4 16: aload 1
iload 2
aload 4
iconst_0
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: StackMap locals: byte[]
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.sslEngine:Ljavax/net/ssl/SSLEngine;
aload 0
iconst_2
anewarray byte[]
dup
iconst_0
aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.sentClientHello:[B
aastore
dup
iconst_1
aload 4
aastore
invokestatic io.undertow.protocols.ssl.ALPNHackSSLEngine.regenerateHashes:(Ljavax/net/ssl/SSLEngine;Ljava/io/ByteArrayOutputStream;[[B)V
18: return
end local 4 19: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokespecial java.io.ByteArrayOutputStream.write:([BII)V
20: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
0 21 1 b [B
0 21 2 off I
0 21 3 len I
10 11 4 newData [B
12 15 4 newData [B
16 19 4 newData [B
5 14 5 b1 I
6 14 6 b2 I
7 14 7 b3 I
8 14 8 length I
MethodParameters:
Name Flags
b
off
len
byte[] getSentClientHello();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.sentClientHello:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
void setSentClientHello(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.sentClientHello:[B
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
0 2 1 sentClientHello [B
MethodParameters:
Name Flags
sentClientHello
byte[] getReceivedServerHello();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
void setReceivedServerHello(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.undertow.protocols.ssl.ALPNHackClientByteArrayOutputStream.receivedServerHello:[B
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/ALPNHackClientByteArrayOutputStream;
0 2 1 receivedServerHello [B
MethodParameters:
Name Flags
receivedServerHello
}
SourceFile: "ALPNHackClientByteArrayOutputStream.java"