--- Digest-Hashcash/Hashcash.xs 2015/07/21 05:01:01 1.7 +++ Digest-Hashcash/Hashcash.xs 2015/07/22 10:33:08 1.8 @@ -55,7 +55,7 @@ /* Useful defines & typedefs */ #if defined(U64TYPE) && (defined(USE_64_BIT_INT) || ((BYTEORDER != 0x1234) && (BYTEORDER != 0x4321))) -typedef U64TYPE ULONG; +typedef U64TYPE XULONG; # if BYTEORDER == 0x1234 # undef BYTEORDER # define BYTEORDER 0x12345678 @@ -64,7 +64,7 @@ # define BYTEORDER 0x87654321 # endif #else -typedef uint_fast32_t ULONG; /* 32-or-more-bit quantity */ +typedef uint_fast32_t XULONG; /* 32-or-more-bit quantity */ #endif #if GCCX86ASM @@ -72,7 +72,7 @@ #elif __GNUC__ > 2 && __GNUC_MINOR__ > 3 # define zprefix(n) (__extension__ ({ uint32_t n__ = (n); n ? __builtin_clz (n) : 32; })) #else -static int a_const zprefix (ULONG n) +static int a_const zprefix (U32 n) { static char zp[256] = { @@ -106,8 +106,8 @@ #define SHA_DIGESTSIZE 20 typedef struct { - ULONG digest[5]; /* message digest */ - ULONG count; /* 32-bit bit count */ + U32 digest[5]; /* message digest */ + U32 count; /* 32-bit bit count */ int local; /* unprocessed amount in data */ U8 data[SHA_BLOCKSIZE]; /* SHA data buffer */ } SHA_INFO; @@ -154,37 +154,38 @@ { int i; U8 *restrict dp; - ULONG T, A, B, C, D, E, W[80], *restrict WP; + U32 A, B, C, D, E, W[80], *restrict WP; + XULONG T; dp = sha_info->data; #if BYTEORDER == 0x1234 - assert(sizeof(ULONG) == 4); + assert(sizeof(XULONG) == 4); # ifdef HAS_NTOHL for (i = 0; i < 16; ++i) { - T = *((ULONG *) dp); + T = *((XULONG *) dp); dp += 4; W[i] = ntohl (T); } # else for (i = 0; i < 16; ++i) { - T = *((ULONG *) dp); + T = *((XULONG *) dp); dp += 4; W[i] = ((T << 24) & 0xff000000) | ((T << 8) & 0x00ff0000) | ((T >> 8) & 0x0000ff00) | ((T >> 24) & 0x000000ff); } # endif #elif BYTEORDER == 0x4321 - assert(sizeof(ULONG) == 4); + assert(sizeof(XULONG) == 4); for (i = 0; i < 16; ++i) { - T = *((ULONG *) dp); + T = *((XULONG *) dp); dp += 4; W[i] = T32(T); } #elif BYTEORDER == 0x12345678 - assert(sizeof(ULONG) == 8); + assert(sizeof(XULONG) == 8); for (i = 0; i < 16; i += 2) { - T = *((ULONG *) dp); + T = *((XULONG *) dp); dp += 8; W[i] = ((T << 24) & 0xff000000) | ((T << 8) & 0x00ff0000) | ((T >> 8) & 0x0000ff00) | ((T >> 24) & 0x000000ff); @@ -193,9 +194,9 @@ ((T >> 8) & 0x0000ff00) | ((T >> 24) & 0x000000ff); } #elif BYTEORDER == 0x87654321 - assert(sizeof(ULONG) == 8); + assert(sizeof(XULONG) == 8); for (i = 0; i < 16; i += 2) { - T = *((ULONG *) dp); + T = *((XULONG *) dp); dp += 8; W[i] = T32(T >> 32); W[i+1] = T32(T);