1f5b1c8a1SJohn Marino #include <openssl/opensslfeatures.h> 2f5b1c8a1SJohn Marino /* crypto/opensslconf.h.in */ 3f5b1c8a1SJohn Marino 4*de0e0e4dSAntonio Huete Jimenez #if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__) 5f5b1c8a1SJohn Marino #define __attribute__(a) 6f5b1c8a1SJohn Marino #endif 7f5b1c8a1SJohn Marino 8f5b1c8a1SJohn Marino #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) 9f5b1c8a1SJohn Marino #define OPENSSLDIR "/etc/ssl" 10f5b1c8a1SJohn Marino #endif 11f5b1c8a1SJohn Marino 12f5b1c8a1SJohn Marino #undef OPENSSL_UNISTD 13f5b1c8a1SJohn Marino #define OPENSSL_UNISTD <unistd.h> 14f5b1c8a1SJohn Marino 15f5b1c8a1SJohn Marino #undef OPENSSL_EXPORT_VAR_AS_FUNCTION 16f5b1c8a1SJohn Marino 17f5b1c8a1SJohn Marino #if defined(HEADER_IDEA_H) && !defined(IDEA_INT) 18f5b1c8a1SJohn Marino #define IDEA_INT unsigned int 19f5b1c8a1SJohn Marino #endif 20f5b1c8a1SJohn Marino 21f5b1c8a1SJohn Marino #if defined(HEADER_MD2_H) && !defined(MD2_INT) 22f5b1c8a1SJohn Marino #define MD2_INT unsigned int 23f5b1c8a1SJohn Marino #endif 24f5b1c8a1SJohn Marino 25f5b1c8a1SJohn Marino #if defined(HEADER_RC2_H) && !defined(RC2_INT) 26f5b1c8a1SJohn Marino /* I need to put in a mod for the alpha - eay */ 27f5b1c8a1SJohn Marino #define RC2_INT unsigned int 28f5b1c8a1SJohn Marino #endif 29f5b1c8a1SJohn Marino 30f5b1c8a1SJohn Marino #if defined(HEADER_RC4_H) 31f5b1c8a1SJohn Marino #if !defined(RC4_INT) 32f5b1c8a1SJohn Marino /* using int types make the structure larger but make the code faster 33f5b1c8a1SJohn Marino * on most boxes I have tested - up to %20 faster. */ 34f5b1c8a1SJohn Marino /* 35f5b1c8a1SJohn Marino * I don't know what does "most" mean, but declaring "int" is a must on: 36f5b1c8a1SJohn Marino * - Intel P6 because partial register stalls are very expensive; 37f5b1c8a1SJohn Marino * - elder Alpha because it lacks byte load/store instructions; 38f5b1c8a1SJohn Marino */ 39f5b1c8a1SJohn Marino #define RC4_INT unsigned int 40f5b1c8a1SJohn Marino #endif 41f5b1c8a1SJohn Marino #if !defined(RC4_CHUNK) 42f5b1c8a1SJohn Marino /* 43f5b1c8a1SJohn Marino * This enables code handling data aligned at natural CPU word 44f5b1c8a1SJohn Marino * boundary. See crypto/rc4/rc4_enc.c for further details. 45f5b1c8a1SJohn Marino */ 46f5b1c8a1SJohn Marino #define RC4_CHUNK unsigned long 47f5b1c8a1SJohn Marino #endif 48f5b1c8a1SJohn Marino #endif 49f5b1c8a1SJohn Marino 50f5b1c8a1SJohn Marino #if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) 51f5b1c8a1SJohn Marino /* If this is set to 'unsigned int' on a DEC Alpha, this gives about a 52f5b1c8a1SJohn Marino * %20 speed up (longs are 8 bytes, int's are 4). */ 53f5b1c8a1SJohn Marino #ifndef DES_LONG 54f5b1c8a1SJohn Marino #define DES_LONG unsigned int 55f5b1c8a1SJohn Marino #endif 56f5b1c8a1SJohn Marino #endif 57f5b1c8a1SJohn Marino 58f5b1c8a1SJohn Marino #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) 59f5b1c8a1SJohn Marino #define CONFIG_HEADER_BN_H 60f5b1c8a1SJohn Marino #undef BN_LLONG 61f5b1c8a1SJohn Marino 62f5b1c8a1SJohn Marino /* Should we define BN_DIV2W here? */ 63f5b1c8a1SJohn Marino 64f5b1c8a1SJohn Marino /* Only one for the following should be defined */ 65f5b1c8a1SJohn Marino #define SIXTY_FOUR_BIT_LONG 66f5b1c8a1SJohn Marino #undef SIXTY_FOUR_BIT 67f5b1c8a1SJohn Marino #undef THIRTY_TWO_BIT 68f5b1c8a1SJohn Marino #endif 69f5b1c8a1SJohn Marino 70f5b1c8a1SJohn Marino #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) 71f5b1c8a1SJohn Marino #define CONFIG_HEADER_RC4_LOCL_H 72f5b1c8a1SJohn Marino /* if this is defined data[i] is used instead of *data, this is a %20 73f5b1c8a1SJohn Marino * speedup on x86 */ 74f5b1c8a1SJohn Marino #undef RC4_INDEX 75f5b1c8a1SJohn Marino #endif 76f5b1c8a1SJohn Marino 77f5b1c8a1SJohn Marino #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) 78f5b1c8a1SJohn Marino #define CONFIG_HEADER_BF_LOCL_H 79f5b1c8a1SJohn Marino #undef BF_PTR 80f5b1c8a1SJohn Marino #endif /* HEADER_BF_LOCL_H */ 81f5b1c8a1SJohn Marino 82f5b1c8a1SJohn Marino #if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) 83f5b1c8a1SJohn Marino #define CONFIG_HEADER_DES_LOCL_H 84f5b1c8a1SJohn Marino #ifndef DES_DEFAULT_OPTIONS 85f5b1c8a1SJohn Marino /* the following is tweaked from a config script, that is why it is a 86f5b1c8a1SJohn Marino * protected undef/define */ 87f5b1c8a1SJohn Marino #ifndef DES_PTR 88f5b1c8a1SJohn Marino #undef DES_PTR 89f5b1c8a1SJohn Marino #endif 90f5b1c8a1SJohn Marino 91f5b1c8a1SJohn Marino /* This helps C compiler generate the correct code for multiple functional 92f5b1c8a1SJohn Marino * units. It reduces register dependancies at the expense of 2 more 93f5b1c8a1SJohn Marino * registers */ 94f5b1c8a1SJohn Marino #ifndef DES_RISC1 95f5b1c8a1SJohn Marino #undef DES_RISC1 96f5b1c8a1SJohn Marino #endif 97f5b1c8a1SJohn Marino 98f5b1c8a1SJohn Marino #ifndef DES_RISC2 99f5b1c8a1SJohn Marino #undef DES_RISC2 100f5b1c8a1SJohn Marino #endif 101f5b1c8a1SJohn Marino 102f5b1c8a1SJohn Marino #if defined(DES_RISC1) && defined(DES_RISC2) 103f5b1c8a1SJohn Marino YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! 104f5b1c8a1SJohn Marino #endif 105f5b1c8a1SJohn Marino 106f5b1c8a1SJohn Marino /* Unroll the inner loop, this sometimes helps, sometimes hinders. 107f5b1c8a1SJohn Marino * Very mucy CPU dependant */ 108f5b1c8a1SJohn Marino #ifndef DES_UNROLL 109f5b1c8a1SJohn Marino #define DES_UNROLL 110f5b1c8a1SJohn Marino #endif 111f5b1c8a1SJohn Marino 112f5b1c8a1SJohn Marino /* These default values were supplied by 113f5b1c8a1SJohn Marino * Peter Gutman <pgut001@cs.auckland.ac.nz> 114f5b1c8a1SJohn Marino * They are only used if nothing else has been defined */ 115f5b1c8a1SJohn Marino #if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) 116f5b1c8a1SJohn Marino /* Special defines which change the way the code is built depending on the 117f5b1c8a1SJohn Marino CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find 118f5b1c8a1SJohn Marino even newer MIPS CPU's, but at the moment one size fits all for 119f5b1c8a1SJohn Marino optimization options. Older Sparc's work better with only UNROLL, but 120f5b1c8a1SJohn Marino there's no way to tell at compile time what it is you're running on */ 121f5b1c8a1SJohn Marino 122f5b1c8a1SJohn Marino #if defined( sun ) /* Newer Sparc's */ 123f5b1c8a1SJohn Marino # define DES_PTR 124f5b1c8a1SJohn Marino # define DES_RISC1 125f5b1c8a1SJohn Marino # define DES_UNROLL 126f5b1c8a1SJohn Marino #elif defined( __ultrix ) /* Older MIPS */ 127f5b1c8a1SJohn Marino # define DES_PTR 128f5b1c8a1SJohn Marino # define DES_RISC2 129f5b1c8a1SJohn Marino # define DES_UNROLL 130f5b1c8a1SJohn Marino #elif defined( __osf1__ ) /* Alpha */ 131f5b1c8a1SJohn Marino # define DES_PTR 132f5b1c8a1SJohn Marino # define DES_RISC2 133f5b1c8a1SJohn Marino #elif defined ( _AIX ) /* RS6000 */ 134f5b1c8a1SJohn Marino /* Unknown */ 135f5b1c8a1SJohn Marino #elif defined( __hpux ) /* HP-PA */ 136f5b1c8a1SJohn Marino /* Unknown */ 137f5b1c8a1SJohn Marino #elif defined( __aux ) /* 68K */ 138f5b1c8a1SJohn Marino /* Unknown */ 139f5b1c8a1SJohn Marino #elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ 140f5b1c8a1SJohn Marino # define DES_UNROLL 141f5b1c8a1SJohn Marino #elif defined( __sgi ) /* Newer MIPS */ 142f5b1c8a1SJohn Marino # define DES_PTR 143f5b1c8a1SJohn Marino # define DES_RISC2 144f5b1c8a1SJohn Marino # define DES_UNROLL 145f5b1c8a1SJohn Marino #elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ 146f5b1c8a1SJohn Marino # define DES_PTR 147f5b1c8a1SJohn Marino # define DES_RISC1 148f5b1c8a1SJohn Marino # define DES_UNROLL 149f5b1c8a1SJohn Marino #endif /* Systems-specific speed defines */ 150f5b1c8a1SJohn Marino #endif 151f5b1c8a1SJohn Marino 152f5b1c8a1SJohn Marino #endif /* DES_DEFAULT_OPTIONS */ 153f5b1c8a1SJohn Marino #endif /* HEADER_DES_LOCL_H */ 154