On 14/06/2019 00:42, Graham Leggett wrote:
> Hi all,
>
> I am currently reviewing the shutdown behaviour in both httpd’s mod_ssl and
> apr’s apr-crypto-openssl modules.
>
> Am I right in understanding that from openssl v1.1.0 and upwards, all the
> following calls are no longer necessary, will be called automatically atexit
> by the openssl library, and these can be removed from the code?
>
> https://svn.apache.org/viewvc/httpd/httpd/tags/2.4.39/modules/ssl/mod_ssl.c?view=markup#l329
>
> FIPS_mode_set(0);
> OBJ_cleanup();
> CONF_modules_free();
> EVP_cleanup();
> ENGINE_cleanup();
> SSL_COMP_free_compression_methods();
> ERR_remove_thread_state(NULL);
> ERR_remove_state(0);
> ERR_free_strings();
> CRYPTO_cleanup_all_ex_data();
>
> https://svn.apache.org/viewvc/apr/apr-util/tags/1.6.1/crypto/apr_crypto_openssl.c?view=markup#l114
>
> ERR_free_strings();
> EVP_cleanup();
> ENGINE_cleanup();
>
Correct. *All* of the above calls are no-ops in 1.1.0+, e.g:
# define EVP_cleanup() while(0) continue
There are one or two caveats around auto-init and auto-deinit of the library.
The documentation for it is here:
https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_init_crypto.html
Matt