From: Tom Yu Date: Tue, 25 May 2004 21:48:02 +0000 (+0000) Subject: * aesopt.h (PLATFORM_BYTE_ORDER): Treat _WIN32 as always X-Git-Tag: krb5-1.4-beta1~398 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b880eb00dabdfb8a20912e12b6296524f80e97df;p=krb5.git * aesopt.h (PLATFORM_BYTE_ORDER): Treat _WIN32 as always little-endian. Default to little-endian if there's no other compile-time way to detect endianness, noting it as a guess. (SAFE_IO): Error out if SAFE_IO is not set and endianness was guessed. ticket: 2564 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16362 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/crypto/aes/ChangeLog b/src/lib/crypto/aes/ChangeLog index 033ae9bc3..77b4c3c19 100644 --- a/src/lib/crypto/aes/ChangeLog +++ b/src/lib/crypto/aes/ChangeLog @@ -1,3 +1,11 @@ +2004-05-25 Tom Yu + + * aesopt.h (PLATFORM_BYTE_ORDER): Treat _WIN32 as always + little-endian. Default to little-endian if there's no other + compile-time way to detect endianness, noting it as a guess. + (SAFE_IO): Error out if SAFE_IO is not set and endianness was + guessed. + 2004-05-13 Ken Raeburn * Makefile.in (aes-test): Link test program against thread support diff --git a/src/lib/crypto/aes/aesopt.h b/src/lib/crypto/aes/aesopt.h index da5c83be2..0eebd46ae 100644 --- a/src/lib/crypto/aes/aesopt.h +++ b/src/lib/crypto/aes/aesopt.h @@ -180,7 +180,9 @@ # define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN #elif defined(_MIPSEL) # define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -#elif !defined(WIN32) +#elif defined(_WIN32) +# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN +#elif !defined(_WIN32) # include # if defined(HAVE_ENDIAN_H) # include @@ -236,19 +238,12 @@ #define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN #elif 0 /* **** EDIT HERE IF NECESSARY **** */ #define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN -#else -# error "barf" -/*#elif (('1234' >> 24) == '1') -# define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN -#elif (('4321' >> 24) == '1') -# define PLATFORM_BYTE_ORDER AES_BIG_ENDIAN*/ +#elif 1 +#define PLATFORM_BYTE_ORDER AES_LITTLE_ENDIAN +#define UNKNOWN_BYTE_ORDER /* we're guessing */ #endif #endif -#if !defined(PLATFORM_BYTE_ORDER) -# error Please set undetermined byte order (lines 229 or 231 of aesopt.h). -#endif - /* 3. ASSEMBLER SUPPORT If the assembler code is used for encryption and decryption this file only @@ -352,6 +347,15 @@ #define SAFE_IO #endif +/* + * If PLATFORM_BYTE_ORDER does not match the actual machine byte + * order, the fast word-access code will cause incorrect results. + * Therefore, SAFE_IO is required when the byte order is unknown. + */ +#if !defined(SAFE_IO) && defined(UNKNOWN_BYTE_ORDER) +# error "SAFE_IO must be defined if machine byte order is unknown." +#endif + /* 7. LOOP UNROLLING The code for encryption and decrytpion cycles through a number of rounds