|Subject:||unsigned 32-bit int type is wrong on Linux amd64.|
rmd160.h uses an unsigned long for an unsigned 32-bit integer (which is 4 bytes on x86). But the AMD64 ABI defines a long as 8 bytes. It is necessary to change the typedef for dword in rmd160.h to be an unsigned int. Without this change the digests generated are different from the test digests. GCC on this machine defines u_int8_t, u_int16_t and u_int32_t which might be better to use (as defined by ISO C). Cheers!