diff options
Diffstat (limited to 'src/lib/libcrypto/engine/eng_padlock.c')
-rw-r--r-- | src/lib/libcrypto/engine/eng_padlock.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/src/lib/libcrypto/engine/eng_padlock.c b/src/lib/libcrypto/engine/eng_padlock.c index 743558ab33..9f7a85a8da 100644 --- a/src/lib/libcrypto/engine/eng_padlock.c +++ b/src/lib/libcrypto/engine/eng_padlock.c | |||
@@ -104,10 +104,14 @@ | |||
104 | # if (defined(__GNUC__) && (defined(__i386__) || defined(__i386))) || \ | 104 | # if (defined(__GNUC__) && (defined(__i386__) || defined(__i386))) || \ |
105 | (defined(_MSC_VER) && defined(_M_IX86)) | 105 | (defined(_MSC_VER) && defined(_M_IX86)) |
106 | # define COMPILE_HW_PADLOCK | 106 | # define COMPILE_HW_PADLOCK |
107 | static ENGINE *ENGINE_padlock (void); | ||
108 | # endif | 107 | # endif |
109 | #endif | 108 | #endif |
110 | 109 | ||
110 | #ifdef OPENSSL_NO_DYNAMIC_ENGINE | ||
111 | #ifdef COMPILE_HW_PADLOCK | ||
112 | static ENGINE *ENGINE_padlock (void); | ||
113 | #endif | ||
114 | |||
111 | void ENGINE_load_padlock (void) | 115 | void ENGINE_load_padlock (void) |
112 | { | 116 | { |
113 | /* On non-x86 CPUs it just returns. */ | 117 | /* On non-x86 CPUs it just returns. */ |
@@ -120,17 +124,21 @@ void ENGINE_load_padlock (void) | |||
120 | #endif | 124 | #endif |
121 | } | 125 | } |
122 | 126 | ||
127 | #endif | ||
128 | |||
123 | #ifdef COMPILE_HW_PADLOCK | 129 | #ifdef COMPILE_HW_PADLOCK |
124 | /* We do these includes here to avoid header problems on platforms that | 130 | /* We do these includes here to avoid header problems on platforms that |
125 | do not have the VIA padlock anyway... */ | 131 | do not have the VIA padlock anyway... */ |
126 | #ifdef _MSC_VER | 132 | #include <stdlib.h> |
133 | #ifdef _WIN32 | ||
127 | # include <malloc.h> | 134 | # include <malloc.h> |
128 | # define alloca _alloca | 135 | # ifndef alloca |
129 | #elif defined(NETWARE_CLIB) && defined(__GNUC__) | 136 | # define alloca _alloca |
130 | void *alloca(size_t); | 137 | # endif |
131 | # define alloca(s) __builtin_alloca(s) | 138 | #elif defined(__GNUC__) |
132 | #else | 139 | # ifndef alloca |
133 | # include <stdlib.h> | 140 | # define alloca(s) __builtin_alloca(s) |
141 | # endif | ||
134 | #endif | 142 | #endif |
135 | 143 | ||
136 | /* Function for ENGINE detection and control */ | 144 | /* Function for ENGINE detection and control */ |
@@ -191,6 +199,8 @@ padlock_bind_helper(ENGINE *e) | |||
191 | return 1; | 199 | return 1; |
192 | } | 200 | } |
193 | 201 | ||
202 | #ifdef OPENSSL_NO_DYNAMIC_ENGINE | ||
203 | |||
194 | /* Constructor */ | 204 | /* Constructor */ |
195 | static ENGINE * | 205 | static ENGINE * |
196 | ENGINE_padlock(void) | 206 | ENGINE_padlock(void) |
@@ -209,6 +219,8 @@ ENGINE_padlock(void) | |||
209 | return eng; | 219 | return eng; |
210 | } | 220 | } |
211 | 221 | ||
222 | #endif | ||
223 | |||
212 | /* Check availability of the engine */ | 224 | /* Check availability of the engine */ |
213 | static int | 225 | static int |
214 | padlock_init(ENGINE *e) | 226 | padlock_init(ENGINE *e) |
@@ -234,7 +246,7 @@ padlock_bind_fn(ENGINE *e, const char *id) | |||
234 | return 1; | 246 | return 1; |
235 | } | 247 | } |
236 | 248 | ||
237 | IMPLEMENT_DYNAMIC_CHECK_FN () | 249 | IMPLEMENT_DYNAMIC_CHECK_FN() |
238 | IMPLEMENT_DYNAMIC_BIND_FN (padlock_bind_fn) | 250 | IMPLEMENT_DYNAMIC_BIND_FN (padlock_bind_fn) |
239 | #endif /* DYNAMIC_ENGINE */ | 251 | #endif /* DYNAMIC_ENGINE */ |
240 | 252 | ||
@@ -1213,6 +1225,14 @@ static RAND_METHOD padlock_rand = { | |||
1213 | padlock_rand_status, /* rand status */ | 1225 | padlock_rand_status, /* rand status */ |
1214 | }; | 1226 | }; |
1215 | 1227 | ||
1228 | #else /* !COMPILE_HW_PADLOCK */ | ||
1229 | #ifndef OPENSSL_NO_DYNAMIC_ENGINE | ||
1230 | OPENSSL_EXPORT | ||
1231 | int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); | ||
1232 | OPENSSL_EXPORT | ||
1233 | int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { return 0; } | ||
1234 | IMPLEMENT_DYNAMIC_CHECK_FN() | ||
1235 | #endif | ||
1216 | #endif /* COMPILE_HW_PADLOCK */ | 1236 | #endif /* COMPILE_HW_PADLOCK */ |
1217 | 1237 | ||
1218 | #endif /* !OPENSSL_NO_HW_PADLOCK */ | 1238 | #endif /* !OPENSSL_NO_HW_PADLOCK */ |