OSSL-REMOVED-API(7SSL)

πŸ“¦
version 4.0.3 Β· 2 versions
, in ubuntu stonking

πŸŽ€ NAME πŸŽ€

okay bestie, so this is the OSSL-REMOVED-API(7SSL) page β€” that's the OpenSSL one β€” and it's literally the group chat archive of everything OpenSSL has yeeted out of the codebase. every single thing named below was removed. not "deprecated, tread carefully", not "we might delete this later" β€” removed removed. πŸ’€

here's the whole cast, in the order the page gives them, nobody left out, no cap:

  • ASN1_STRING_data, BIO_f_reliable β€” the two lone wolves at the top 🐺
  • the DTLS method era ✨ β€” DTLSv1_method, DTLSv1_server_method, DTLSv1_client_method, DTLSv1_2_method, DTLSv1_2_server_method, DTLSv1_2_client_method
  • ERR state things β€” ERR_get_state, ERR_remove_state, ERR_remove_thread_state
  • the whole EVP_CIPHER_meth_* crew πŸ’… β€” EVP_CIPHER_meth_new, EVP_CIPHER_meth_dup, EVP_CIPHER_meth_free, EVP_CIPHER_meth_set_iv_length, EVP_CIPHER_meth_set_flags, EVP_CIPHER_meth_set_impl_ctx_size, EVP_CIPHER_meth_set_init, EVP_CIPHER_meth_set_do_cipher, EVP_CIPHER_meth_set_cleanup, EVP_CIPHER_meth_set_set_asn1_params, EVP_CIPHER_meth_set_get_asn1_params, EVP_CIPHER_meth_set_ctrl, EVP_CIPHER_meth_get_init, EVP_CIPHER_meth_get_do_cipher, EVP_CIPHER_meth_get_cleanup, EVP_CIPHER_meth_get_set_asn1_params, EVP_CIPHER_meth_get_get_asn1_params, EVP_CIPHER_meth_get_ctrl
  • and its sibling, the EVP_MD_meth_* set 🌸 β€” EVP_MD_meth_new, EVP_MD_meth_dup, EVP_MD_meth_free, EVP_MD_meth_set_input_blocksize, EVP_MD_meth_set_result_size, EVP_MD_meth_set_app_datasize, EVP_MD_meth_set_flags, EVP_MD_meth_set_init, EVP_MD_meth_set_update, EVP_MD_meth_set_final, EVP_MD_meth_set_copy, EVP_MD_meth_set_cleanup, EVP_MD_meth_set_ctrl, EVP_MD_meth_get_input_blocksize, EVP_MD_meth_get_result_size, EVP_MD_meth_get_app_datasize, EVP_MD_meth_get_flags, EVP_MD_meth_get_init, EVP_MD_meth_get_update, EVP_MD_meth_get_final, EVP_MD_meth_get_copy, EVP_MD_meth_get_cleanup, EVP_MD_meth_get_ctrl
  • EVP_PKEY_meth_*, aka the long one, do not scroll past her πŸ‘‘ β€” EVP_PKEY_meth_find, EVP_PKEY_meth_new, EVP_PKEY_meth_get0_info, EVP_PKEY_meth_copy, EVP_PKEY_meth_free, EVP_PKEY_meth_add0, EVP_PKEY_meth_remove, EVP_PKEY_meth_get_count, EVP_PKEY_meth_get0, EVP_PKEY_meth_set_init, EVP_PKEY_meth_set_copy, EVP_PKEY_meth_set_cleanup, EVP_PKEY_meth_set_paramgen, EVP_PKEY_meth_set_keygen, EVP_PKEY_meth_set_sign, EVP_PKEY_meth_set_verify, EVP_PKEY_meth_set_verify_recover, EVP_PKEY_meth_set_signctx, EVP_PKEY_meth_set_verifyctx, EVP_PKEY_meth_set_encrypt, EVP_PKEY_meth_set_decrypt, EVP_PKEY_meth_set_derive, EVP_PKEY_meth_set_ctrl, EVP_PKEY_meth_set_digestsign, EVP_PKEY_meth_set_digestverify, EVP_PKEY_meth_set_check, EVP_PKEY_meth_set_public_check, EVP_PKEY_meth_set_param_check, EVP_PKEY_meth_set_digest_custom, EVP_PKEY_meth_get_init, EVP_PKEY_meth_get_copy, EVP_PKEY_meth_get_cleanup, EVP_PKEY_meth_get_paramgen, EVP_PKEY_meth_get_keygen, EVP_PKEY_meth_get_sign, EVP_PKEY_meth_get_verify, EVP_PKEY_meth_get_verify_recover, EVP_PKEY_meth_get_signctx, EVP_PKEY_meth_get_verifyctx, EVP_PKEY_meth_get_encrypt, EVP_PKEY_meth_get_decrypt, EVP_PKEY_meth_get_derive, EVP_PKEY_meth_get_ctrl, EVP_PKEY_meth_get_digestsign, EVP_PKEY_meth_get_digestverify, EVP_PKEY_meth_get_check, EVP_PKEY_meth_get_public_check, EVP_PKEY_meth_get_param_check, EVP_PKEY_meth_get_digest_custom
  • the little EVP_MD_CTX duo πŸ¦‹ β€” EVP_MD_CTX_update_fn, EVP_MD_CTX_set_update_fn
  • EVP_PKEY_asn1_*, another absolute unit β€” EVP_PKEY_asn1_add0, EVP_PKEY_asn1_add_alias, EVP_PKEY_asn1_get_count, EVP_PKEY_asn1_get0, EVP_PKEY_asn1_find, EVP_PKEY_asn1_find_str, EVP_PKEY_asn1_get0_info, EVP_PKEY_get0_asn1, EVP_PKEY_asn1_new, EVP_PKEY_asn1_copy, EVP_PKEY_asn1_free, EVP_PKEY_asn1_set_public, EVP_PKEY_asn1_set_private, EVP_PKEY_asn1_set_param, EVP_PKEY_asn1_set_free, EVP_PKEY_asn1_set_ctrl, EVP_PKEY_asn1_set_item, EVP_PKEY_asn1_set_siginf, EVP_PKEY_asn1_set_check, EVP_PKEY_asn1_set_public_check, EVP_PKEY_asn1_set_param_check, EVP_PKEY_asn1_set_set_priv_key, EVP_PKEY_asn1_set_set_pub_key, EVP_PKEY_asn1_set_get_priv_key, EVP_PKEY_asn1_set_get_pub_key, EVP_PKEY_asn1_set_security_bits
  • the legacy-protocol girlies 🌈 β€” OPENSSL_atexit, SSLv3_method, SSLv3_server_method, SSLv3_client_method, TLSv1_method, TLSv1_server_method, TLSv1_client_method, TLSv1_1_method, TLSv1_1_server_method, TLSv1_1_client_method, TLSv1_2_method, TLSv1_2_server_method, TLSv1_2_client_method

