openssl/crypto
Matt Caswell db6bcc81ab Optimise OPENSSL_init_crypto
If everything has already been initialised we can check this with a
single test at the beginning of OPENSSL_init_crypto() and therefore
reduce the amount of time spent in this function. Since this is called
via very many codepaths this should have significant performance benefits.

Partially fixes #13725 and #13578

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/13733)
2020-12-31 13:14:38 +01:00
..
aes remove unused initialisations 2020-12-03 11:22:06 +10:00
aria
asn1 Drop OPENSSL_NO_RSA everywhere 2020-12-20 12:19:42 +01:00
async Update copyright year 2020-11-26 14:18:57 +00:00
bf Update copyright year 2020-04-23 13:55:52 +01:00
bio remove unused assignments 2020-12-03 11:21:33 +10:00
bn remove unused assignments 2020-12-03 11:21:33 +10:00
buffer Update copyright year 2020-11-26 14:18:57 +00:00
camellia Update copyright year 2020-04-23 13:55:52 +01:00
cast Fix logic error for building x86 CAST assembly 2020-06-14 12:35:34 -07:00
chacha Fix aarch64 static linking into shared libraries (see issue #10842 and pull request #11464) 2020-10-22 12:16:49 +10:00
cmac Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
cmp cmp_client.c: Fix indentation and remove empty line 2020-12-02 12:35:16 +01:00
cms Drop unnecessary checks of OPENSSL_NO_DH, OPENSSL_NO_DSA and OPENSSL_NO_EC 2020-12-16 11:56:38 +01:00
comp Update copyright year 2020-11-26 14:18:57 +00:00
conf ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
crmf ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
ct ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
des Build: Remove faulty DES assembler spec 2020-06-20 11:02:18 +02:00
dh DECODER: Adjust the library context of keys in our decoders 2020-12-17 12:02:08 +01:00
dsa dsa: provider and library deprecation changes 2020-12-17 21:09:54 +01:00
dso Update copyright year 2020-11-26 14:18:57 +00:00
ec DECODER: Adjust the library context of keys in our decoders 2020-12-17 12:02:08 +01:00
encode_decode DECODER EVP_PKEY: Don't store all the EVP_KEYMGMTs 2020-12-17 12:02:08 +01:00
engine Drop OPENSSL_NO_RSA everywhere 2020-12-20 12:19:42 +01:00
err Move the caching of cipher constants into evp_cipher_from_dispatch 2020-12-23 21:12:18 +01:00
ess ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
evp Don't call EVP_CIPHER_CTX_block_size() to find the block size 2020-12-30 09:32:14 +01:00
ffc EVP_PKEY & DH: Make DH EVP_PKEY_CTX parameter ctrls / setters more available 2020-12-16 11:55:39 +01:00
hmac Delete unused PKEY MAC files 2020-08-29 17:40:11 +10:00
http ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
idea Update copyright year 2020-04-23 13:55:52 +01:00
kdf
lhash Update copyright year 2020-11-26 14:18:57 +00:00
md2 Update copyright year 2020-04-23 13:55:52 +01:00
md4 Update copyright year 2020-04-23 13:55:52 +01:00
md5 Update copyright year 2020-11-26 14:18:57 +00:00
mdc2 Update copyright year 2020-04-23 13:55:52 +01:00
modes Update copyright year 2020-11-26 14:18:57 +00:00
objects Update copyright year 2020-11-26 14:18:57 +00:00
ocsp Deprecate OCSP_REQ_CTX_set1_req 2020-12-15 10:36:59 +01:00
pem Drop OPENSSL_NO_RSA everywhere 2020-12-20 12:19:42 +01:00
perlasm Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
pkcs7 ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
pkcs12 Update copyright year 2020-11-26 14:18:57 +00:00
poly1305 crypto/poly1305/asm: fix armv8 pointer authentication 2020-10-29 17:17:21 +01:00
property ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
rand rand: allow seed-src to be missing 2020-12-09 22:28:52 +10:00
rc2 Update copyright year 2020-04-23 13:55:52 +01:00
rc4 rename md5_block_asm_data_order to ossl_md5_block_asm_data_order 2020-11-19 07:38:58 +10:00
rc5 Update copyright year 2020-04-23 13:55:52 +01:00
ripemd Diverse build.info: Adjust paths 2020-09-10 09:50:56 +02:00
rsa DECODER: Adjust the library context of keys in our decoders 2020-12-17 12:02:08 +01:00
seed Update copyright year 2020-04-23 13:55:52 +01:00
sha Update copyright year 2020-11-26 14:18:57 +00:00
siphash Delete unused PKEY MAC files 2020-08-29 17:40:11 +10:00
sm2 ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
sm3
sm4
srp Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
stack Update copyright year 2020-11-26 14:18:57 +00:00
store Fix OSSL_PARAM creation in OSSL_STORE_open_ex 2020-12-19 11:33:21 +01:00
ts Update copyright year 2020-11-26 14:18:57 +00:00
txt_db
ui ERR: Rebuild all generated error headers and source files 2020-11-24 15:22:33 +01:00
whrlpool Avoid undefined behavior with unaligned accesses 2020-05-27 20:11:20 +02:00
x509 Fix NULL pointer access caused by X509_ATTRIBUTE_create() 2020-12-21 15:25:59 +01:00
alphacpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
arm64cpuid.pl Read MIDR_EL1 system register on aarch64 2020-12-09 16:17:17 +01:00
arm_arch.h Read MIDR_EL1 system register on aarch64 2020-12-09 16:17:17 +01:00
armcap.c Read MIDR_EL1 system register on aarch64 2020-12-09 16:17:17 +01:00
armv4cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
asn1_dsa.c Update copyright year 2020-10-15 14:10:06 +01:00
bsearch.c
build.info Fix no-threads 2020-12-14 10:45:27 +10:00
c64xpluscpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
context.c Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
core_algorithm.c Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
core_fetch.c Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
core_namemap.c Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
cpt_err.c openssl_hexstr2buf_sep(): Prevent misleading 'malloc failure' errors on short input 2020-12-10 15:19:55 +01:00
cryptlib.c Update copyright year 2020-10-15 14:10:06 +01:00
ctype.c
cversion.c
der_writer.c der: _ossl prefix DER functions 2020-10-01 11:25:12 +10:00
dllmain.c
ebcdic.c
ex_data.c Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
getenv.c Update copyright year 2020-10-15 14:10:06 +01:00
ia64cpuid.S
info.c Print CPUINFO also for s390 processors 2020-06-22 02:35:01 +02:00
init.c Optimise OPENSSL_init_crypto 2020-12-31 13:14:38 +01:00
initthread.c remove unused return value assignments 2020-12-03 11:21:33 +10:00
LPdir_nyi.c
LPdir_unix.c
LPdir_vms.c
LPdir_win32.c
LPdir_win.c
LPdir_wince.c
mem_clr.c
mem_sec.c Add MAP_CONCEAL from OpenBSD which has similar purpose but on mmap 2020-12-08 18:27:07 +01:00
mem.c Rename FIPS_MODE to FIPS_MODULE 2020-04-28 15:37:37 +02:00
mips_arch.h
o_dir.c
o_fopen.c Update copyright year 2020-11-26 14:18:57 +00:00
o_init.c
o_str.c openssl_hexstr2buf_sep(): Prevent misleading 'malloc failure' errors on short input 2020-12-10 15:19:55 +01:00
o_time.c Update copyright year 2020-07-16 14:47:04 +02:00
packet.c Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
param_build_set.c DH: make the private key length importable / exportable 2020-10-19 12:14:11 +02:00
param_build.c Convert all {NAME}err() in crypto/ to their corresponding ERR_raise() call 2020-11-13 09:35:02 +01:00
params_from_text.c Change OPENSSL_hexstr2buf_ex() & OPENSSL_buf2hexstr_ex() to pass the separator 2020-12-07 17:14:58 +10:00
params.c params: allow more variations in integer conversions. 2020-12-12 21:43:07 +10:00
pariscid.pl Update copyright year 2020-04-23 13:55:52 +01:00
passphrase.c CORE: Fix small bug in passphrase caching 2020-09-03 17:48:32 +02:00
ppc_arch.h
ppccap.c Update copyright year 2020-05-15 14:09:49 +01:00
ppccpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
provider_conf.c CRYPTO: refactor ERR_raise()+ERR_add_error_data() to ERR_raise_data() 2020-11-13 09:35:31 +01:00
provider_core.c CORE: Separate OSSL_PROVIDER activation from OSSL_PROVIDER reference 2020-12-17 12:02:08 +01:00
provider_local.h
provider_predefined.c serialisation: Add a built-in base provider. 2020-07-30 20:15:22 +10:00
provider.c CORE: Separate OSSL_PROVIDER activation from OSSL_PROVIDER reference 2020-12-17 12:02:08 +01:00
punycode.c Update copyright year 2020-10-15 14:10:06 +01:00
README-sparse_array.md Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files 2020-07-05 11:29:43 +02:00
s390x_arch.h Update copyright year 2020-04-23 13:55:52 +01:00
s390xcap.c
s390xcpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
self_test_core.c Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
sparc_arch.h
sparccpuid.S
sparcv9cap.c Update copyright year 2020-04-23 13:55:52 +01:00
sparse_array.c Update copyright year 2020-10-15 14:10:06 +01:00
threads_lib.c Fix no-threads 2020-12-14 10:45:27 +10:00
threads_none.c Add some more CRYPTO_atomic functions 2020-12-31 13:14:38 +01:00
threads_pthread.c Add some more CRYPTO_atomic functions 2020-12-31 13:14:38 +01:00
threads_win.c Add some more CRYPTO_atomic functions 2020-12-31 13:14:38 +01:00
trace.c ENCODER: Add tracing 2020-11-11 12:43:27 +01:00
uid.c
vms_rms.h
x86_64cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00
x86cpuid.pl Update copyright year 2020-04-23 13:55:52 +01:00