openssl/crypto/evp
Richard Levitte 3ca9d210c9 Refactor how KEYMGMT methods get associated with other methods
KEYMGMT methods were attached to other methods after those were fully
created and registered, thereby creating a potential data race, if two
threads tried to create the exact same method at the same time.

Instead of this, we change the method creating function to take an
extra data parameter, passed all the way from the public fetching
function.  In the case of EVP_KEYEXCH, we pass all the necessary data
that evp_keyexch_from_dispatch() needs to be able to fetch the
appropriate KEYMGMT method on the fly.

Fixes #9592

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9678)
2019-09-03 10:36:49 +02:00
..
bio_b64.c
bio_enc.c
bio_md.c
bio_ok.c Fix Typos 2019-07-01 10:09:22 +02:00
build.info Include mac_meth and mac_lib in the FIPS provider 2019-08-26 18:00:47 +10:00
c_allc.c
c_alld.c
c_allkdf.c Add X9.42 KDF. 2019-07-09 09:33:18 +10:00
cmeth_lib.c Add a mechnism to save the name of fetched methods 2019-07-23 06:34:09 +02:00
digest.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
e_aes_cbc_hmac_sha1.c Remove extern declarations of OPENSSL_ia32cap_P 2019-09-01 15:41:58 +02:00
e_aes_cbc_hmac_sha256.c Remove extern declarations of OPENSSL_ia32cap_P 2019-09-01 15:41:58 +02:00
e_aes.c Add basic aria and camellia ciphers modes to default provider 2019-08-22 11:42:54 +10:00
e_aria.c Change EVP_CIPHER_CTX_iv_length() to return current ivlen for some modes 2019-08-08 13:14:05 +10:00
e_bf.c
e_camellia.c Add basic aria and camellia ciphers modes to default provider 2019-08-22 11:42:54 +10:00
e_cast.c
e_chacha20_poly1305.c Change EVP_CIPHER_CTX_iv_length() to return current ivlen for some modes 2019-08-08 13:14:05 +10:00
e_des3.c Coverity CID 1444956: Integer handling issues 2019-05-08 09:52:58 +10:00
e_des.c Structure alignment macro. 2019-05-01 08:37:11 +10:00
e_idea.c
e_null.c
e_old.c
e_rc2.c
e_rc4_hmac_md5.c Remove extern declarations of OPENSSL_ia32cap_P 2019-09-01 15:41:58 +02:00
e_rc4.c
e_rc5.c Change RC5_32_set_key to return an int type 2019-07-01 10:18:37 +01:00
e_seed.c
e_sm4.c
e_xcbc_d.c
encode.c
evp_cnf.c
evp_enc.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
evp_err.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
evp_fetch.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
evp_key.c crypto/evp/evp_key.c: #define BUFSIZ if <stdio.h> doesn't #define it 2019-05-27 08:01:50 +10:00
evp_lib.c Adapt diverse EVP_MD functions to use get_params and set_params interfaces 2019-08-12 13:35:18 +02:00
evp_locl.h Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
evp_pbe.c
evp_pkey.c
evp_utils.c Rename ctx_{get,set}_params to {get,set}_ctx_params 2019-08-16 09:04:29 +02:00
exchange.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
kdf_lib.c Added X963KDF API 2019-05-16 11:43:41 +10:00
keymgmt_lib.c Add an internal API to access the KEYMGMT provider functions 2019-07-22 06:19:43 +02:00
keymgmt_meth.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
m_md2.c
m_md4.c
m_md5_sha1.c Move digests to providers 2019-06-04 12:09:50 +10:00
m_md5.c
m_mdc2.c
m_null.c
m_ripemd.c
m_sha1.c Move digests to providers 2019-06-04 12:09:50 +10:00
m_sha3.c Remove MAC cruft 2019-08-24 13:01:15 +02:00
m_sigver.c
m_wp.c
mac_lib.c Get rid of the diversity of names for MAC parameters 2019-08-24 13:01:15 +02:00
mac_meth.c Refactor how KEYMGMT methods get associated with other methods 2019-09-03 10:36:49 +02:00
names.c Remove init of MACs from EVP 2019-08-15 22:12:25 +02:00
p5_crpt2.c PBKDF2 updates to conform to SP800-132 2019-06-11 20:40:07 +10:00
p5_crpt.c Coverity CID 1444960: Error handling issues 2019-05-08 09:52:58 +10:00
p_dec.c
p_enc.c
p_lib.c Use ENGINE_get_id() instead of ENGINE_get_name() 2019-08-29 15:21:13 +01:00
p_open.c
p_seal.c
p_sign.c
p_verify.c
pbe_scrypt.c
pkey_kdf.c
pkey_mac.c Fix no-engine 2019-08-29 15:21:13 +01:00
pmeth_fn.c Make the EVP Key Exchange code provider aware 2019-07-16 10:16:32 +01:00
pmeth_gn.c
pmeth_lib.c Adapt DH to use with KEYMGMT 2019-07-23 19:43:09 +02:00