diff options
author | Tom Yu <tlyu@mit.edu> | 2004-05-26 17:50:11 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2004-05-26 17:50:11 +0000 |
commit | 4f6f620875ba9a2f1946025232daefed762fd811 (patch) | |
tree | c013620312a916adb684010b8cef7d6c144a887e /src/lib | |
parent | 7082f1ff11dea3a3e59c668cb5b442fa23c8b569 (diff) | |
download | krb5-4f6f620875ba9a2f1946025232daefed762fd811.zip krb5-4f6f620875ba9a2f1946025232daefed762fd811.tar.gz krb5-4f6f620875ba9a2f1946025232daefed762fd811.tar.bz2 |
pullup from trunk
ticket: 2564
version_fixed: 1.3.4
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-3@16365 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/crypto/aes/ChangeLog | 8 | ||||
-rw-r--r-- | src/lib/crypto/aes/aesopt.h | 26 |
2 files changed, 23 insertions, 11 deletions
diff --git a/src/lib/crypto/aes/ChangeLog b/src/lib/crypto/aes/ChangeLog index f937690..6955bc1 100644 --- a/src/lib/crypto/aes/ChangeLog +++ b/src/lib/crypto/aes/ChangeLog @@ -1,3 +1,11 @@ +2004-05-25 Tom Yu <tlyu@mit.edu> + + * 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-07 Ken Raeburn <raeburn@mit.edu> * aesopt.h (PLATFORM_BYTE_ORDER): Check for _MIPSEB, _MIPSEL. If diff --git a/src/lib/crypto/aes/aesopt.h b/src/lib/crypto/aes/aesopt.h index da5c83b..0eebd46 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 <stdlib.h> # if defined(HAVE_ENDIAN_H) # include <endian.h> @@ -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 |