aboutsummaryrefslogtreecommitdiff
path: root/include/openssl/engine.h
diff options
context:
space:
mode:
authorRich Salz <rsalz@akamai.com>2015-04-24 16:33:34 -0400
committerRich Salz <rsalz@openssl.org>2015-07-20 01:16:28 -0400
commit7e5363abe3c00d9db037f464f3c121e194bb5bb6 (patch)
tree224c13191d9a69c1a0bae137a36d7a2b4b7ba971 /include/openssl/engine.h
parentf7d5348710ad4f26a97458b102f0c2854e4a0520 (diff)
downloadopenssl-7e5363abe3c00d9db037f464f3c121e194bb5bb6.zip
openssl-7e5363abe3c00d9db037f464f3c121e194bb5bb6.tar.gz
openssl-7e5363abe3c00d9db037f464f3c121e194bb5bb6.tar.bz2
Rewrite crypto/ex_data
Removed ability to set ex_data impl at runtime. This removed these three functions: const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); int CRYPTO_ex_data_new_class(void); It is no longer possible to change the ex_data implementation at runtime. (Luckily those functions were never documented :) Also removed the ability to add new exdata "classes." We don't believe this received much (if any) use, since you can't add it to OpenSSL objects, and there are probably better (native) methods for developers to add their own extensible data, if they really need that. Replaced the internal hash table (of per-"class" stacks) with a simple indexed array. Reserved an index for "app" application. Each API used to take the lock twice; now it only locks once. Use local stack storage for function pointers, rather than malloc, if possible (i.e., number of ex_data items is under a dozen). Make CRYPTO_EX_DATA_FUNCS opaque/internal. Also fixes RT3710; index zero is reserved. Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'include/openssl/engine.h')
-rw-r--r--include/openssl/engine.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/include/openssl/engine.h b/include/openssl/engine.h
index fa1d694..c228487 100644
--- a/include/openssl/engine.h
+++ b/include/openssl/engine.h
@@ -776,7 +776,6 @@ typedef struct st_dynamic_LOCK_fns {
/* The top-level structure */
typedef struct st_dynamic_fns {
void *static_state;
- const CRYPTO_EX_DATA_IMPL *ex_data_fns;
dynamic_MEM_fns mem_fns;
dynamic_LOCK_fns lock_fns;
} dynamic_fns;
@@ -834,8 +833,6 @@ typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id,
CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \
CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \
CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \
- if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
- return 0; \
skip_cbs: \
if(!fn(e,id)) return 0; \
return 1; }