and that whole parade is summarised by the actual page name, which is ossl-removed-api β€” API that has been removed from OpenSSL 🫢


✨ SYNOPSIS ✨

okay so literally, the page says this and nothing else, bestie:

This page lists API that has been removed from OpenSSL, and when it was removed.

that's it, that's the whole synopsis. short and iconic. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so what even is this page? it's the list of API that has been removed from OpenSSL πŸ’– β€” a whole documentation graveyard, documented on purpose so you can find out when a thing got removed.

here's the important part though: OpenSSL does not just snatch a function out of your hands. functions sit in deprecated jail first, and that stretch is normally at least one major OpenSSL release β€” if not more. because of that, during at least one previous major OpenSSL release, while this function still existed, you would have gotten deprecation warnings at compile time the moment you used it, and the docs at the time would have spelled out how to move away from the deprecated API. so there was a whole heads-up era. you just maybe weren't looking. 😭

then, once a deprecated function does get removed, the docs for that function get removed too β€” because the docs are supposed to stay relevant to the current release, and carrying around instructions for ghosts is not the vibe. so normally, what you should do is: go consult a previous major release of OpenSSL, back when this function still existed, and change your code so it doesn't use the function anymore, exactly the way that release's documentation told you to. 🧚

bestie, that includes consulting the ossl-guide-migration(7) documentation. it's literally the migration guide. go read it. 🫢

Okay bestie buckle UP because this is the ✨ deprecated graveyard✨ and it's LONG. Every single one of these is gone, deprecated, or broken, and each tells you where to go instead. Let's get into it πŸ’…

lowkey obsessed with how many times ossl-guide-migration(7) shows up here β€” it's the main character of this whole list, no cap πŸ‘‘βœ¨
  • …oh wait, this is just the tail end of the entry right above this one, spilling over into part 3 like it owns the place: ossl-guide-migration(7) πŸ’… she's long, she's dramatic, she's still valid.
  • EVP_PKEY_asn1_set_security_bits (Deprecated in 3.6.0) β€” yeah bestie this one's gone too, go read ossl-guide-migration(7) 🌸
  • OPENSSL_atexit β€” no longer used at all, like not even a little. If you must do this, use libc atexit() instead. That's it, that's the tea. πŸ«–
okay now brace yourself, because this is the ✨legacy TLS method✨ section and it goes HARD. Every single one of these is Deprecated in 1.1.0 and every single one is sending you to ossl-guide-migration(7). No cap. πŸ’€

🌈 SEE ALSO 🌈

  • ossl-guide-migration(7) β€” the one and only, the blueprint, the main character of this entire page. If you take nothing else from here, take this. 🫢

Copyright 2025-2026 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


and that's a wrap on part 3, bestie πŸŽ€ this page is from OpenSSL 4.0.3, dated 2026-09-29, and the source line reads OSSL-REMOVED-API(7SSL) β€” iconic, historic, deprecated-but-in-a-slaying-way. bye babes πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from