openssl/doc/internal/man3
Neil Horman 24d16d3a19 Make rcu_thread_key context-aware
Currently, rcu has a global bit of data, the CRYPTO_THREAD_LOCAL object
to store per thread data.  This works in some cases, but fails in FIPS,
becuase it contains its own copy of the global key.

So
1) Make the rcu_thr_key a per-context variable, and force
   ossl_rcu_lock_new to be context aware

2) Store a pointer to the context in the lock object

3) Use the context to get the global thread key on read/write lock

4) Use ossl_thread_start_init to properly register a cleanup on thread
   exit

5) Fix up missed calls to OSSL_thread_stop() in our tests

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24162)
2024-04-19 09:22:53 -04:00
..
DEFINE_LIST_OF.pod Fix documenation mistakes 2022-11-16 18:02:02 +11:00
DEFINE_PRIORITY_QUEUE_OF.pod Change all references to OpenSSL 3.1 to OpenSSL 3.2 in the master branch 2022-10-07 10:05:50 +02:00
OPENSSL_SA.pod Update copyright year 2021-05-20 14:22:33 +01:00
OPTIONS.pod Update copyright year 2022-05-03 13:34:51 +01:00
OSSL_DEPRECATED.pod Simplify and clarify doc/internal/man7/deprecation.pod 2020-11-01 05:57:42 +01:00
OSSL_EVENT.pod Copyright year updates 2023-09-07 09:59:15 +01:00
OSSL_METHOD_STORE.pod Removed extra spaces in documentation 2023-12-12 20:00:05 +01:00
OSSL_SAFE_MATH_SIGNED.pod Change all references to OpenSSL 3.1 to OpenSSL 3.2 in the master branch 2022-10-07 10:05:50 +02:00
OSSL_TIME.pod Change all references to OpenSSL 3.1 to OpenSSL 3.2 in the master branch 2022-10-07 10:05:50 +02:00
cms_add1_signing_cert.pod doc: remove end of line whitespace 2021-09-22 16:22:50 +10:00
evp_generic_fetch.pod Copyright year updates 2023-09-07 09:59:15 +01:00
evp_keymgmt_newdata.pod Add public API for gettables and settables for keymanagement, signatures and key exchange. 2020-08-12 11:59:43 +10:00
evp_keymgmt_util_export_to_provider.pod Copyright year updates 2023-09-07 09:59:15 +01:00
evp_md_get_number.pod doc: Fix include syntax 2021-09-22 18:55:34 +10:00
evp_pkey_export_to_provider.pod Update copyright year 2021-03-11 13:27:36 +00:00
evp_pkey_get1_ED25519.pod Hide ECX_KEY again 2020-09-25 12:12:22 +10:00
ossl_DER_w_begin_sequence.pod der: _ossl prefix DER functions 2020-10-01 11:25:12 +10:00
ossl_DER_w_bn.pod der_writer: Use uint32_t instead of long. 2022-06-27 10:58:40 +02:00
ossl_DER_w_precompiled.pod der: _ossl prefix DER functions 2020-10-01 11:25:12 +10:00
ossl_algorithm_do_all.pod Rename OPENSSL_CTX prefix to OSSL_LIB_CTX 2020-10-15 11:59:53 +01:00
ossl_cmp_X509_STORE_add1_certs.pod Introduce X509_add_cert[s] simplifying various additions to cert lists 2020-08-12 13:54:37 +02:00
ossl_cmp_asn1_octet_string_set1.pod cmp_util.c: Add OPENSSL_CTX parameter to ossl_cmp_build_cert_chain(), improve its doc 2020-08-21 09:04:12 +02:00
ossl_cmp_certreq_new.pod Copyright year updates 2023-09-07 09:59:15 +01:00
ossl_cmp_ctx_set1_caPubs.pod Certificate Management Protocol (CMP, RFC 4210) extension to OpenSSL 2019-09-27 10:53:11 +01:00
ossl_cmp_hdr_init.pod Update copyright year 2021-07-29 15:41:35 +01:00
ossl_cmp_mock_srv_new.pod Copyright year updates 2023-09-07 09:59:15 +01:00
ossl_cmp_msg_check_update.pod CMP: introduce version 3, while version 2 stays the default 2022-07-01 07:38:50 +01:00
ossl_cmp_msg_create.pod Update copyright year 2021-07-29 15:41:35 +01:00
ossl_cmp_msg_protect.pod Copyright year updates 2023-09-07 09:59:15 +01:00
ossl_cmp_pkisi_get_status.pod Copyright year updates 2023-09-07 09:59:15 +01:00
ossl_cmp_print_log.pod Update copyright year 2020-04-23 13:55:52 +01:00
ossl_ends_with_dirsep.pod Add ossl_is_absolute_path function to detect absolute paths 2020-11-11 16:06:30 +01:00
ossl_global_properties_no_mirrored.pod Documentation updates for mirroring of global properties 2021-05-20 09:35:41 +01:00
ossl_init_thread_deregister.pod Fix some typos 2019-12-11 19:04:01 +01:00
ossl_lib_ctx_get_data.pod Update copyright year 2022-05-03 13:34:51 +01:00
ossl_method_construct.pod Fix new typos found by codespell 2023-12-29 10:12:05 +01:00
ossl_namemap_new.pod Drop ossl_namemap_add_name_n() and simplify ossl_namemap_add_names() 2022-05-21 21:49:54 +02:00
ossl_provider_add_conf_module.pod Enhance and update the docs of the internal ossl_provider API 2019-06-24 07:57:03 +02:00
ossl_provider_new.pod Copyright year updates 2023-09-28 14:23:29 +01:00
ossl_punycode_decode.pod Copyright year updates 2023-09-07 09:59:15 +01:00
ossl_rand_get_entropy.pod rand: add callbacks to cleanup the user entropy resp. nonce 2023-10-20 09:48:34 +01:00
ossl_random_add_conf_module.pod Update copyright year 2022-05-03 13:34:51 +01:00
ossl_rcu_lock_new.pod Make rcu_thread_key context-aware 2024-04-19 09:22:53 -04:00
ossl_rsa_get0_all_params.pod Update copyright year 2020-10-15 14:10:06 +01:00
x509v3_cache_extensions.pod Update copyright year 2021-01-28 13:54:57 +01:00