class com.codahale.metrics.collectd.PacketWriter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.codahale.metrics.collectd.PacketWriter
super_class: java.lang.Object
{
private static final int TYPE_HOST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int TYPE_TIME;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int TYPE_PLUGIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int TYPE_PLUGIN_INSTANCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int TYPE_TYPE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int TYPE_TYPE_INSTANCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int TYPE_VALUES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int TYPE_INTERVAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int TYPE_SIGN_SHA256;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 512
private static final int TYPE_ENCR_AES256;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 528
private static final int UINT16_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int UINT32_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int UINT64_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private static final int VALUE_COUNT_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NUMBER_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int SIGNATURE_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 36
private static final int ENCRYPT_DATA_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 22
private static final int IV_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int SHA1_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final int VALUE_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final byte DATA_TYPE_GAUGE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte NULL;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String HMAC_SHA256_ALGORITHM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "HmacSHA256"
private static final java.lang.String AES_CYPHER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "AES_256/OFB/NoPadding"
private static final java.lang.String AES;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "AES"
private static final java.lang.String SHA_256_ALGORITHM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "SHA-256"
private static final java.lang.String SHA_1_ALGORITHM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "SHA1"
private final com.codahale.metrics.collectd.Sender sender;
descriptor: Lcom/codahale/metrics/collectd/Sender;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.codahale.metrics.collectd.SecurityLevel securityLevel;
descriptor: Lcom/codahale/metrics/collectd/SecurityLevel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] username;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] password;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$com$codahale$metrics$collectd$SecurityLevel;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(com.codahale.metrics.collectd.Sender, java.lang.String, java.lang.String, com.codahale.metrics.collectd.SecurityLevel);
descriptor: (Lcom/codahale/metrics/collectd/Sender;Ljava/lang/String;Ljava/lang/String;Lcom/codahale/metrics/collectd/SecurityLevel;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.codahale.metrics.collectd.PacketWriter.sender:Lcom/codahale/metrics/collectd/Sender;
2: aload 0
aload 4
putfield com.codahale.metrics.collectd.PacketWriter.securityLevel:Lcom/codahale/metrics/collectd/SecurityLevel;
3: aload 0
aload 2
ifnull 4
aload 2
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
goto 5
StackMap locals: com.codahale.metrics.collectd.PacketWriter com.codahale.metrics.collectd.Sender java.lang.String java.lang.String com.codahale.metrics.collectd.SecurityLevel
StackMap stack: com.codahale.metrics.collectd.PacketWriter
4: aconst_null
StackMap locals: com.codahale.metrics.collectd.PacketWriter com.codahale.metrics.collectd.Sender java.lang.String java.lang.String com.codahale.metrics.collectd.SecurityLevel
StackMap stack: com.codahale.metrics.collectd.PacketWriter byte[]
5: putfield com.codahale.metrics.collectd.PacketWriter.username:[B
6: aload 0
aload 3
ifnull 7
aload 3
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
goto 8
StackMap locals:
StackMap stack: com.codahale.metrics.collectd.PacketWriter
7: aconst_null
StackMap locals: com.codahale.metrics.collectd.PacketWriter com.codahale.metrics.collectd.Sender java.lang.String java.lang.String com.codahale.metrics.collectd.SecurityLevel
StackMap stack: com.codahale.metrics.collectd.PacketWriter byte[]
8: putfield com.codahale.metrics.collectd.PacketWriter.password:[B
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 10 1 sender Lcom/codahale/metrics/collectd/Sender;
0 10 2 username Ljava/lang/String;
0 10 3 password Ljava/lang/String;
0 10 4 securityLevel Lcom/codahale/metrics/collectd/SecurityLevel;
MethodParameters:
Name Flags
sender
username
password
securityLevel
void write(com.codahale.metrics.collectd.MetaData, java.lang.Number[]);
descriptor: (Lcom/codahale/metrics/collectd/MetaData;[Ljava/lang/Number;)V
flags: (0x0080) ACC_VARARGS
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: sipush 1024
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 0
aload 3
aload 1
invokevirtual com.codahale.metrics.collectd.PacketWriter.write:(Ljava/nio/ByteBuffer;Lcom/codahale/metrics/collectd/MetaData;)V
2: aload 0
aload 3
aload 2
invokevirtual com.codahale.metrics.collectd.PacketWriter.write:(Ljava/nio/ByteBuffer;[Ljava/lang/Number;)V
3: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
4: invokestatic com.codahale.metrics.collectd.PacketWriter.$SWITCH_TABLE$com$codahale$metrics$collectd$SecurityLevel:()[I
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.securityLevel:Lcom/codahale/metrics/collectd/SecurityLevel;
invokevirtual com.codahale.metrics.collectd.SecurityLevel.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 5
2: 7
3: 9
default: 11
}
5: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.sender:Lcom/codahale/metrics/collectd/Sender;
aload 3
invokevirtual com.codahale.metrics.collectd.Sender.send:(Ljava/nio/ByteBuffer;)V
6: goto 12
7: StackMap locals:
StackMap stack:
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.sender:Lcom/codahale/metrics/collectd/Sender;
aload 0
aload 3
invokevirtual com.codahale.metrics.collectd.PacketWriter.signPacket:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
invokevirtual com.codahale.metrics.collectd.Sender.send:(Ljava/nio/ByteBuffer;)V
8: goto 12
9: StackMap locals:
StackMap stack:
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.sender:Lcom/codahale/metrics/collectd/Sender;
aload 0
aload 3
invokevirtual com.codahale.metrics.collectd.PacketWriter.encryptPacket:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
invokevirtual com.codahale.metrics.collectd.Sender.send:(Ljava/nio/ByteBuffer;)V
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported security level: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.securityLevel:Lcom/codahale/metrics/collectd/SecurityLevel;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 13 1 metaData Lcom/codahale/metrics/collectd/MetaData;
0 13 2 values [Ljava/lang/Number;
1 13 3 packet Ljava/nio/ByteBuffer;
Exceptions:
throws java.nio.BufferOverflowException, java.io.IOException
MethodParameters:
Name Flags
metaData
values
private void write(java.nio.ByteBuffer, com.codahale.metrics.collectd.MetaData);
descriptor: (Ljava/nio/ByteBuffer;Lcom/codahale/metrics/collectd/MetaData;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getHost:()Ljava/lang/String;
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeString:(Ljava/nio/ByteBuffer;ILjava/lang/String;)V
1: aload 0
aload 1
iconst_1
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getTimestamp:()J
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeNumber:(Ljava/nio/ByteBuffer;IJ)V
2: aload 0
aload 1
iconst_2
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getPlugin:()Ljava/lang/String;
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeString:(Ljava/nio/ByteBuffer;ILjava/lang/String;)V
3: aload 0
aload 1
iconst_3
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getPluginInstance:()Ljava/lang/String;
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeString:(Ljava/nio/ByteBuffer;ILjava/lang/String;)V
4: aload 0
aload 1
iconst_4
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getType:()Ljava/lang/String;
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeString:(Ljava/nio/ByteBuffer;ILjava/lang/String;)V
5: aload 0
aload 1
iconst_5
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getTypeInstance:()Ljava/lang/String;
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeString:(Ljava/nio/ByteBuffer;ILjava/lang/String;)V
6: aload 0
aload 1
bipush 7
aload 2
invokevirtual com.codahale.metrics.collectd.MetaData.getPeriod:()J
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeNumber:(Ljava/nio/ByteBuffer;IJ)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 8 1 buffer Ljava/nio/ByteBuffer;
0 8 2 metaData Lcom/codahale/metrics/collectd/MetaData;
MethodParameters:
Name Flags
buffer
metaData
private void write(java.nio.ByteBuffer, java.lang.Number[]);
descriptor: (Ljava/nio/ByteBuffer;[Ljava/lang/Number;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: bipush 6
iload 3
bipush 9
imul
iadd
istore 4
start local 4 2: aload 0
aload 1
bipush 6
iload 4
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeHeader:(Ljava/nio/ByteBuffer;II)V
3: aload 1
iload 3
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
4: aload 1
aload 0
iload 3
iconst_1
invokevirtual com.codahale.metrics.collectd.PacketWriter.nCopies:(IB)[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
5: aload 1
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
6: aload 2
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 10
StackMap locals: com.codahale.metrics.collectd.PacketWriter java.nio.ByteBuffer java.lang.Number[] int int top int int java.lang.Number[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 1
aload 5
invokevirtual java.lang.Number.doubleValue:()D
invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
pop
end local 5 9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 7
if_icmplt 7
11: aload 1
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 13 1 buffer Ljava/nio/ByteBuffer;
0 13 2 values [Ljava/lang/Number;
1 13 3 numValues I
2 13 4 length I
8 9 5 value Ljava/lang/Number;
MethodParameters:
Name Flags
buffer
values
private byte[] nCopies(int, byte);
descriptor: (IB)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
newarray 8
astore 3
start local 3 1: aload 3
iload 2
invokestatic java.util.Arrays.fill:([BB)V
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 3 1 n I
0 3 2 value B
1 3 3 array [B
MethodParameters:
Name Flags
n
value
private void writeString(java.nio.ByteBuffer, int, java.lang.String);
descriptor: (Ljava/nio/ByteBuffer;ILjava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnull 1
aload 3
invokevirtual java.lang.String.length:()I
ifne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
iconst_4
aload 3
invokevirtual java.lang.String.length:()I
iadd
iconst_1
iadd
istore 4
start local 4 3: aload 0
aload 1
iload 2
iload 4
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeHeader:(Ljava/nio/ByteBuffer;II)V
4: aload 1
aload 3
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 6 1 buffer Ljava/nio/ByteBuffer;
0 6 2 type I
0 6 3 val Ljava/lang/String;
3 6 4 len I
MethodParameters:
Name Flags
buffer
type
val
private void writeNumber(java.nio.ByteBuffer, int, long);
descriptor: (Ljava/nio/ByteBuffer;IJ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
bipush 12
invokevirtual com.codahale.metrics.collectd.PacketWriter.writeHeader:(Ljava/nio/ByteBuffer;II)V
1: aload 1
lload 3
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 3 1 buffer Ljava/nio/ByteBuffer;
0 3 2 type I
0 3 3 val J
MethodParameters:
Name Flags
buffer
type
val
private void (java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iload 2
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
1: aload 1
iload 3
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 3 1 buffer Ljava/nio/ByteBuffer;
0 3 2 type I
0 3 3 len I
MethodParameters:
Name Flags
buffer
type
len
private java.nio.ByteBuffer signPacket(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.password:[B
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
arraylength
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
1: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
2: aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
3: invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
4: invokestatic com.codahale.metrics.collectd.PacketWriter.sign:([BLjava/nio/ByteBuffer;)[B
astore 2
start local 2 5: sipush 1024
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
6: sipush 512
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
7: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
arraylength
bipush 36
iadd
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
8: aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
9: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
10: aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
11: invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
12: checkcast java.nio.ByteBuffer
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 13 1 packet Ljava/nio/ByteBuffer;
5 13 2 signature [B
MethodParameters:
Name Flags
packet
private java.nio.ByteBuffer encryptPacket(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: bipush 20
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
1: aload 1
invokestatic com.codahale.metrics.collectd.PacketWriter.sha1:(Ljava/nio/ByteBuffer;)[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
2: aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
3: invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
4: checkcast java.nio.ByteBuffer
astore 2
start local 2 5: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.password:[B
aload 2
invokestatic com.codahale.metrics.collectd.PacketWriter.encrypt:([BLjava/nio/ByteBuffer;)Lcom/codahale/metrics/collectd/PacketWriter$EncryptionResult;
astore 3
start local 3 6: sipush 1024
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
7: sipush 528
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
8: bipush 22
aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
arraylength
iadd
aload 3
getfield com.codahale.metrics.collectd.PacketWriter$EncryptionResult.output:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
9: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
arraylength
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
10: aload 0
getfield com.codahale.metrics.collectd.PacketWriter.username:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
11: aload 3
getfield com.codahale.metrics.collectd.PacketWriter$EncryptionResult.iv:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
12: aload 3
getfield com.codahale.metrics.collectd.PacketWriter$EncryptionResult.output:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
13: invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
14: checkcast java.nio.ByteBuffer
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/codahale/metrics/collectd/PacketWriter;
0 15 1 packet Ljava/nio/ByteBuffer;
5 15 2 payload Ljava/nio/ByteBuffer;
6 15 3 er Lcom/codahale/metrics/collectd/PacketWriter$EncryptionResult;
MethodParameters:
Name Flags
packet
private static byte[] sign(byte[], java.nio.ByteBuffer);
descriptor: ([BLjava/nio/ByteBuffer;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: ldc "HmacSHA256"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 2
start local 2 1: aload 2
new javax.crypto.spec.SecretKeySpec
dup
aload 0
ldc "HmacSHA256"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
2: goto 5
end local 2 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
3: astore 3
start local 3 4: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 5: StackMap locals: javax.crypto.Mac
StackMap stack:
aload 2
aload 1
invokevirtual javax.crypto.Mac.update:(Ljava/nio/ByteBuffer;)V
6: aload 2
invokevirtual javax.crypto.Mac.doFinal:()[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 secret [B
0 7 1 input Ljava/nio/ByteBuffer;
1 3 2 mac Ljavax/crypto/Mac;
5 7 2 mac Ljavax/crypto/Mac;
4 5 3 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 2 3 Class java.security.NoSuchAlgorithmException
0 2 3 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
secret
input
private static com.codahale.metrics.collectd.PacketWriter$EncryptionResult encrypt(byte[], java.nio.ByteBuffer);
descriptor: ([BLjava/nio/ByteBuffer;)Lcom/codahale/metrics/collectd/PacketWriter$EncryptionResult;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: ldc "AES_256/OFB/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 2
start local 2 1: aload 2
iconst_1
new javax.crypto.spec.SecretKeySpec
dup
aload 0
invokestatic com.codahale.metrics.collectd.PacketWriter.sha256:([B)[B
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
2: goto 5
end local 2 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
3: astore 3
start local 3 4: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 5: StackMap locals: javax.crypto.Cipher
StackMap stack:
aload 2
invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
ldc Ljavax/crypto/spec/IvParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.IvParameterSpec
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
astore 3
start local 3 6: goto 9
end local 3 StackMap locals:
StackMap stack: java.security.spec.InvalidParameterSpecException
7: astore 4
start local 4 8: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 9: StackMap locals: byte[]
StackMap stack:
aload 3
arraylength
bipush 16
if_icmpeq 11
10: new java.lang.IllegalStateException
dup
ldc "Bad initialization vector"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
imul
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 12: aload 2
aload 1
aload 4
invokevirtual javax.crypto.Cipher.doFinal:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
pop
13: goto 16
StackMap locals: byte[] java.nio.ByteBuffer javax.crypto.Cipher byte[] java.nio.ByteBuffer
StackMap stack: java.security.GeneralSecurityException
14: astore 5
start local 5 15: new java.lang.RuntimeException
dup
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 16: StackMap locals:
StackMap stack:
new com.codahale.metrics.collectd.PacketWriter$EncryptionResult
dup
aload 3
aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokespecial com.codahale.metrics.collectd.PacketWriter$EncryptionResult.<init>:([BLjava/nio/ByteBuffer;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 password [B
0 17 1 input Ljava/nio/ByteBuffer;
1 3 2 cipher Ljavax/crypto/Cipher;
5 17 2 cipher Ljavax/crypto/Cipher;
4 5 3 e Ljava/security/GeneralSecurityException;
6 7 3 iv [B
9 17 3 iv [B
8 9 4 e Ljava/security/spec/InvalidParameterSpecException;
12 17 4 output Ljava/nio/ByteBuffer;
15 16 5 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 2 3 Class java.security.NoSuchAlgorithmException
0 2 3 Class javax.crypto.NoSuchPaddingException
0 2 3 Class java.security.InvalidKeyException
5 6 7 Class java.security.spec.InvalidParameterSpecException
12 13 14 Class javax.crypto.ShortBufferException
12 13 14 Class javax.crypto.IllegalBlockSizeException
12 13 14 Class javax.crypto.BadPaddingException
MethodParameters:
Name Flags
password
input
private static byte[] sha256(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
aload 0
invokevirtual java.security.MessageDigest.digest:([B)[B
1: areturn
2: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 3: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 input [B
3 4 1 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 1 2 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
input
private static byte[] sha1(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
2: aload 1
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
start local 2 3: aload 2
arraylength
bipush 20
if_icmpeq 5
4: new java.lang.IllegalStateException
dup
ldc "Bad SHA1 hash"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.MessageDigest byte[]
StackMap stack:
aload 2
6: areturn
end local 2 end local 1 7: StackMap locals: java.nio.ByteBuffer
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 8: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 input Ljava/nio/ByteBuffer;
1 7 1 digest Ljava/security/MessageDigest;
3 7 2 output [B
8 9 1 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 6 7 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
input
static int[] $SWITCH_TABLE$com$codahale$metrics$collectd$SecurityLevel();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.codahale.metrics.collectd.PacketWriter.$SWITCH_TABLE$com$codahale$metrics$collectd$SecurityLevel:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.codahale.metrics.collectd.SecurityLevel.values:()[Lcom/codahale/metrics/collectd/SecurityLevel;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.codahale.metrics.collectd.SecurityLevel.ENCRYPT:Lcom/codahale/metrics/collectd/SecurityLevel;
invokevirtual com.codahale.metrics.collectd.SecurityLevel.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.codahale.metrics.collectd.SecurityLevel.NONE:Lcom/codahale/metrics/collectd/SecurityLevel;
invokevirtual com.codahale.metrics.collectd.SecurityLevel.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.codahale.metrics.collectd.SecurityLevel.SIGN:Lcom/codahale/metrics/collectd/SecurityLevel;
invokevirtual com.codahale.metrics.collectd.SecurityLevel.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic com.codahale.metrics.collectd.PacketWriter.$SWITCH_TABLE$com$codahale$metrics$collectd$SecurityLevel:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "PacketWriter.java"
NestMembers:
com.codahale.metrics.collectd.PacketWriter$EncryptionResult
InnerClasses:
private EncryptionResult = com.codahale.metrics.collectd.PacketWriter$EncryptionResult of com.codahale.metrics.collectd.PacketWriter