--- patch4/blowfish.c 2010-05-15 14:26:55.000000000 -0700 +++ blowfish.c 2010-05-16 20:01:29.000000000 -0700 @@ -16,18 +16,17 @@ #define ARRAY_LENGTH(A) (sizeof(A)/sizeof(A[0])) -#ifdef __BORLANDC__ - #define LITTLE_ENDIAN +#if defined(__BORLANDC__) #else - #if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) - #if (('1234' >> 24) == '1') - #define LITTLE_ENDIAN 1 - #elif (('4321' >> 24) == '1') - #define BIG_ENDIAN 1 + #if defined(__BYTE_ORDER) + #if __BYTE_ORDER == __BIG_ENDIAN + #define BF_BIG_ENDIAN 1 #endif + #elif (('4321' >> 24) == '1') + #define BF_BIG_ENDIAN 1 #endif #endif - + int use_bf = 1; // Blowfish code @@ -318,8 +317,8 @@ sbx[3][xr&0xFF]; -static void bf_e_block(unsigned long *p_xl, unsigned long *p_xr) { - unsigned long temp, xl = *p_xl, xr = *p_xr; +static void bf_e_block(unsigned int *p_xl, unsigned int *p_xr) { + unsigned int temp, xl = *p_xl, xr = *p_xr; F1 (0) F2 (1) F1 (2) F2 (3) F1 (4) F2 (5) F1 (6) F2 (7) F1 (8) F2 (9) F1 (10) F2 (11) F1 (12) F2 (13) F1 (14) F2 (15) xl ^= pax[16]; xr ^= pax[17]; @@ -327,7 +326,7 @@ *p_xl = xl; *p_xr = xr; } -static void bf_d_block(unsigned long *p_xl, unsigned long *p_xr) { // not used. +static void bf_d_block(unsigned int *p_xl, unsigned int *p_xr) { // not used. unsigned long temp, xl = *p_xl, xr = *p_xr; F1 (17) F2 (16) F1 (15) F2 (14) F1 (13) F2 (12) F1 (11) F2 (10) F1( 9) F2(8) F1(7) F2(6) F1(5) F2(4) F1(3) F2(2) xl ^= pax[1]; @@ -337,7 +336,7 @@ } -#ifdef BIG_ENDIAN +#if defined(BF_BIG_ENDIAN) && (BF_BIG_ENDIAN == 0) #define htonl2(x) \ x = ((( (x) & 0xffL) << 24 ) | (((x) & 0xff00L) << 8 ) | \ (( (x) & 0xff0000L) >> 8 ) | (((x) & 0xff000000L) >> 24 ) ) @@ -367,7 +366,7 @@ void bf_key_init(unsigned char *password) { int i, j, keypos = 0; - unsigned long val, data_l, data_r; + unsigned int val, data_l, data_r; char * key; int keylen; @@ -435,7 +434,7 @@ typedef struct { unsigned char password[64], plaintxt[8], cryptxt[8]; - unsigned long keysum; + unsigned int keysum; } struct_bf_test_data; // Assert bf(password, plaintxt) is cryptxt. --- patch4/blowfish.h 2010-05-15 14:18:55.000000000 -0700 +++ blowfish.h 2010-05-16 18:46:47.000000000 -0700 @@ -27,7 +27,7 @@ /* VimCrypt~03 */ typedef union { - unsigned long ul[2]; + unsigned int ul[2]; unsigned char uc[8]; } block8;