@Override
public byte[] appendChecksum(byte[] data) {
byte[] output = new byte[data.length+4];
System.arraycopy(data, 0, output, 0, data.length);
Checksum crc = new CRC32();
crc.update(data, 0, data.length);
byte[] checksum = Fields.intToBytes((int)crc.getValue());
System.arraycopy(checksum, 0, output, data.length, 4);
return output;
}