openssl/crypto
Rich Salz 7e5363abe3 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>
2015-07-20 01:16:28 -04:00
..
aes Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
asn1 Remove obsolete key formats. 2015-07-16 01:06:48 -04:00
bf Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
bio Check dgram_sctp_write() return value. 2015-06-28 18:21:06 +02:00
bn Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
buffer More secure storage of key material. 2015-06-23 17:09:35 -04:00
camellia Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
cast Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
cmac Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
cms RT3917: add cleanup on an error path 2015-06-21 17:52:12 -04:00
comp Fix -DZLIB build for opaque COMP types 2015-06-09 12:49:50 -04:00
conf No fprintf in the txt_db component 2015-06-09 12:39:08 -04:00
des Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
dh More secure storage of key material. 2015-06-23 17:09:35 -04:00
dsa More secure storage of key material. 2015-06-23 17:09:35 -04:00
dso Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
ec More secure storage of key material. 2015-06-23 17:09:35 -04:00
ecdh Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
ecdsa Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
engine Rewrite crypto/ex_data 2015-07-20 01:16:28 -04:00
err Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
evp Relax CCM tag check. 2015-07-06 15:42:23 +01:00
hmac Fix ABI break with HMAC 2015-06-12 13:16:09 +01:00
idea Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
include/internal Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
jpake Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
lhash Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
md2 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
md4 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
md5 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
mdc2 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
modes Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
objects Add $! to errors, use script basename. 2015-06-23 08:39:52 -04:00
ocsp Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
pem check for error when creating PKCS#8 structure 2015-05-28 17:58:03 +01:00
perlasm
pkcs7 PKCS#7: Fix NULL dereference with missing EncryptedContent. 2015-06-11 11:06:31 +01:00
pkcs12 Don't output bogus errors in PKCS12_parse 2015-06-25 04:55:05 +01:00
pqueue Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
rand Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
rc2 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
rc4 Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
rc5 Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
ripemd Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
rsa More secure storage of key material. 2015-06-23 17:09:35 -04:00
seed Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
sha Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
srp Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
stack Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
store Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
threads Cleanup mttest.c : because we no longer use stdio here, don't include it 2015-06-21 21:45:48 +02:00
ts Set error code, no fprintf stderr, on errors. 2015-06-04 18:03:33 -04:00
txt_db No fprintf in the txt_db component 2015-06-09 12:39:08 -04:00
ui Fix the update target and remove duplicate file updates 2015-05-22 18:44:33 +02:00
whrlpool Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
x509 Extend -show_chain option to verify to show more info 2015-07-07 21:57:12 +01:00
x509v3 Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
alphacpuid.pl
arm64cpuid.pl
arm_arch.h
armcap.c
armv4cpuid.pl
c64xpluscpuid.pl
cpt_err.c Rewrite crypto/ex_data 2015-07-20 01:16:28 -04:00
cryptlib.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
crypto-lib.com Remove obsolete key formats. 2015-07-16 01:06:48 -04:00
cversion.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
ebcdic.c
ex_data.c Rewrite crypto/ex_data 2015-07-20 01:16:28 -04:00
fips_err.h
fips_ers.c
ia64cpuid.S
install-crypto.com Remove remaining Kerberos references 2015-05-13 15:08:10 +01:00
lock.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
LPdir_nyi.c
LPdir_unix.c memset, memcpy, sizeof consistency fixes 2015-05-05 22:18:59 -04:00
LPdir_vms.c memset, memcpy, sizeof consistency fixes 2015-05-05 22:18:59 -04:00
LPdir_win32.c
LPdir_win.c memset, memcpy, sizeof consistency fixes 2015-05-05 22:18:59 -04:00
LPdir_wince.c
Makefile More secure storage of key material. 2015-06-23 17:09:35 -04:00
mem_clr.c
mem_dbg.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
mem.c More secure storage of key material. 2015-06-23 17:09:35 -04:00
o_dir_test.c Identify and move OpenSSL internal header files 2015-05-14 15:13:49 +02:00
o_dir.c Identify and move OpenSSL internal header files 2015-05-14 15:13:49 +02:00
o_fips.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
o_init.c
o_str.c Identify and move OpenSSL internal header files 2015-05-14 15:13:49 +02:00
o_time.c
opensslconf.h.in Make preprocessor error into real preprocessor error 2015-06-16 13:10:24 +02:00
pariscid.pl
ppc_arch.h
ppccap.c
ppccpuid.pl
s390xcap.c
s390xcpuid.S
sec_mem.c Fix windows build 2015-06-23 18:40:12 -04:00
sparc_arch.h
sparccpuid.S Conversion to UTF-8 where needed 2015-07-14 01:10:01 +02:00
sparcv9cap.c
thr_id.c Identify and move common internal libcrypto header files 2015-05-14 17:21:40 +02:00
uid.c
vms_rms.h
x86_64cpuid.pl
x86cpuid.pl