VMS support.
[openssl.git] / crypto / bf / blowfish.h
index 61ffff608bd12fb3dcf7911810eb9404a098bbec..02f73b2f309f427a0014018aa7e84fbe633c6b34 100644 (file)
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
+#ifdef NO_BF
+#error BF is disabled.
+#endif
+
 #define BF_ENCRYPT     1
 #define BF_DECRYPT     0
 
 #define BF_ENCRYPT     1
 #define BF_DECRYPT     0
 
-/* If you make this 'unsigned int' the pointer variants will work on
- * the Alpha, otherwise they will not.  Strangly using the '8 byte'
- * BF_LONG and the default 'non-pointer' inner loop is the best configuration
- * for the Alpha */
-#if defined(__sgi)
-#  if (_MIPS_SZLONG==64)
-#    define BF_LONG unsigned int
-#  else
-#    define BF_LONG unsigned long
-#  endif
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! 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
 #else
-#  define BF_LONG unsigned long
+#define BF_LONG unsigned int
 #endif
 
 #define BF_ROUNDS      16
 #endif
 
 #define BF_ROUNDS      16
@@ -89,7 +102,6 @@ typedef struct bf_key_st
        BF_LONG S[4*256];
        } BF_KEY;
 
        BF_LONG S[4*256];
        } BF_KEY;
 
-#ifndef NOPROTO
  
 void BF_set_key(BF_KEY *key, int len, unsigned char *data);
 void BF_ecb_encrypt(unsigned char *in,unsigned char *out,BF_KEY *key,
  
 void BF_set_key(BF_KEY *key, int len, unsigned char *data);
 void BF_ecb_encrypt(unsigned char *in,unsigned char *out,BF_KEY *key,
@@ -104,19 +116,6 @@ void BF_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
        BF_KEY *schedule, unsigned char *ivec, int *num);
 const char *BF_options(void);
 
        BF_KEY *schedule, unsigned char *ivec, int *num);
 const char *BF_options(void);
 
-#else
-
-void BF_set_key();
-void BF_ecb_encrypt();
-void BF_encrypt();
-void BF_decrypt();
-void BF_cbc_encrypt();
-void BF_cfb64_encrypt();
-void BF_ofb64_encrypt();
-const char *BF_options();
-
-#endif
-
 #ifdef  __cplusplus
 }
 #endif
 #ifdef  __cplusplus
 }
 #endif