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