#include "utils.h" /** * Converts the value of 'in' to 'outlen' bytes in big-endian byte order. */ void ull_to_bytes(unsigned char *out, unsigned int outlen, unsigned long long in) { int i; /* Iterate over out in decreasing order, for big-endianness. */ for (i = outlen - 1; i >= 0; i--) { out[i] = in & 0xff; in = in >> 8; } } /** * Converts the inlen bytes in 'in' from big-endian byte order to an integer. */ unsigned long long bytes_to_ull(const unsigned char *in, unsigned int inlen) { unsigned long long retval = 0; unsigned int i; for (i = 0; i < inlen; i++) { retval |= ((unsigned long long)in[i]) << (8*(inlen - 1 - i)); } return retval; }