aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bf/blowfish.h
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/bf/blowfish.h')
-rw-r--r--crypto/bf/blowfish.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/crypto/bf/blowfish.h b/crypto/bf/blowfish.h
index a18dfee1a4..02f73b2f30 100644
--- a/crypto/bf/blowfish.h
+++ b/crypto/bf/blowfish.h
@@ -70,8 +70,25 @@ extern "C" {
#define BF_ENCRYPT 1
#define BF_DECRYPT 0
-#ifdef WIN16
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! BF_LONG has to be at least 32 bits wide. If it's wider, then !
+ * ! BF_LONG_LOG2 has to be defined along. !
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ */
+
+#if defined(WIN16) || defined(__LP32__)
#define BF_LONG unsigned long
+#elif defined(_CRAY) || defined(__ILP64__)
+#define BF_LONG unsigned long
+#define BF_LONG_LOG2 3
+/*
+ * _CRAY note. I could declare short, but I have no idea what impact
+ * does it have on performance on none-T3E machines. I could declare
+ * int, but at least on C90 sizeof(int) can be chosen at compile time.
+ * So I've chosen long...
+ * <appro@fy.chalmers.se>
+ */
#else
#define BF_LONG unsigned int
#endif