Move a few functions out of OPENSSL_NO_DEPRECATED
authortb <tb@openbsd.org>
Sun, 9 Apr 2023 19:10:23 +0000 (19:10 +0000)
committertb <tb@openbsd.org>
Sun, 9 Apr 2023 19:10:23 +0000 (19:10 +0000)
commite4c559e853ce1cc130d8342715a65ada3e5f26e9
treed0de06867b3cc1faa964dce5925515f334a4d1b0
parent738fb06c4f23e798190d4a24a111cb23ae157e10
Move a few functions out of OPENSSL_NO_DEPRECATED

Geoff Thorpe added OPENSSL_NO_DEPRECATED nearly two decades ago. The hope
was that at some point some functions can be dropped. Most of the functions
marked deprecated are actually unused nowadays but unfortunately some of
them are still used in the ecosystem. Move them out of OPENSSL_NO_DEPRECATED
so we can define it without breaking the consumers in the next bump.

ERR_remove_state() is still used by a dozen or so ports. This isn't a big
deal since it is just a stupid wrapper for the not quite as deprecated
ERR_remove_thread_state(). It's not worth patching these ports.

Annoyingly, {DH,DSA}_generate_parameters() and RSA_generate_key() are still
used. They "make use" of the old-style BN_GENCB callback, which is therefore
more difficult to remove - in case you don't know know: that's the thing
responsible for printing pretty '.', '+' and '*' when you generate keys.

Most annoyingly, DH_generate_parameters() was added to rust-openssl in 2020
for "advanced DH support". This is very unfortunate since cargo bundles a
rust-openssl and updates it only every few years or so. As a consequence
we're going to be stuck with this nonsense for a good while.

ok beck jsing
lib/libcrypto/dh/dh.h
lib/libcrypto/dh/dh_depr.c
lib/libcrypto/dsa/dsa.h
lib/libcrypto/dsa/dsa_depr.c
lib/libcrypto/err/err.c
lib/libcrypto/err/err.h
lib/libcrypto/rsa/rsa.h
lib/libcrypto/rsa/rsa_depr.c