diff options
author | Rich Salz <rsalz@akamai.com> | 2015-04-24 16:33:34 -0400 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2015-07-20 01:16:28 -0400 |
commit | 7e5363abe3c00d9db037f464f3c121e194bb5bb6 (patch) | |
tree | 224c13191d9a69c1a0bae137a36d7a2b4b7ba971 /util | |
parent | f7d5348710ad4f26a97458b102f0c2854e4a0520 (diff) | |
download | openssl-7e5363abe3c00d9db037f464f3c121e194bb5bb6.tar.gz |
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 'util')
-rwxr-xr-x | util/libeay.num | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/util/libeay.num b/util/libeay.num index 731db227c6..a82db68e00 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -2328,8 +2328,8 @@ X509_CRL_set_lastUpdate 2837 EXIST::FUNCTION: OCSP_BASICRESP_free 2838 EXIST::FUNCTION: OCSP_BASICRESP_add1_ext_i2d 2839 EXIST::FUNCTION: d2i_KRB5_AUTHENTBODY 2840 NOEXIST::FUNCTION: -CRYPTO_set_ex_data_implementation 2841 EXIST:!VMS:FUNCTION: -CRYPTO_set_ex_data_impl 2841 EXIST:VMS:FUNCTION: +CRYPTO_set_ex_data_impl 2841 NOEXIST::FUNCTION: +CRYPTO_set_ex_data_implementation 2841 NOEXIST::FUNCTION: KRB5_ENCDATA_new 2842 NOEXIST::FUNCTION: DSO_up_ref 2843 EXIST::FUNCTION: OCSP_crl_reason_str 2844 EXIST::FUNCTION: @@ -2559,7 +2559,7 @@ AES_encrypt 3033 EXIST::FUNCTION:AES OCSP_REQUEST_new 3034 EXIST::FUNCTION: ASN1_ANY_it 3035 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: ASN1_ANY_it 3035 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: -CRYPTO_ex_data_new_class 3036 EXIST::FUNCTION: +CRYPTO_ex_data_new_class 3036 NOEXIST::FUNCTION: _ossl_old_des_ncbc_encrypt 3037 NOEXIST::FUNCTION: i2d_KRB5_TKTBODY 3038 NOEXIST::FUNCTION: EC_POINT_clear_free 3039 EXIST::FUNCTION:EC @@ -2676,8 +2676,8 @@ USERNOTICE_it 3132 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIA USERNOTICE_it 3132 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_REQINFO_new 3133 EXIST::FUNCTION: OCSP_BASICRESP_get_ext 3134 EXIST::FUNCTION: -CRYPTO_get_ex_data_implementation 3135 EXIST:!VMS:FUNCTION: -CRYPTO_get_ex_data_impl 3135 EXIST:VMS:FUNCTION: +CRYPTO_get_ex_data_impl 3135 NOEXIST::FUNCTION: +CRYPTO_get_ex_data_implementation 3135 NOEXIST::FUNCTION: ASN1_item_pack 3136 EXIST::FUNCTION: i2d_KRB5_ENCDATA 3137 NOEXIST::FUNCTION: X509_PURPOSE_set 3138 EXIST::FUNCTION: |