summaryrefslogtreecommitdiff
path: root/cipher/bithelp.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2016-03-18 18:57:19 +0100
committerWerner Koch <wk@gnupg.org>2016-03-18 18:57:19 +0100
commit897ccd21b7221982806b5c024518f4e989152f14 (patch)
tree14eb21b32255c176e1cdfad843fe35edf0471eac /cipher/bithelp.h
parent9ecc2690181ba0bb44f66451a7dce2fc19965793 (diff)
downloadlibgcrypt-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.h22
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*/