diff options
author | Werner Koch <wk@gnupg.org> | 2016-03-18 18:57:19 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2016-03-18 18:57:19 +0100 |
commit | 897ccd21b7221982806b5c024518f4e989152f14 (patch) | |
tree | 14eb21b32255c176e1cdfad843fe35edf0471eac /cipher/bithelp.h | |
parent | 9ecc2690181ba0bb44f66451a7dce2fc19965793 (diff) | |
download | libgcrypt-897ccd21b7221982806b5c024518f4e989152f14.tar.gz |
Always require a 64 bit integer type
* configure.ac (available_digests_64): Merge with available_digests.
(available_kdfs_64): Merge with available_kdfs.
<64 bit datatype test>: Bail out if no such type is available.
* src/types.h: Emit #error if no u64 can be defined.
(PROPERLY_ALIGNED_TYPE): Always add u64 type.
* cipher/bithelp.h: Remove all code paths which handle the
case of !HAVE_U64_TYPEDEF.
* cipher/bufhelp.h: Ditto.
* cipher/cipher-ccm.c: Ditto.
* cipher/cipher-gcm.c: Ditto.
* cipher/cipher-internal.h: Ditto.
* cipher/cipher.c: Ditto.
* cipher/hash-common.h: Ditto.
* cipher/md.c: Ditto.
* cipher/poly1305.c: Ditto.
* cipher/scrypt.c: Ditto.
* cipher/tiger.c: Ditto.
* src/g10lib.h: Ditto.
* tests/basic.c: Ditto.
* tests/bench-slope.c: Ditto.
* tests/benchmark.c: Ditto.
--
Given that SHA-2 and some other algorithms require a 64 bit type it
does not make anymore sense to conditionally compile some part when
the platform does not provide such a type.
GnuPG-bug-id: 1815.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'cipher/bithelp.h')
-rw-r--r-- | cipher/bithelp.h | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/cipher/bithelp.h b/cipher/bithelp.h index 258ab2f4..45753805 100644 --- a/cipher/bithelp.h +++ b/cipher/bithelp.h @@ -47,33 +47,27 @@ _gcry_bswap32(u32 x) } #endif -#ifdef HAVE_U64_TYPEDEF -# ifdef HAVE_BUILTIN_BSWAP64 -# define _gcry_bswap64 __builtin_bswap64 -# else +#ifdef HAVE_BUILTIN_BSWAP64 +# define _gcry_bswap64 __builtin_bswap64 +#else static inline u64 _gcry_bswap64(u64 x) { return ((u64)_gcry_bswap32(x) << 32) | (_gcry_bswap32(x >> 32)); } -# endif #endif /* Endian dependent byte swap operations. */ #ifdef WORDS_BIGENDIAN # define le_bswap32(x) _gcry_bswap32(x) # define be_bswap32(x) ((u32)(x)) -# ifdef HAVE_U64_TYPEDEF -# define le_bswap64(x) _gcry_bswap64(x) -# define be_bswap64(x) ((u64)(x)) -# endif +# define le_bswap64(x) _gcry_bswap64(x) +# define be_bswap64(x) ((u64)(x)) #else # define le_bswap32(x) ((u32)(x)) # define be_bswap32(x) _gcry_bswap32(x) -# ifdef HAVE_U64_TYPEDEF -# define le_bswap64(x) ((u64)(x)) -# define be_bswap64(x) _gcry_bswap64(x) -# endif +# define le_bswap64(x) ((u64)(x)) +# define be_bswap64(x) _gcry_bswap64(x) #endif @@ -104,7 +98,6 @@ _gcry_ctz (unsigned int x) /* Count trailing zero bits in an u64. We return an int because that is what gcc's builtin does. Returns the number of bits in X if X is 0. */ -#ifdef HAVE_U64_TYPEDEF static inline int _gcry_ctz64(u64 x) { @@ -118,7 +111,6 @@ _gcry_ctz64(u64 x) return 32 + _gcry_ctz (x >> 32); #endif } -#endif /*HAVE_U64_TYPEDEF*/ #endif /*GCRYPT_BITHELP_H*/ |