Remove unprotected global state from EVP_PBE
authortb <tb@openbsd.org>
Fri, 15 Dec 2023 14:16:44 +0000 (14:16 +0000)
committertb <tb@openbsd.org>
Fri, 15 Dec 2023 14:16:44 +0000 (14:16 +0000)
commitc453f0f345933e4a1a076b75a59a76924ea3eb4a
tree9cd0ebfe8f2872c1638d9934cb30c85a962205a5
parent01dc8a7301f5a8645d65c588dcd1143874d9dc26
Remove unprotected global state from EVP_PBE

Nobody adds a custom password-based encryption algorithm, be it a PRF or
one that can be an outermost AlgorithmIdentifier in CMS or its precursors.
This makes the undocumented and unused EVP_PBE_alg_add{,_type}() always
fail. They will be removed in the next major bump.

Thus, we no longer need to maintain a global stack of PBE algorithms that
one thread can happily modify while another one searches it.

In subsequent steps we can then remove another rather pointless use of
OBJ_bsearch_(). "Let's optimize the lookup in a table with two dozen
entries using about as many glorious layers of obfuscating macros."

ok jsing
lib/libcrypto/evp/evp_pbe.c