OpenSSL_add_all_digests - Add algorithms to internal table
void ); void OpenSSL_add_all_ciphers(
void ); void OpenSSL_add_all_digests(
void ); void EVP_cleanup(
OpenSSL keeps an internal table of digest algorithms and
ciphers. It uses this table to lookup ciphers via functions
such as EVP_get_cipher_byname().
The OpenSSL_add_all_digests() function adds all digest
algorithms to the table.
The OpenSSL_add_all_algorithms() function adds all algorithms
to the table (digests and ciphers).
The OpenSSL_add_all_ciphers() function adds all encryption
algorithms to the table including password based encryption
The EVP_cleanup() function removes all ciphers and digests
from the table.
A typical application will call the OpenSSL_add_all_algorithms()
function initially and the EVP_cleanup() function
An application does not need to add algorithms to use them
explicitly, for example by EVP_sha1(). It needs to add
them if it (or any of the functions it calls) needs to
The cipher and digest lookup functions are used in many
parts of the library. If the table is not initialized several
functions will not work correctly and complain they
cannot find algorithms. This includes the PEM, PKCS#12,
SSL and S/MIME libraries. This is a common query in the
OpenSSL mailing lists.
Calling the OpenSSL_add_all_algorithms() function links
all algorithms. As a result, a statically linked executable
can be quite large. If this is important, it is
possible to add only the required ciphers and digests.
Although the functions do not return error codes it is
possible for them to fail. This will only happen as a
result of a memory allocation failure, so it is not much
of a problem in practice.
None of the functions return a value.
Functions: evp(3), EVP_DigestInit(3), EVP_EncryptInit(3)
[ Back ]