The function compute_hmac reverses the bytes in "C" on the assumption that it's little endian.
This doesn't work on big endian architectures, like sparc (Solaris), PowerPC (AIX and Linuxes on PPC), and ARM. (The latter two can be either little or big endian.