/** * Convert an integer value into an byte array. * * @param v An integer value. * @return A converted byte array. */ public static byte[] toBytes(int v) { byte[] b = new byte[NUM_OCTETS_INTEGER]; setInt(b, 0, v); return b; }
/** * Create a pseudo IPv4 header used for computing TCP/UDP checksum. * * @param proto An IP protocol number. * @param len The number of octets in a payload. * @return A byte array which represents the pseudo IPv4 header. */ public byte[] getHeaderForChecksum(byte proto, short len) { byte[] header = new byte[CKSUM_HEADER_SIZE]; int src = getSourceAddress().getAddress(); int dst = getDestinationAddress().getAddress(); NumberUtils.setInt(header, CKSUM_OFF_SRC, src); NumberUtils.setInt(header, CKSUM_OFF_DST, dst); header[CKSUM_OFF_PROTO] = proto; NumberUtils.setShort(header, CKSUM_OFF_LEN, len); return header; }