openssl/include/internal
Richard Levitte ddb81a94ac
"Reserve" the method store when constructing methods
Introducing the concept of reserving the store where a number of
provided operation methods are to be stored.

This avoids racing when constructing provided methods, which is
especially pertinent when multiple threads are trying to fetch the
same method, or even any implementation for the same given operation
type.

This introduces a |biglock| in OSSL_METHOD_STORE, which is separate
from the |lock| which is used for more internal and finer grained
locking.

Fixes #18152

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18153)

(cherry picked from commit e1eafe8c87)
2022-07-20 07:29:23 +01:00
..
__DECC_INCLUDE_EPILOGUE.H Following the license change, modify the boilerplates in include/ and crypto/include/ 2018-12-06 15:57:31 +01:00
__DECC_INCLUDE_PROLOGUE.H Following the license change, modify the boilerplates in include/ and crypto/include/ 2018-12-06 15:57:31 +01:00
asn1.h Update copyright year 2021-02-18 15:05:17 +00:00
bio.h Update copyright year 2022-03-15 13:52:58 +00:00
comp.h Update copyright year 2021-04-08 13:04:41 +01:00
conf.h Add ossl_ conf symbols 2021-03-18 17:52:37 +10:00
constant_time.h Add a constant time zero check function for 64-bit integers 2021-04-08 12:18:10 +01:00
core.h "Reserve" the method store when constructing methods 2022-07-20 07:29:23 +01:00
cryptlib.h strcasecmp: implement strcasecmp and strncasecmp 2022-05-23 09:54:29 +10:00
dane.h Update copyright year 2021-02-18 15:05:17 +00:00
deprecated.h Update copyright year 2021-02-18 15:05:17 +00:00
der.h Update copyright year 2022-07-05 10:33:12 +02:00
dso.h Update copyright year 2021-02-18 15:05:17 +00:00
dsoerr.h err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
endian.h Update copyright year 2021-02-18 15:05:17 +00:00
err.h Update copyright year 2021-02-18 15:05:17 +00:00
ffc.h For known safe primes use the minimum key length according to RFC 7919 2022-07-19 12:11:02 +02:00
ktls.h Refactor KTLS tests to better support TLS 1.3. 2021-06-21 09:28:43 +02:00
namemap.h Update copyright year 2021-03-11 13:27:36 +00:00
nelem.h Update copyright year 2021-02-18 15:05:17 +00:00
numbers.h Fix definition of ossl_intmax_t and ossl_uintmax_t 2021-06-22 19:49:52 +10:00
o_dir.h Update copyright year 2021-02-18 15:05:17 +00:00
packet.h Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
param_build_set.h Add OSSL_PARAM_dup() and OSSL_PARAM_merge(). 2021-04-12 16:55:29 +10:00
passphrase.h Fix pvk encoder to properly query for the passphrase 2021-12-06 16:39:15 +01:00
property.h "Reserve" the method store when constructing methods 2022-07-20 07:29:23 +01:00
propertyerr.h err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
provider.h Update copyright year 2022-06-21 14:03:39 +01:00
refcount.h Rework and make DEBUG macros consistent. 2021-05-28 10:04:31 +02:00
sha3.h include/internal: Remove TODOs that are irrelevant for 3.0 2021-03-04 14:15:01 +01:00
sizes.h Update copyright year 2021-02-18 15:05:17 +00:00
sm3.h Add ossl_ symbols for sm3 and sm4 2021-03-18 17:52:37 +10:00
sockets.h Update copyright year 2022-03-15 13:52:58 +00:00
sslconf.h Update copyright year 2021-02-18 15:05:17 +00:00
symhacks.h Instantiate predefined providers just-in-time 2021-06-24 14:48:14 +01:00
thread_once.h include/internal: add a few missing #pragma once directives 2021-02-10 23:20:58 +01:00
tlsgroups.h Update copyright year 2021-02-18 15:05:17 +00:00
tsan_assist.h Update copyright year 2022-03-15 13:52:58 +00:00
unicode.h Fix a windows build break 2021-03-24 10:04:08 +10:00